#include <Teuchos_Comm.hpp>
Inheritance diagram for Teuchos::Comm< Ordinal >:

Public Member Functions | |
Query functions | |
| virtual int | getRank () const =0 |
| Returns the rank of this process. | |
| virtual int | getSize () const =0 |
| Returns the number of processes that make up this communicator. | |
Collective Operations | |
| virtual void | barrier () const =0 |
Pause every process in *this communicator until all the processes reach this point. | |
| virtual void | broadcast (const int rootRank, const Ordinal bytes, char buffer[]) const =0 |
| Broadcast values from the root process to the slave processes. | |
| virtual void | gatherAll (const Ordinal sendBytes, const char sendBuffer[], const Ordinal recvBytes, char recvBuffer[]) const =0 |
| Gather values from each process to collect on all processes. | |
| virtual void | reduceAll (const ValueTypeReductionOp< Ordinal, char > &reductOp, const Ordinal bytes, const char sendBuffer[], char globalReducts[]) const =0 |
| Global reduction. | |
| virtual void | reduceAllAndScatter (const ValueTypeReductionOp< Ordinal, char > &reductOp, const Ordinal sendBytes, const char sendBuffer[], const Ordinal recvCounts[], const Ordinal blockSize, char myGlobalReducts[]) const =0 |
| Global reduction combined with a scatter. | |
| virtual void | scan (const ValueTypeReductionOp< Ordinal, char > &reductOp, const Ordinal bytes, const char sendBuffer[], char scanReducts[]) const =0 |
| Scan reduction. | |
Point-to-Point Operations | |
| virtual void | send (const Ordinal bytes, const char sendBuffer[], const int destRank) const =0 |
| Blocking send of data from this process to another process. | |
| virtual int | receive (const int sourceRank, const Ordinal bytes, char recvBuffer[]) const =0 |
| Blocking receive of data from this process to another process. | |
Related Functions | |
| (Note that these are not member functions.) | |
| int | rank (const Comm< Ordinal > &comm) |
| Get the process rank. | |
| int | size (const Comm< Ordinal > &comm) |
| Get the number of processes in the communicator. | |
| void | barrier (const Comm< Ordinal > &comm) |
| Barrier. | |
| void | broadcast (const Comm< Ordinal > &comm, const int rootRank, const Ordinal count, Packet buffer[]) |
| Broadcast array of objects that use value semantics. | |
| void | broadcast (const Comm< Ordinal > &comm, const int rootRank, Packet *object) |
| Broadcast single object that use value semantics. | |
| void | broadcast (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const int rootRank, const Ordinal count, Packet *const buffer[]) |
| Broadcast array of objects that use reference semantics. | |
| void | gatherAll (const Comm< Ordinal > &comm, const Ordinal sendCount, const Packet sendBuffer[], const Ordinal recvCount, Packet recvBuffer[]) |
| Gather array of objects that use value semantics from every process to every process. | |
| void | gatherAll (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const Ordinal sendCount, const Packet *const sendBuffer[], const Ordinal recvCount, Packet *const recvBuffer[]) |
| Gather array of objects that use reference semantics from every process to every process. | |
| void | reduceAll (const Comm< Ordinal > &comm, const ValueTypeReductionOp< Ordinal, Packet > &reductOp, const Ordinal count, const Packet sendBuffer[], Packet globalReducts[]) |
| Collective reduce all of array of objects using value semantics using a user-defined reduction operator. | |
| void | reduceAll (const Comm< Ordinal > &comm, const EReductionType reductType, const Ordinal count, const Packet sendBuffer[], Packet globalReducts[]) |
| Collective reduce all of array of objects using value semantics using a pre-defined reduction type. | |
| void | reduceAll (const Comm< Ordinal > &comm, const EReductionType reductType, const Packet &send, Packet *globalReduct) |
| Collective reduce all for single object using value semantics using a pre-defined reduction type. | |
| void | reduceAll (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const ReferenceTypeReductionOp< Ordinal, Packet > &reductOp, const Ordinal count, const Packet *const sendBuffer[], Packet *const globalReducts[]) |
| Collective reduce all for array of objects using reference semantics. | |
| void | reduceAllAndScatter (const Comm< Ordinal > &comm, const ValueTypeReductionOp< Ordinal, Packet > &reductOp, const Ordinal sendCount, const Packet sendBuffer[], const Ordinal recvCounts[], Packet myGlobalReducts[]) |
| Reduce and Scatter array of objects that use value semantics using a user-defined reduction object. | |
| void | reduceAllAndScatter (const Comm< Ordinal > &comm, const EReductionType reductType, const Ordinal sendCount, const Packet sendBuffer[], const Ordinal recvCounts[], Packet myGlobalReducts[]) |
| Reduce and Scatter array of objects that use value semantics using a a pre-defined reduction type. | |
| void | reduceAllAndScatter (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const ReferenceTypeReductionOp< Ordinal, Packet > &reductOp, const Ordinal sendCount, const Packet *const sendBuffer[], const Ordinal recvCounts[], Packet *const myGlobalReducts[]) |
| Reduce and Scatter array of objects that use reference semantics using a user-defined reduction object. | |
| void | scan (const Comm< Ordinal > &comm, const ValueTypeReductionOp< Ordinal, Packet > &reductOp, const Ordinal count, const Packet sendBuffer[], Packet scanReducts[]) |
| Scan/Reduce array of objects that use value semantics using a user-defined reduction operator. | |
| void | scan (const Comm< Ordinal > &comm, const EReductionType reductType, const Ordinal count, const Packet sendBuffer[], Packet scanReducts[]) |
| Scan/Reduce array of objects using value semantics using a predefined reduction type. | |
| void | scan (const Comm< Ordinal > &comm, const EReductionType reductType, const Packet &send, Packet *scanReduct) |
| Scan/Reduce single object using value semantics using a predefined reduction type. | |
| void | scan (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const ReferenceTypeReductionOp< Ordinal, Packet > &reductOp, const Ordinal count, const Packet *const sendBuffer[], Packet *const scanReducts[]) |
| Scan/Reduce array of objects that use reference semantics using a user-defined reduction operator. | |
| void | send (const Comm< Ordinal > &comm, const Ordinal count, const Packet sendBuffer[], const int destRank) |
| Send objects that use values semantics to another process. | |
| void | send (const Comm< Ordinal > &comm, const Packet &send, const int destRank) |
| Send a single object that use values semantics to another process. | |
| void | send (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const Ordinal count, const Packet *const sendBuffer[], const int destRank) |
| Send objects that use reference semantics to another process. | |
| int | receive (const Comm< Ordinal > &comm, const int sourceRank, const Ordinal count, Packet recvBuffer[]) |
| Receive objects that use values semantics from another process. | |
| int | receive (const Comm< Ordinal > &comm, const int sourceRank, Packet *recv) |
| Receive a single object that use values semantics from another process. | |
| int | receive (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const int sourceRank, const Ordinal count, Packet *const recvBuffer[]) |
| Receive objects that use reference semantics from another process. | |
This interface is templated on the ordinal type but only deals with buffers of untyped data represented as arrays char type. All reduction operations that are initiated by the concreate communicator object are performed by user-defined ReductOpBase objects. It is the responsibility of the ReductOpBase object to know what the currect data type is, to perform casts or serializations/unserializations to and from char[] buffers, and to know how to reduce the objects correctly. It is strictly up to the client to correctly convert data types to char[] arrays but there is a great deal of helper code to make this easy and safe.
ToDo: Finish documentation!
Definition at line 53 of file Teuchos_Comm.hpp.
|
|||||||||
|
Returns the rank of this process. Postconditions:
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
|||||||||
|
Returns the number of processes that make up this communicator. Postconditions:
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
|||||||||
|
Pause every process in
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||||||||||||
|
Broadcast values from the root process to the slave processes.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||||||||||||||||
|
Gather values from each process to collect on all processes.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||||||||||||||||
|
Global reduction.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||||||||||||||||||||||||
|
Global reduction combined with a scatter.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||||||||||||||||
|
Scan reduction.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||||||||||||
|
Blocking send of data from this process to another process.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||||||||||||
|
Blocking receive of data from this process to another process.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >. |
|
||||||||||
|
Get the process rank.
|
|
||||||||||
|
Get the number of processes in the communicator.
|
|
||||||||||
|
Barrier.
|
|
||||||||||||||||||||||||
|
Broadcast array of objects that use value semantics.
|
|
||||||||||||||||||||
|
Broadcast single object that use value semantics.
|
|
||||||||||||||||||||||||||||
|
Broadcast array of objects that use reference semantics.
|
|
||||||||||||||||||||||||||||
|
Gather array of objects that use value semantics from every process to every process.
|
|
||||||||||||||||||||||||||||||||
|
Gather array of objects that use reference semantics from every process to every process.
|
|
||||||||||||||||||||||||||||
|
Collective reduce all of array of objects using value semantics using a user-defined reduction operator.
|
|
||||||||||||||||||||||||||||
|
Collective reduce all of array of objects using value semantics using a pre-defined reduction type.
|
|
||||||||||||||||||||||||
|
Collective reduce all for single object using value semantics using a pre-defined reduction type.
|
|
||||||||||||||||||||||||||||||||
|
Collective reduce all for array of objects using reference semantics.
|
|
||||||||||||||||||||||||||||||||
|
Reduce and Scatter array of objects that use value semantics using a user-defined reduction object.
|
|
||||||||||||||||||||||||||||||||
|
Reduce and Scatter array of objects that use value semantics using a a pre-defined reduction type.
|
|
||||||||||||||||||||||||||||||||||||
|
Reduce and Scatter array of objects that use reference semantics using a user-defined reduction object.
|
|
||||||||||||||||||||||||||||
|
Scan/Reduce array of objects that use value semantics using a user-defined reduction operator.
|
|
||||||||||||||||||||||||||||
|
Scan/Reduce array of objects using value semantics using a predefined reduction type.
|
|
||||||||||||||||||||||||
|
Scan/Reduce single object using value semantics using a predefined reduction type.
|
|
||||||||||||||||||||||||||||||||
|
Scan/Reduce array of objects that use reference semantics using a user-defined reduction operator.
|
|
||||||||||||||||||||||||
|
Send objects that use values semantics to another process.
|
|
||||||||||||||||||||
|
Send a single object that use values semantics to another process.
|
|
||||||||||||||||||||||||||||
|
Send objects that use reference semantics to another process.
|
|
||||||||||||||||||||||||
|
Receive objects that use values semantics from another process.
|
|
||||||||||||||||||||
|
Receive a single object that use values semantics from another process.
|
|
||||||||||||||||||||||||||||
|
Receive objects that use reference semantics from another process.
|
1.3.9.1