#include <message.h>
Inherits sc::DescribedClass.
Inherited by sc::intMessageGrp, sc::MPIMessageGrp, and sc::ProcMessageGrp.
PublicMemberFunctionsMessageGrp (const Ref< KeyVal > &)
int n ()
Returns the number of processors.
int me ()
Returns my processor number. In the range [0,n()).
virtual Ref< MessageGrp > clone (void)=0
Returns a copy of this MessageGrp specialization that provides an independent communication context.
virtual void send (int target, const double *data, int ndata)
Send messages sequentially to the target processor.
virtual void send (int target, const unsigned int *data, int ndata)
virtual void send (int target, const int *data, int ndata)
virtual void send (int target, const char *data, int nbyte)
virtual void send (int target, const unsigned char *data, int nbyte)
virtual void send (int target, const signed char *data, int nbyte)
virtual void send (int target, const short *data, int ndata)
virtual void send (int target, const long *data, int ndata)
virtual void send (int target, const float *data, int ndata)
void send (int target, double data)
void send (int target, int data)
virtual void raw_send (int target, const void *data, int nbyte)=0
virtual void sendt (int target, int type, const double *data, int ndata)
Send typed messages to the target processor.
virtual void sendt (int target, int type, const unsigned int *data, int ndata)
virtual void sendt (int target, int type, const int *data, int ndata)
virtual void sendt (int target, int type, const char *data, int nbyte)
virtual void sendt (int target, int type, const unsigned char *data, int nbyte)
virtual void sendt (int target, int type, const signed char *data, int nbyte)
virtual void sendt (int target, int type, const short *data, int ndata)
virtual void sendt (int target, int type, const long *data, int ndata)
virtual void sendt (int target, int type, const float *data, int ndata)
void sendt (int target, int type, double data)
void sendt (int target, int type, int data)
virtual void raw_sendt (int target, int type, const void *data, int nbyte)=0
virtual void recv (int sender, double *data, int ndata)
Receive messages sent sequentually from the sender.
virtual void recv (int sender, unsigned int *data, int ndata)
virtual void recv (int sender, int *data, int ndata)
virtual void recv (int sender, char *data, int nbyte)
virtual void recv (int sender, unsigned char *data, int nbyte)
virtual void recv (int sender, signed char *data, int nbyte)
virtual void recv (int sender, short *data, int ndata)
virtual void recv (int sender, long *data, int ndata)
virtual void recv (int sender, float *data, int ndata)
void recv (int sender, double &data)
void recv (int sender, int &data)
virtual void raw_recv (int sender, void *data, int nbyte)=0
virtual void recvt (int type, double *data, int ndata)
Receive messages sent by type.
virtual void recvt (int type, unsigned int *data, int ndata)
virtual void recvt (int type, int *data, int ndata)
virtual void recvt (int type, char *data, int nbyte)
virtual void recvt (int type, unsigned char *data, int nbyte)
virtual void recvt (int type, signed char *data, int nbyte)
virtual void recvt (int type, short *data, int ndata)
virtual void recvt (int type, long *data, int ndata)
virtual void recvt (int type, float *data, int ndata)
void recvt (int type, double &data)
void recvt (int type, int &data)
virtual void raw_recvt (int type, void *data, int nbyte)=0
virtual int probet (int type)=0
Ask if a given typed message has been received.
virtual void bcast (double *data, int ndata, int from=0)
Do broadcasts of various types of data.
virtual void bcast (unsigned int *data, int ndata, int from=0)
virtual void bcast (int *data, int ndata, int from=0)
virtual void bcast (char *data, int nbyte, int from=0)
virtual void bcast (unsigned char *data, int nbyte, int from=0)
virtual void bcast (signed char *data, int nbyte, int from=0)
virtual void bcast (short *data, int ndata, int from=0)
virtual void bcast (long *data, int ndata, int from=0)
virtual void bcast (float *data, int ndata, int from=0)
virtual void raw_bcast (void *data, int nbyte, int from=0)
void bcast (double &data, int from=0)
void bcast (int &data, int from=0)
virtual void raw_collect (const void *part, const int *lengths, void *whole, int bytes_per_datum=1)
Collect data distributed on the nodes to a big array replicated on each node.
void collect (const double *part, const int *lengths, double *whole)
virtual void sum (double *data, int n, double *=0, int target=-1)
Global sum reduction.
virtual void sum (unsigned int *data, int n, unsigned int *=0, int target=-1)
virtual void sum (int *data, int n, int *=0, int target=-1)
virtual void sum (char *data, int n, char *=0, int target=-1)
virtual void sum (unsigned char *data, int n, unsigned char *=0, int target=-1)
virtual void sum (signed char *data, int n, signed char *=0, int target=-1)
void sum (double &data)
void sum (int &data)
virtual void max (double *data, int n, double *=0, int target=-1)
Global maximization.
virtual void max (int *data, int n, int *=0, int target=-1)
virtual void max (unsigned int *data, int n, unsigned int *=0, int target=-1)
virtual void max (char *data, int n, char *=0, int target=-1)
virtual void max (unsigned char *data, int n, unsigned char *=0, int target=-1)
virtual void max (signed char *data, int n, signed char *=0, int target=-1)
void max (double &data)
void max (int &data)
virtual void min (double *data, int n, double *=0, int target=-1)
Global minimization.
virtual void min (int *data, int n, int *=0, int target=-1)
virtual void min (unsigned int *data, int n, unsigned int *=0, int target=-1)
virtual void min (char *data, int n, char *=0, int target=-1)
virtual void min (unsigned char *data, int n, unsigned char *=0, int target=-1)
virtual void min (signed char *data, int n, signed char *=0, int target=-1)
void min (double &data)
void min (int &data)
virtual void reduce (double *, int n, GrpReduce< double > &, double *scratch=0, int target=-1)
Global generic reduction.
virtual void reduce (int *, int n, GrpReduce< int > &, int *scratch=0, int target=-1)
virtual void reduce (unsigned int *, int n, GrpReduce< unsigned int > &, unsigned int *scratch=0, int
target=-1)
virtual void reduce (char *, int n, GrpReduce< char > &, char *scratch=0, int target=-1)
virtual void reduce (unsigned char *, int n, GrpReduce< unsigned char > &, unsigned char *scratch=0, int
target=-1)
virtual void reduce (signed char *, int n, GrpReduce< signed char > &, signed char *scratch=0, int
target=-1)
virtual void reduce (short *, int n, GrpReduce< short > &, short *scratch=0, int target=-1)
virtual void reduce (float *, int n, GrpReduce< float > &, float *scratch=0, int target=-1)
virtual void reduce (long *, int n, GrpReduce< long > &, long *scratch=0, int target=-1)
void reduce (double &data, GrpReduce< double > &r)
void reduce (int &data, GrpReduce< int > &r)
virtual void sync ()
Synchronize all of the processors.
Ref< MachineTopology > topology ()
Return the MachineTopology object.
int classdesc_to_index (const ClassDesc *)
Each message group maintains an association of ClassDesc with a global index so SavableState
information can be sent between nodes without needing to send the classname and look up the ClassDesc
with each transfer.
const ClassDesc * index_to_classdesc (int)
int nclass () const
StaticPublicMemberFunctions
static void set_default_messagegrp (const Ref< MessageGrp > &)
The default message group contains the primary message group to be used by an application.
static MessageGrp * get_default_messagegrp ()
Returns the default message group.
static MessageGrp * initial_messagegrp (int &argc, char **&argv)
Create a message group.
ProtectedMemberFunctions
void initialize (int me, int n)
The classdesc_to_index_ and index_to_classdesc_ arrays cannot be initialized by the MessageGrp CTOR,
because the MessageGrp specialization has not yet been initialized and communication is not
available.
ProtectedAttributesRef< MachineTopology > topology_
int debug_