man sc_MPIMessageGrp (Fonctions bibliothèques) - The MPIMessageGrp class is an concrete implementation of MessageGrp that uses the MPI 1 library.

NAME

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

SYNOPSIS



#include <messmpi.h>

Inherits sc::MessageGrp.

Public Member Functions

MPIMessageGrp (MPI_Comm comm)

Use an MPI communicator to create a MessageGrp. MPIMessageGrp (int *argc, char ***argv)

Use argc and argv to create a MPIMessageGrp. 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. 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. 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 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 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.

Static Protected Attributes

static int nmpi_grps

Number of MPIMessageGrp's currently in use. static Ref< ThreadLock > grplock

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.

void sc::MPIMessageGrp::sum (double *, int n, double * scratch = 0, int target = -1) [virtual]

Global sum reduction.

Similar members exist for each of the basic types.

Reimplemented from sc::MessageGrp.

Author

Generated automatically by Doxygen for MPQC from the source code.