|
MPQC
2.3.1
|
The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the MPI 1 library. More...
#include <messmpi.h>


Public Member Functions | |
| MPIMessageGrp (MPI_Comm comm) | |
| Use an MPI communicator to create a MessageGrp. More... | |
| MPIMessageGrp (int *argc, char ***argv) | |
| Use argc and argv to create a MPIMessageGrp. More... | |
| MPIMessageGrp (const Ref< KeyVal > &) | |
| Construction MPIMessageGrp given a KeyVal input object. | |
| Ref< MessageGrp > | clone (void) |
| Clones (dups) an MPIMessageGrp from MPI_COMM_WORLD. | |
| void | raw_send (int target, const void *data, int nbyte) |
| void | raw_recv (int sender, void *data, int nbyte) |
| void | raw_sendt (int target, int type, const void *data, int nbyte) |
| void | raw_recvt (int type, void *data, int nbyte) |
| int | probet (int type) |
| Ask if a given typed message has been received. | |
| void | sync () |
| Synchronize all of the processors. | |
| void | sum (double *, int n, double *scratch=0, int target=-1) |
| Global sum reduction. More... | |
| void | sum (int *, int n, int *scratch=0, int target=-1) |
| void | reduce (double *, int n, GrpReduce< double > &, double *scratch=0, int target=-1) |
| Global generic reduction. More... | |
| void | reduce (unsigned int *, int n, GrpReduce< unsigned int > &, unsigned int *scratch=0, int target=-1) |
| void | reduce (int *, int n, GrpReduce< int > &, int *scratch=0, int target=-1) |
| void | reduce (char *, int n, GrpReduce< char > &, char *scratch=0, int target=-1) |
| void | reduce (unsigned char *, int n, GrpReduce< unsigned char > &, unsigned char *scratch=0, int target=-1) |
| void | reduce (signed char *, int n, GrpReduce< signed char > &, signed char *scratch=0, int target=-1) |
| void | reduce (short *, int n, GrpReduce< short > &, short *scratch=0, int target=-1) |
| void | reduce (float *, int n, GrpReduce< float > &, float *scratch=0, int target=-1) |
| void | reduce (long *, int n, GrpReduce< long > &, long *scratch=0, int target=-1) |
| void | raw_bcast (void *data, int nbyte, int from) |
Public Member Functions inherited from sc::MessageGrp | |
| MessageGrp (const Ref< KeyVal > &) | |
| int | n () |
| Returns the number of processors. | |
| int | me () |
| Returns my processor number. In the range [0,n()). | |
| virtual void | send (int target, const double *data, int ndata) |
| Send messages sequentially to the target processor. More... | |
| 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 | sendt (int target, int type, const double *data, int ndata) |
| Send typed messages to the target processor. More... | |
| 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 | recv (int sender, double *data, int ndata) |
| Receive messages sent sequentually from the sender. More... | |
| 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 | recvt (int type, double *data, int ndata) |
| Receive messages sent by type. More... | |
| 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 | bcast (double *data, int ndata, int from=0) |
| Do broadcasts of various types of data. More... | |
| 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) |
| 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 (unsigned int *data, int n, unsigned 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. More... | |
| 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. More... | |
| 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) |
| void | reduce (double &data, GrpReduce< double > &r) |
| void | reduce (int &data, GrpReduce< int > &r) |
| 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. More... | |
| const ClassDesc * | index_to_classdesc (int) |
| int | nclass () const |
Public Member Functions inherited from sc::DescribedClass | |
| DescribedClass (const DescribedClass &) | |
| DescribedClass & | operator= (const DescribedClass &) |
| ClassDesc * | class_desc () const throw () |
| This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More... | |
| const char * | class_name () const |
| Return the name of the object's exact type. | |
| int | class_version () const |
| Return the version of the class. | |
| virtual void | print (std::ostream &=ExEnv::out0()) const |
| Print the object. | |
Public Member Functions inherited from sc::RefCount | |
| int | lock_ptr () const |
| Lock this object. | |
| int | unlock_ptr () const |
| Unlock this object. | |
| void | use_locks (bool inVal) |
| start and stop using locks on this object | |
| refcount_t | nreference () const |
| Return the reference count. | |
| refcount_t | reference () |
| Increment the reference count and return the new count. | |
| refcount_t | dereference () |
| Decrement the reference count and return the new count. | |
| int | managed () const |
| void | unmanage () |
| Turn off the reference counting mechanism for this object. More... | |
| int | managed () const |
| Return 1 if the object is managed. Otherwise return 0. | |
Public Member Functions inherited from sc::Identity | |
| Identifier | identifier () |
| Return the Identifier for this argument. More... | |
Protected Member Functions | |
| void | init (MPI_Comm comm, int *argc=0, char ***argv=0) |
| Not thread-safe due to race condition on nmpi_grps variable. | |
Protected Member Functions inherited from sc::MessageGrp | |
| 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. More... | |
Protected Member Functions inherited from sc::RefCount | |
| RefCount (const RefCount &) | |
| RefCount & | operator= (const RefCount &) |
Protected Attributes | |
| void * | buf |
| int | bufsize |
| int | rnode |
| int | rtag |
| int | rlen |
| bool | use_messagegrp_collectives_ |
| If true use the generic collective routines in the base class. | |
| Ref< ThreadGrp > | threadgrp |
| MPI_Comm | commgrp |
| Currently each commgrp is a dup of MPI_COMM_WORLD. | |
Protected Attributes inherited from sc::MessageGrp | |
| Ref< MachineTopology > | topology_ |
| int | debug_ |
Static Protected Attributes | |
| static int | nmpi_grps |
| Number of MPIMessageGrp's currently in use. | |
| static Ref< ThreadLock > | grplock |
| lock to access nmpi_grps variable | |
Additional Inherited Members | |
Static Public Member Functions inherited from sc::MessageGrp | |
| 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. More... | |
The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the MPI 1 library.
| sc::MPIMessageGrp::MPIMessageGrp | ( | MPI_Comm | comm | ) |
Use an MPI communicator to create a MessageGrp.
The comm argument could be a subset of MPI_COMM_WORLD, for example.
| sc::MPIMessageGrp::MPIMessageGrp | ( | int * | argc, |
| char *** | argv | ||
| ) |
Use argc and argv to create a MPIMessageGrp.
This would have to be used for implementations of MPI that have MPI_Init fill in argc and argv.
|
virtual |
Global generic reduction.
Similar members exist for each of the basic types.
Reimplemented from sc::MessageGrp.
|
virtual |
Global sum reduction.
Similar members exist for each of the basic types.
Reimplemented from sc::MessageGrp.