Teuchos Package Browser (Single Doxygen Collection) Version of the Day
Related Functions
Teuchos::Comm< Ordinal > Class Template Reference

Abstract interface class for a basic communication channel between one or more processes. More...

#include <Teuchos_Comm.hpp>

Inheritance diagram for Teuchos::Comm< Ordinal >:
Inheritance graph
[legend]

List of all members.

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 broadcast (const Comm< Ordinal > &comm, const Serializer< Ordinal, Packet > &serializer, const int rootRank, const ArrayView< const Ptr< Packet > > &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, const Ptr< 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, const Ptr< 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< CommRequestisend (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< CommRequestisend (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< CommRequestireceive (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< CommRequestireceive (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.

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< CommRequestisend (const ArrayView< const char > &sendBuffer, const int destRank) const =0
 Non-blocking send.
virtual RCP< CommRequestireceive (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.

Detailed Description

template<typename Ordinal>
class Teuchos::Comm< Ordinal >

Abstract interface class for a basic communication channel between one or more processes.

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.


Member Function Documentation

template<typename Ordinal>
virtual int Teuchos::Comm< Ordinal >::getRank ( ) const [pure virtual]

Returns the rank of this process.

Postconditions:

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename 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 >.

template<typename Ordinal>
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 >.

template<typename 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.

Parameters:
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.

Preconditions:

  • 0 <= rootRank && rootRank < this->getSize()

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename 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.

Parameters:
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.

Preconditions:

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename 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.

Parameters:
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 >.

template<typename 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.

Parameters:
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.

Preconditions:

  • sendBytes == sum(recvCounts[i],i=0...this->getSize()-1)

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename 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.

Parameters:
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 >.

template<typename 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.

Parameters:
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.

Preconditions:

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename 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.

Parameters:
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").

Preconditions:

Returns:
Returns the senders rank.

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename 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.

Parameters:
sendBuffer[in] The data to be sent.
destRank[in] The rank of the process to receive the data.

Preconditions:

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename Ordinal>
virtual RCP<CommRequest> Teuchos::Comm< Ordinal >::isend ( const ArrayView< const char > &  sendBuffer,
const int  destRank 
) const [pure virtual]

Non-blocking send.

Parameters:
sendBuffer[in] The data buffer to be sent.
destRank[in] The rank of the process to receive the data.

Preconditions:

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename Ordinal>
virtual RCP<CommRequest> Teuchos::Comm< Ordinal >::ireceive ( const ArrayView< char > &  recvBuffer,
const int  sourceRank 
) const [pure virtual]

Non-blocking receive.

Parameters:
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.

Preconditions:

Returns:
Returns the senders rank.

Implemented in Teuchos::MpiComm< Ordinal >, and Teuchos::SerialComm< Ordinal >.

template<typename 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 >.

template<typename 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 >.


Friends And Related Function Documentation

template<typename Ordinal>
enum EReductionType [related]

Enumeration for selecting from a set of pre-defined reduction operations.

Enumerator:
REDUCE_SUM 

Sum.

REDUCE_MIN 

Min.

REDUCE_MAX 

Max.

REDUCE_AND 

Logical AND.

Definition at line 57 of file Teuchos_CommHelpers.hpp.

template<typename Ordinal >
int rank ( const Comm< Ordinal > &  comm) [related]

Get the process rank.

template<typename Ordinal >
int size ( const Comm< Ordinal > &  comm) [related]

Get the number of processes in the communicator.

template<typename Ordinal >
void barrier ( const Comm< Ordinal > &  comm) [related]

Barrier.

template<typename Ordinal , typename Packet >
void broadcast ( const Comm< Ordinal > &  comm,
const int  rootRank,
const Ordinal  count,
Packet  buffer[] 
) [related]

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 
) [related]

Broadcast array of objects that use value semantics.

template<typename Ordinal , typename Packet >
void broadcast ( const Comm< Ordinal > &  comm,
const int  rootRank,
Packet *  object 
) [related]

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 
) [related]

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[] 
) [related]

Broadcast array of objects that use reference semantics.

template<typename Ordinal , typename Packet >
void broadcast ( const Comm< Ordinal > &  comm,
const Serializer< Ordinal, Packet > &  serializer,
const int  rootRank,
const ArrayView< const Ptr< Packet > > &  buffer 
) [related]

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[] 
) [related]

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[] 
) [related]

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[] 
) [related]

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[] 
) [related]

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,
const Ptr< Packet > &  globalReduct 
) [related]

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[] 
) [related]

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[] 
) [related]

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[] 
) [related]

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[] 
) [related]

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[] 
) [related]

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[] 
) [related]

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,
const Ptr< Packet > &  scanReduct 
) [related]

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[] 
) [related]

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 
) [related]

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 
) [related]

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 
) [related]

Send objects that use reference semantics to another process.

NOTE: Not implemented yet!

template<typename Ordinal , typename Packet >
int receive ( const Comm< Ordinal > &  comm,
const int  sourceRank,
const Ordinal  count,
Packet  recvBuffer[] 
) [related]

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 
) [related]

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[] 
) [related]

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 
) [related]

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 
) [related]

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 
) [related]

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 
) [related]

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 
) [related]

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 
) [related]

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 
) [related]

Wait for an array of Teuchos::CommRequest objects.

Blocks until all communication operations associated with the CommRequest objects have completed.

template<typename Ordinal >
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.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines