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

Teuchos::Describable Teuchos::LabeledObject Teuchos::MpiComm< Ordinal > Teuchos::SerialComm< Ordinal > List of all members.

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

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...
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, const ArrayView< 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 int rootRank, const Ptr< 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 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.
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, const Ptr< 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, const Ptr< 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.
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.
void readySend (const Comm< Ordinal > &comm, const Packet &send, const int destRank)
 Ready-Send a single object that use values semantics to another process.
RCP< CommRequestisend (const Comm< Ordinal > &comm, const ArrayRCP< const Packet > &sendBuffer, const int destRank)
 Send objects that use values semantics to another process.
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.
RCP< CommRequestireceive (const Comm< Ordinal > &comm, const ArrayRCP< Packet > &recvBuffer, const int sourceRank)
 Send objects that use values semantics to another process.
RCP< CommRequestireceive (const Comm< Ordinal > &comm, const RCP< Packet > &recv, const int sourceRank)
 Send a single object that use values semantics to another process.
void waitAll (const Comm< Ordinal > &comm, const ArrayView< RCP< CommRequest > > &requests)
 Wait for an array of Teuchos::CommRequest objects.
void wait (const Comm< Ordinal > &comm, const Ptr< RCP< CommRequest > > &request)
 Wait on on a single 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:

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:

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:

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:

Postconditions:

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:

Postconditions:

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.

Definition at line 821 of file Teuchos_CommHelpers.hpp.

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

Get the number of processes in the communicator.

Definition at line 828 of file Teuchos_CommHelpers.hpp.

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

Barrier.

Definition at line 835 of file Teuchos_CommHelpers.hpp.

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

Broadcast array of objects that use value semantics.

Definition at line 847 of file Teuchos_CommHelpers.hpp.

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

Broadcast array of objects that use value semantics.

Definition at line 866 of file Teuchos_CommHelpers.hpp.

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

Broadcast single object that use value semantics.

Definition at line 877 of file Teuchos_CommHelpers.hpp.

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

Broadcast single object that use value semantics.

Definition at line 887 of file Teuchos_CommHelpers.hpp.

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

Definition at line 897 of file Teuchos_CommHelpers.hpp.

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

Definition at line 916 of file Teuchos_CommHelpers.hpp.

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

Definition at line 931 of file Teuchos_CommHelpers.hpp.

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

Definition at line 954 of file Teuchos_CommHelpers.hpp.

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

Definition at line 965 of file Teuchos_CommHelpers.hpp.

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

Definition at line 989 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1006 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1016 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1041 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1089 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1109 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1121 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1145 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1162 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1172 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1183 of file Teuchos_CommHelpers.hpp.

template<typename Ordinal>
void send ( const Comm< Ordinal > &  comm,
const Packet &  send,
const int  destRank 
) [related]

Send a single object that use values semantics to another process.

Definition at line 1203 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1213 of file Teuchos_CommHelpers.hpp.

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

Receive objects that use values semantics from another process.

Definition at line 1222 of file Teuchos_CommHelpers.hpp.

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

Receive a single object that use values semantics from another process.

Definition at line 1242 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1252 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1262 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1280 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1292 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1314 of file Teuchos_CommHelpers.hpp.

template<typename Ordinal>
RCP< CommRequest > ireceive ( const Comm< Ordinal > &  comm,
const ArrayRCP< Packet > &  recvBuffer,
const int  sourceRank 
) [related]

Send objects that use values semantics to another process.

Definition at line 1330 of file Teuchos_CommHelpers.hpp.

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

Definition at line 1353 of file Teuchos_CommHelpers.hpp.

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.

Definition at line 1368 of file Teuchos_CommHelpers.hpp.

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.

Definition at line 1378 of file Teuchos_CommHelpers.hpp.


The documentation for this class was generated from the following files:
Generated on Tue Jul 13 09:23:01 2010 for Teuchos - Trilinos Tools Package by  doxygen 1.4.7