#include <Teuchos_Comm.hpp>
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[], 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. | |
Blocking 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. | |
virtual void | readySend (const ArrayView< const char > &sendBuffer, const int destRank) const =0 |
Ready send of data from this process to another process. | |
Non-blocking Point-to-Point Operations | |
virtual RCP< CommRequest > | isend (const ArrayView< const char > &sendBuffer, const int destRank) const =0 |
Non-blocking send. | |
virtual RCP< CommRequest > | ireceive (const ArrayView< char > &recvBuffer, const int sourceRank) const =0 |
Non-blocking receive. | |
virtual void | waitAll (const ArrayView< RCP< CommRequest > > &requests) const =0 |
Wait on a set of communication request. | |
virtual void | wait (const Ptr< RCP< CommRequest > > &request) const =0 |
Wait on a single communication request. | |
Related Functions | |
(Note that these are not member functions.) | |
enum | EReductionType { REDUCE_SUM, REDUCE_MIN, REDUCE_MAX, REDUCE_AND } |
Enumeration for selecting from a set of pre-defined reduction operations. More... | |
template<typename Ordinal > | |
int | rank (const Comm< Ordinal > &comm) |
Get the process rank. | |
template<typename Ordinal > | |
int | size (const Comm< Ordinal > &comm) |
Get the number of processes in the communicator. | |
template<typename Ordinal > | |
void | barrier (const Comm< Ordinal > &comm) |
Barrier. | |
template<typename Ordinal , typename Packet > | |
void | broadcast (const Comm< Ordinal > &comm, const int rootRank, const Ordinal count, Packet buffer[]) |
Broadcast array of objects that use value semantics. | |
template<typename Ordinal , typename Packet > | |
void | broadcast (const Comm< Ordinal > &comm, const int rootRank, const ArrayView< Packet > &buffer) |
Broadcast array of objects that use value semantics. | |
template<typename Ordinal , typename Packet > | |
void | broadcast (const Comm< Ordinal > &comm, const int rootRank, Packet *object) |
Broadcast single object that use value semantics. | |
template<typename Ordinal , typename Packet > | |
void | broadcast (const Comm< Ordinal > &comm, const int rootRank, const Ptr< Packet > &object) |
Broadcast single object that use value semantics. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
void | send (const Comm< Ordinal > &comm, const Ordinal count, const Packet sendBuffer[], const int destRank) |
Send objects that use values semantics to another process. | |
template<typename Ordinal , typename Packet > | |
void | send (const Comm< Ordinal > &comm, const Packet &send, const int destRank) |
Send a single object that use values semantics to another process. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
int | receive (const Comm< Ordinal > &comm, const int sourceRank, const Ordinal count, Packet recvBuffer[]) |
Receive objects that use values semantics from another process. | |
template<typename Ordinal , typename Packet > | |
int | receive (const Comm< Ordinal > &comm, const int sourceRank, Packet *recv) |
Receive a single object that use values semantics from another process. | |
template<typename Ordinal , typename Packet > | |
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. | |
template<typename Ordinal , typename Packet > | |
void | readySend (const Comm< Ordinal > &comm, const ArrayView< const Packet > &sendBuffer, const int destRank) |
Ready-Send an array of objects that use values semantics to another process. | |
template<typename Ordinal , typename Packet > | |
void | readySend (const Comm< Ordinal > &comm, const Packet &send, const int destRank) |
Ready-Send a single object that use values semantics to another process. | |
template<typename Ordinal , typename Packet > | |
RCP< CommRequest > | isend (const Comm< Ordinal > &comm, const ArrayRCP< const Packet > &sendBuffer, const int destRank) |
Send objects that use values semantics to another process. | |
template<typename Ordinal , typename Packet > | |
RCP< CommRequest > | isend (const Comm< Ordinal > &comm, const RCP< const Packet > &send, const int destRank) |
Send a single object that use values semantics to another process. | |
template<typename Ordinal , typename Packet > | |
RCP< CommRequest > | ireceive (const Comm< Ordinal > &comm, const ArrayRCP< Packet > &recvBuffer, const int sourceRank) |
Send objects that use values semantics to another process. | |
template<typename Ordinal , typename Packet > | |
RCP< CommRequest > | ireceive (const Comm< Ordinal > &comm, const RCP< Packet > &recv, const int sourceRank) |
Send a single object that use values semantics to another process. | |
template<typename Ordinal > | |
void | waitAll (const Comm< Ordinal > &comm, const ArrayView< RCP< CommRequest > > &requests) |
Wait for an array of Teuchos::CommRequest objects. | |
template<typename Ordinal > | |
void | wait (const Comm< Ordinal > &comm, const Ptr< RCP< CommRequest > > &request) |
Wait on on a single request. |
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 59 of file Teuchos_Comm.hpp.
virtual void Teuchos::Comm< Ordinal >::barrier | ( | ) | const [pure virtual] |
Pause every process in *this
communicator until all the processes reach this point.
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::broadcast | ( | const int | rootRank, | |
const Ordinal | bytes, | |||
char | buffer[] | |||
) | const [pure virtual] |
Broadcast values from the root process to the slave processes.
rootRank | [in] The rank of the root process. | |
count | [in] The number of bytes in buffer[] . | |
buffer | [in/out] Array (length bytes ) of packed data. Must be set on input on the root processes with rank root . On output, each processs, including the root process contains the data. |
0 <= rootRank && rootRank < this->getSize()
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::gatherAll | ( | const Ordinal | sendBytes, | |
const char | sendBuffer[], | |||
const Ordinal | recvBytes, | |||
char | recvBuffer[] | |||
) | const [pure virtual] |
Gather values from each process to collect on all processes.
sendBytes | [in] Number of entires in sendBuffer[] on input. | |
sendBuffer | [in] Array (length sendBytes ) of data being sent from each process. | |
recvBytes | [in] Number of entires in recvBuffer[] which must be equal to sendBytes*this->getSize() . This field is just here for debug checking. | |
recvBuffer | [out] Array (length recvBytes ) of all of the entires sent from each processes. Specifically, recvBuffer[sendBytes*j+i] , for j=0...this->getSize()-1 and i=0...sendBytes-1 , is the entry sendBuffer[i] from process with rank j . |
recvBytes==sendBytes*this->getSize()
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual int Teuchos::Comm< Ordinal >::getRank | ( | ) | const [pure virtual] |
Returns the rank of this process.
Postconditions:
0 <= return && return < this->getSize()
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual int Teuchos::Comm< Ordinal >::getSize | ( | ) | const [pure virtual] |
Returns the number of processes that make up this communicator.
Postconditions:
return > 0
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual RCP<CommRequest> Teuchos::Comm< Ordinal >::ireceive | ( | const ArrayView< char > & | recvBuffer, | |
const int | sourceRank | |||
) | const [pure virtual] |
Non-blocking receive.
recvBuffer | [out] The location for storing the received data. | |
sourceRank | [in] The rank of the process to receive the data from. If sourceRank < 0 then data will be received from any process. |
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual RCP<CommRequest> Teuchos::Comm< Ordinal >::isend | ( | const ArrayView< const char > & | sendBuffer, | |
const int | destRank | |||
) | const [pure virtual] |
Non-blocking send.
sendBuffer | [in] The data buffer to be sent. | |
destRank | [in] The rank of the process to receive the data. |
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::readySend | ( | const ArrayView< const char > & | sendBuffer, | |
const int | destRank | |||
) | const [pure virtual] |
Ready send of data from this process to another process.
sendBuffer | [in] The data to be sent. | |
destRank | [in] The rank of the process to receive the data. |
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual int Teuchos::Comm< Ordinal >::receive | ( | const int | sourceRank, | |
const Ordinal | bytes, | |||
char | recvBuffer[] | |||
) | const [pure virtual] |
Blocking receive of data from this process to another process.
sourceRank | [in] The rank of the process to receive the data from. If sourceRank < 0 then data will be received from any process. | |
bytes | [in] The number of bytes of data being passed between processes. | |
recvBuffer | [out] Array (length bytes ) of data being received from this process. This buffer can be immediately used to access the data as soon as the function exits (that is why this function is "blocking"). |
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::reduceAll | ( | const ValueTypeReductionOp< Ordinal, char > & | reductOp, | |
const Ordinal | bytes, | |||
const char | sendBuffer[], | |||
char | globalReducts[] | |||
) | const [pure virtual] |
Global reduction.
reductOp | [in] The user-defined reduction operation | |
bytes | [in] The length of the buffers sendBuffer[] and globalReducts[] . | |
sendBuffer | [in] Array (length bytes ) of the data contributed from each process. | |
globalReducts | [out] Array (length bytes ) of the global reduction from each process. |
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::reduceAllAndScatter | ( | const ValueTypeReductionOp< Ordinal, char > & | reductOp, | |
const Ordinal | sendBytes, | |||
const char | sendBuffer[], | |||
const Ordinal | recvCounts[], | |||
char | myGlobalReducts[] | |||
) | const [pure virtual] |
Global reduction combined with a scatter.
reductOp | [in] The user-defined reduction operation that accepts char arrays. | |
sendBytes | [in] The number of entires in sendBuffer[] . This must be the same in each process. | |
sendBuffer | [in] Array (length sendBytes ) of the data contributed from each process. | |
recvCounts | [in] Array (length this->getSize() ) which gives the number of chars from the global reduction that will be received in each process. | |
myGlobalReducts | [out] Array (length blockSize*recvCounts[rank] ) of the global reductions gathered in this process. |
sendBytes == sum(recvCounts[i],i=0...this->getSize()-1)
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::scan | ( | const ValueTypeReductionOp< Ordinal, char > & | reductOp, | |
const Ordinal | bytes, | |||
const char | sendBuffer[], | |||
char | scanReducts[] | |||
) | const [pure virtual] |
Scan reduction.
reductOp | [in] The user-defined reduction operation | |
bytes | [in] The length of the buffers sendBuffer[] and scanReducts[] . | |
sendBuffer | [in] Array (length bytes ) of the data contributed from each process. | |
scanReducts | [out] Array (length bytes ) of the reduction up to and including this process. |
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::send | ( | const Ordinal | bytes, | |
const char | sendBuffer[], | |||
const int | destRank | |||
) | const [pure virtual] |
Blocking send of data from this process to another process.
bytes | [in] The number of bytes of data being passed between processes. | |
sendBuffer | [in] Array (length bytes ) of data being sent from this process. This buffer can be immediately destroyed or reused as soon as the function exits (that is why this function is "blocking"). | |
destRank | [in] The rank of the process to receive the data. |
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::wait | ( | const Ptr< RCP< CommRequest > > & | request | ) | const [pure virtual] |
Wait on a single communication request.
Preconditions:
!is_null(request))
Postconditions:
is_null(*request))
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
virtual void Teuchos::Comm< Ordinal >::waitAll | ( | const ArrayView< RCP< CommRequest > > & | requests | ) | const [pure virtual] |
Wait on a set of communication request.
Preconditions:
requests.size() > 0
Postconditions:
is_null(request[i]))
for i=0...requests.size()-1
Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.
void barrier | ( | const Comm< Ordinal > & | comm | ) | [related] |
Barrier.
void broadcast | ( | const Comm< Ordinal > & | comm, | |
const Serializer< Ordinal, Packet > & | serializer, | |||
const int | rootRank, | |||
const Ordinal | count, | |||
Packet *const | buffer[] | |||
) | [related] |
Broadcast array of objects that use reference semantics.
void broadcast | ( | const Comm< Ordinal > & | comm, | |
const int | rootRank, | |||
const Ptr< Packet > & | object | |||
) | [related] |
Broadcast single object that use value semantics.
void broadcast | ( | const Comm< Ordinal > & | comm, | |
const int | rootRank, | |||
Packet * | object | |||
) | [related] |
Broadcast single object that use value semantics.
void broadcast | ( | const Comm< Ordinal > & | comm, | |
const int | rootRank, | |||
const ArrayView< Packet > & | buffer | |||
) | [related] |
Broadcast array of objects that use value semantics.
void broadcast | ( | const Comm< Ordinal > & | comm, | |
const int | rootRank, | |||
const Ordinal | count, | |||
Packet | buffer[] | |||
) | [related] |
Broadcast array of objects that use value semantics.
enum EReductionType [related] |
Enumeration for selecting from a set of pre-defined reduction operations.
Definition at line 57 of file Teuchos_CommHelpers.hpp.
void gatherAll | ( | const Comm< Ordinal > & | comm, | |
const Serializer< Ordinal, Packet > & | serializer, | |||
const Ordinal | sendCount, | |||
const Packet *const | sendBuffer[], | |||
const Ordinal | recvCount, | |||
Packet *const | recvBuffer[] | |||
) | [related] |
Gather array of objects that use reference semantics from every process to every process.
void gatherAll | ( | const Comm< Ordinal > & | comm, | |
const Ordinal | sendCount, | |||
const Packet | sendBuffer[], | |||
const Ordinal | recvCount, | |||
Packet | recvBuffer[] | |||
) | [related] |
Gather array of objects that use value semantics from every process to every process.
RCP< CommRequest > ireceive | ( | const Comm< Ordinal > & | comm, | |
const RCP< Packet > & | recv, | |||
const int | sourceRank | |||
) | [related] |
Send a single object that use values semantics to another process.
RCP< CommRequest > ireceive | ( | const Comm< Ordinal > & | comm, | |
const ArrayRCP< Packet > & | recvBuffer, | |||
const int | sourceRank | |||
) | [related] |
Send objects that use values semantics to another process.
RCP< CommRequest > isend | ( | const Comm< Ordinal > & | comm, | |
const RCP< const Packet > & | send, | |||
const int | destRank | |||
) | [related] |
Send a single object that use values semantics to another process.
RCP< CommRequest > isend | ( | const Comm< Ordinal > & | comm, | |
const ArrayRCP< const Packet > & | sendBuffer, | |||
const int | destRank | |||
) | [related] |
Send objects that use values semantics to another process.
int rank | ( | const Comm< Ordinal > & | comm | ) | [related] |
Get the process rank.
void readySend | ( | const Comm< Ordinal > & | comm, | |
const Packet & | send, | |||
const int | destRank | |||
) | [related] |
Ready-Send a single object that use values semantics to another process.
void readySend | ( | const Comm< Ordinal > & | comm, | |
const ArrayView< const Packet > & | sendBuffer, | |||
const int | destRank | |||
) | [related] |
Ready-Send an array of objects that use values semantics to another process.
int receive | ( | const Comm< Ordinal > & | comm, | |
const Serializer< Ordinal, Packet > & | serializer, | |||
const int | sourceRank, | |||
const Ordinal | count, | |||
Packet *const | recvBuffer[] | |||
) | [related] |
Receive objects that use reference semantics from another process.
int receive | ( | const Comm< Ordinal > & | comm, | |
const int | sourceRank, | |||
Packet * | recv | |||
) | [related] |
Receive a single object that use values semantics from another process.
int receive | ( | const Comm< Ordinal > & | comm, | |
const int | sourceRank, | |||
const Ordinal | count, | |||
Packet | recvBuffer[] | |||
) | [related] |
Receive objects that use values semantics from another process.
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[] | |||
) | [related] |
Collective reduce all for array of objects using reference semantics.
void reduceAll | ( | const Comm< Ordinal > & | comm, | |
const EReductionType | reductType, | |||
const Packet & | send, | |||
Packet * | globalReduct | |||
) | [related] |
Collective reduce all for single object using value semantics using a pre-defined reduction type.
void reduceAll | ( | const Comm< Ordinal > & | comm, | |
const EReductionType | reductType, | |||
const Ordinal | count, | |||
const Packet | sendBuffer[], | |||
Packet | globalReducts[] | |||
) | [related] |
Collective reduce all of array of objects using value semantics using a pre-defined reduction type.
void reduceAll | ( | const Comm< Ordinal > & | comm, | |
const ValueTypeReductionOp< Ordinal, Packet > & | reductOp, | |||
const Ordinal | count, | |||
const Packet | sendBuffer[], | |||
Packet | globalReducts[] | |||
) | [related] |
Collective reduce all of array of objects using value semantics using a user-defined reduction operator.
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[] | |||
) | [related] |
Reduce and Scatter array of objects that use reference 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[] | |||
) | [related] |
Reduce and Scatter array of objects that use value semantics using a a pre-defined reduction type.
void reduceAllAndScatter | ( | const Comm< Ordinal > & | comm, | |
const ValueTypeReductionOp< Ordinal, Packet > & | reductOp, | |||
const Ordinal | sendCount, | |||
const Packet | sendBuffer[], | |||
const Ordinal | recvCounts[], | |||
Packet | myGlobalReducts[] | |||
) | [related] |
Reduce and Scatter array of objects that use value semantics using a user-defined reduction object.
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[] | |||
) | [related] |
Scan/Reduce array of objects that use reference semantics using a user-defined reduction operator.
void scan | ( | const Comm< Ordinal > & | comm, | |
const EReductionType | reductType, | |||
const Packet & | send, | |||
Packet * | scanReduct | |||
) | [related] |
Scan/Reduce single object using value semantics using a predefined reduction type.
void scan | ( | const Comm< Ordinal > & | comm, | |
const EReductionType | reductType, | |||
const Ordinal | count, | |||
const Packet | sendBuffer[], | |||
Packet | scanReducts[] | |||
) | [related] |
Scan/Reduce array of objects using value semantics using a predefined reduction type.
void scan | ( | const Comm< Ordinal > & | comm, | |
const ValueTypeReductionOp< Ordinal, Packet > & | reductOp, | |||
const Ordinal | count, | |||
const Packet | sendBuffer[], | |||
Packet | scanReducts[] | |||
) | [related] |
Scan/Reduce array of objects that use value semantics using a user-defined reduction operator.
void send | ( | const Comm< Ordinal > & | comm, | |
const Serializer< Ordinal, Packet > & | serializer, | |||
const Ordinal | count, | |||
const Packet *const | sendBuffer[], | |||
const int | destRank | |||
) | [related] |
Send objects that use reference semantics to another process.
NOTE: Not implemented yet!
void send | ( | const Comm< Ordinal > & | comm, | |
const Packet & | send, | |||
const int | destRank | |||
) | [related] |
Send a single object that use values semantics to another process.
void send | ( | const Comm< Ordinal > & | comm, | |
const Ordinal | count, | |||
const Packet | sendBuffer[], | |||
const int | destRank | |||
) | [related] |
Send objects that use values semantics to another process.
int size | ( | const Comm< Ordinal > & | comm | ) | [related] |
Get the number of processes in the communicator.
void wait | ( | const Comm< Ordinal > & | comm, | |
const Ptr< RCP< CommRequest > > & | request | |||
) | [related] |
Wait on on a single request.
Blocks until the communication operation associated with the CommRequest object has completed.
void waitAll | ( | const Comm< Ordinal > & | comm, | |
const ArrayView< RCP< CommRequest > > & | requests | |||
) | [related] |
Wait for an array of Teuchos::CommRequest objects.
Blocks until all communication operations associated with the CommRequest objects have completed.