.TH "sc::MPIMessageGrp" 3 "Sun Oct 4 2020" "Version 2.3.1" "MPQC" \" -*- nroff -*- .ad l .nh .SH NAME sc::MPIMessageGrp \- The \fBMPIMessageGrp\fP class is an concrete implementation of \fBMessageGrp\fP that uses the MPI 1 library\&. .SH SYNOPSIS .br .PP .PP \fC#include \fP .PP Inherits \fBsc::MessageGrp\fP\&. .SS "Public Member Functions" .in +1c .ti -1c .RI "\fBMPIMessageGrp\fP (MPI_Comm comm)" .br .RI "Use an MPI communicator to create a \fBMessageGrp\fP\&. " .ti -1c .RI "\fBMPIMessageGrp\fP (int *argc, char ***argv)" .br .RI "Use argc and argv to create a \fBMPIMessageGrp\fP\&. " .ti -1c .RI "\fBMPIMessageGrp\fP (const \fBRef\fP< \fBKeyVal\fP > &)" .br .RI "Construction \fBMPIMessageGrp\fP given a \fBKeyVal\fP input object\&. " .ti -1c .RI "\fBRef\fP< \fBMessageGrp\fP > \fBclone\fP (void)" .br .RI "Clones (dups) an \fBMPIMessageGrp\fP from MPI_COMM_WORLD\&. " .ti -1c .RI "void \fBraw_send\fP (int target, const void *data, int nbyte)" .br .ti -1c .RI "void \fBraw_recv\fP (int sender, void *data, int nbyte)" .br .ti -1c .RI "void \fBraw_sendt\fP (int target, int type, const void *data, int nbyte)" .br .ti -1c .RI "void \fBraw_recvt\fP (int type, void *data, int nbyte)" .br .ti -1c .RI "int \fBprobet\fP (int type)" .br .RI "Ask if a given typed message has been received\&. " .ti -1c .RI "void \fBsync\fP ()" .br .RI "Synchronize all of the processors\&. " .ti -1c .RI "void \fBsum\fP (double *, int \fBn\fP, double *scratch=0, int target=\-1)" .br .RI "Global sum reduction\&. " .ti -1c .RI "void \fBsum\fP (int *, int \fBn\fP, int *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (double *, int \fBn\fP, \fBGrpReduce\fP< double > &, double *scratch=0, int target=\-1)" .br .RI "Global generic reduction\&. " .ti -1c .RI "void \fBreduce\fP (unsigned int *, int \fBn\fP, \fBGrpReduce\fP< unsigned int > &, unsigned int *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (int *, int \fBn\fP, \fBGrpReduce\fP< int > &, int *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (char *, int \fBn\fP, \fBGrpReduce\fP< char > &, char *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (unsigned char *, int \fBn\fP, \fBGrpReduce\fP< unsigned char > &, unsigned char *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (signed char *, int \fBn\fP, \fBGrpReduce\fP< signed char > &, signed char *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (short *, int \fBn\fP, \fBGrpReduce\fP< short > &, short *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (float *, int \fBn\fP, \fBGrpReduce\fP< float > &, float *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBreduce\fP (long *, int \fBn\fP, \fBGrpReduce\fP< long > &, long *scratch=0, int target=\-1)" .br .ti -1c .RI "void \fBraw_bcast\fP (void *data, int nbyte, int from)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "void \fBinit\fP (MPI_Comm comm, int *argc=0, char ***argv=0)" .br .RI "Not thread-safe due to race condition on nmpi_grps variable\&. " .in -1c .SS "Protected Attributes" .in +1c .ti -1c .RI "void * \fBbuf\fP" .br .ti -1c .RI "int \fBbufsize\fP" .br .ti -1c .RI "int \fBrnode\fP" .br .ti -1c .RI "int \fBrtag\fP" .br .ti -1c .RI "int \fBrlen\fP" .br .ti -1c .RI "bool \fBuse_messagegrp_collectives_\fP" .br .RI "If true use the generic collective routines in the base class\&. " .ti -1c .RI "\fBRef\fP< \fBThreadGrp\fP > \fBthreadgrp\fP" .br .ti -1c .RI "MPI_Comm \fBcommgrp\fP" .br .RI "Currently each commgrp is a dup of MPI_COMM_WORLD\&. " .in -1c .SS "Static Protected Attributes" .in +1c .ti -1c .RI "static int \fBnmpi_grps\fP" .br .RI "Number of \fBMPIMessageGrp\fP's currently in use\&. " .ti -1c .RI "static \fBRef\fP< \fBThreadLock\fP > \fBgrplock\fP" .br .RI "lock to access nmpi_grps variable " .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBMPIMessageGrp\fP class is an concrete implementation of \fBMessageGrp\fP that uses the MPI 1 library\&. .br .SH "Constructor & Destructor Documentation" .PP .SS "sc::MPIMessageGrp::MPIMessageGrp (MPI_Comm comm)" .PP Use an MPI communicator to create a \fBMessageGrp\fP\&. The comm argument could be a subset of MPI_COMM_WORLD, for example\&. .SS "sc::MPIMessageGrp::MPIMessageGrp (int * argc, char *** argv)" .PP Use argc and argv to create a \fBMPIMessageGrp\fP\&. This would have to be used for implementations of MPI that have MPI_Init fill in argc and argv\&. .SH "Member Function Documentation" .PP .SS "void sc::MPIMessageGrp::reduce (double *, int n, \fBGrpReduce\fP< double > &, double * scratch = \fC0\fP, int target = \fC\-1\fP)\fC [virtual]\fP" .PP Global generic reduction\&. Similar members exist for each of the basic types\&. .PP Reimplemented from \fBsc::MessageGrp\fP\&. .SS "void sc::MPIMessageGrp::sum (double * data, int n, double * = \fC0\fP, int target = \fC\-1\fP)\fC [virtual]\fP" .PP Global sum reduction\&. Similar members exist for each of the basic types\&. .PP Reimplemented from \fBsc::MessageGrp\fP\&. .SH "Author" .PP Generated automatically by Doxygen for MPQC from the source code\&.