Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members   Related Pages  

sc::MPIMessageGrp Class Reference

The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the MPI 1 library. More...

#include <messmpi.h>

Inheritance diagram for sc::MPIMessageGrp:

Inheritance graph
[legend]
Collaboration diagram for sc::MPIMessageGrp:

Collaboration graph
[legend]
List of all members.

Public Methods

 MPIMessageGrp ()
 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.

 ~MPIMessageGrp ()
Ref< MessageGrpclone (void)
 Clones (dups) an MPIMessageGrp from MPI_COMM_WORLD.

void raw_send (int target, void *data, int nbyte)
void raw_recv (int sender, void *data, int nbyte)
void raw_sendt (int target, int type, 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 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)

Protected Methods

p4_cluster * my_node_info (const char[], int &)
void init (MPI_Comm comm, int *argc=0, char ***argv=0)
 Not thread-safe due to race condition on nmpi_grps variable.


Protected Attributes

void * buf
int bufsize
int rnode
int rtag
int rlen
Ref< ThreadGrpthreadgrp
MPI_Comm commgrp
 Currently each commgrp is a dup of MPI_COMM_WORLD.

int nlocal
int nremote
char * master
char * jobid
sc::MPIMessageGrp::p4_cluster * remote_clusters

Static Protected Attributes

int nmpi_grps
 Number of MPIMessageGrp's currently in use.

Ref< ThreadLockgrplock
 lock to access nmpi_grps variable.


Detailed Description

The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the MPI 1 library.


Constructor & Destructor Documentation

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.


Member Function Documentation

void sc::MPIMessageGrp::reduce double *   ,
int    n,
GrpReduce< double > &   ,
double *    scratch = 0,
int    target = -1
[virtual]
 

Global generic reduction.

Similar members exist for each of the basic types.

Reimplemented from sc::MessageGrp.


The documentation for this class was generated from the following file:
Generated at Fri Jan 10 08:15:34 2003 for MPQC 2.1.3 using the documentation package Doxygen 1.2.14.