Determines the order in which a set of processors should communicate with one another. More...
Public Member Functions | |
ClassName ("commSchedule") | |
commSchedule (const label nProcs, const List< labelPair > &comms) | |
Construct from wanted communication. Wanted communication is between. More... | |
const labelList & | schedule () const |
Order in which comms is scheduled. More... | |
const labelListList & | procSchedule () const |
Per processor the order in which communication has been scheduled. More... | |
Private Member Functions | |
label | outstandingComms (const labelList &, DynamicList< label > &) const |
Count the number of outstanding communications for a single. More... | |
Private Attributes | |
labelList | schedule_ |
Order in which input communication has been scheduled. More... | |
labelListList | procSchedule_ |
Per processor the order in which communication has been scheduled. More... | |
Determines the order in which a set of processors should communicate with one another.
The communication order should
Does a very simple scheduling which assumes same time for all operations.
After construction:
Does not care whether 'talking' is first send, second receive or maybe full swap. This is all responsability of caller. See ProcessorTopology class for use in scheduling processor boundary swaps.
Definition at line 65 of file commSchedule.H.
commSchedule | ( | const label | nProcs, |
const List< labelPair > & | comms | ||
) |
Construct from wanted communication. Wanted communication is between.
two processors. Can be a one-way communication or two-way communication, that is up to the caller. This class just determines an order for it such that any processor is only talking to one other at a time. After construction:
Definition at line 67 of file commSchedule.C.
References Foam::abort(), List::append(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, SortableList::indices(), Foam::labelMin, Foam::Pout, Foam::setw(), List::size(), and OStringStream::str().
|
private |
Count the number of outstanding communications for a single.
processor
Definition at line 45 of file commSchedule.C.
References forAll.
ClassName | ( | "commSchedule" | ) |
|
inline |
Order in which comms is scheduled.
Definition at line 101 of file commSchedule.H.
References commSchedule::schedule_.
|
inline |
Per processor the order in which communication has been scheduled.
Definition at line 107 of file commSchedule.H.
References commSchedule::procSchedule_.
|
private |
Order in which input communication has been scheduled.
Definition at line 70 of file commSchedule.H.
Referenced by commSchedule::schedule().
|
private |
Per processor the order in which communication has been scheduled.
Definition at line 73 of file commSchedule.H.
Referenced by commSchedule::procSchedule().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.