Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

DistrProcManager Class Reference

dummy base class for managers of distributed processes. More...

#include <DistrProcManager.h>

Inheritance diagram for DistrProcManager::

HandleId DistrProcManagerMPI List of all members.

Public Methods

 DistrProcManager ()
 ~DistrProcManager ()
virtual void init (int &argc, char **&argv)
virtual void finish ()
virtual int getNoProcs ()
virtual int getMyId ()
void setMyId (int new_id)
virtual bool isParallel () const
int getSendCount ()
int getRecvCount ()
bool master () const
bool slave () const
void startIteratorOverSlaves ()
void startIteratorOverSlaves (int &start_slave, int &stop_slave)
bool nextSlave (int &i)
virtual void broadcast (real &r, int root=0)
virtual void broadcast (int &i, int root=0)
virtual void broadcast (String &s, int root=0)
virtual void broadcast (char *c, int size, int root=0)
virtual void broadcast (String *s, int root=0)
virtual void broadcast (VecSimple(int) &vec, int root=0)
virtual void broadcast (VecSimple(real) &vec, int root=0)
virtual void send (real &r, int to=0, int tag=0)
virtual void recv (real &r, int from, int tag)
virtual void send (int &i, int to=0, int tag=0)
virtual void recv (int &i, int from, int tag)
virtual void send (char &c, int to=0, int tag=0)
virtual void recv (char &c, int from, int tag)
virtual void send (VecSimple(real) &vec, int to, int tag)
virtual void recv (VecSimple(real) &vec, int from, int tag)
virtual void send (VecSimple(int) &vec, int to, int tag)
virtual void recv (VecSimple(int) &vec, int from, int tag)
virtual void send (VecSimple(char) &vec, int to, int tag)
virtual void recv (VecSimple(char) &vec, int from, int tag)
virtual void startSend (real &r, int to=0, int tag=0)
virtual void startRecv (real &r, int from, int tag)
virtual void startSend (int &i, int to=0, int tag=0)
virtual void startRecv (int &i, int from, int tag)
virtual void startSend (char &c, int to=0, int tag=0)
virtual void startRecv (char &c, int from, int tag)
virtual void startSend (VecSimple(real) &vec, int to=0, int tag=0)
virtual void startRecv (VecSimple(real) &vec, int from, int tag)
virtual void startSend (VecSimple(int) &vec, int to=0, int tag=0)
virtual void startRecv (VecSimple(int) &vec, int from, int tag)
virtual void startSend (VecSimple(char) &vec, int to=0, int tag=0)
virtual void startRecv (VecSimple(char) &vec, int from, int tag)
virtual void finishSend ()
virtual void finishRecv ()
virtual void redimReqVec (int i)
virtual void initRepSend (real &r, int to=0, int tag=0)
virtual void initRepRecv (real &r, int from, int tag)
virtual void initRepSend (int &i, int to=0, int tag=0)
virtual void initRepRecv (int &i, int from, int tag)
virtual void initRepSend (VecSimple(real) &vec, int to=0, int tag=0)
virtual void initRepRecv (VecSimple(real) &vec, int from, int tag)
virtual void initRepSend (VecSimple(int) &vec, int to=0, int tag=0)
virtual void initRepRecv (VecSimple(int) &vec, int from, int tag)
virtual void startRepSend ()
virtual void startRepRecv ()
virtual void completeRepSend ()
virtual void completeRepRecv ()
virtual void freeRepSend ()
virtual void freeRepRecv ()
virtual void reduce (real &r_loc, real &r_glob, CommOperation op, int root=0)
virtual void reduce (int &i_loc, int &i_glob, CommOperation op, int root=0)
virtual void reduce (VecSimple(real) &r_loc, VecSimple(real) &r_glob, int length, CommOperation op, int root=0)
virtual void reduce (VecSimple(int) &i_loc, VecSimple(int) &i_glob, int length, CommOperation op, int root=0)
virtual void allReduce (real &r_loc, real &r_glob, CommOperation op)
virtual void allReduce (int &i_loc, int &i_glob, CommOperation op)
virtual void allReduce (VecSimple(real) &r_loc, VecSimple(real) &r_glob, int length, CommOperation op)
virtual void allReduce (VecSimple(int) &i_loc, VecSimple(int) &i_glob, int length, CommOperation op)
virtual void synchronize ()
virtual real getTime ()
virtual void probe (int source, int tag)
virtual int getStatusSource ()
virtual int getStatusTag ()
virtual int getStatusError ()
virtual int getStatusSize ()
virtual int getCommConstant (CommConstant const_name)

Protected Attributes

int my_id
int num_procs
int slaves_iter
int loop_length
int start_slave
int stop_slave
int send_reqs_counter
int recv_reqs_counter

Detailed Description

dummy base class for managers of distributed processes.

NAME: DistrProcManager - dummy base class for managers of distributed processes

DESCRIPTION:

The class is a dummy implementation for basic common functionality for management of distributed processes and parallel programming in a parallel Diffpack environment. The interface allows for usage of different communication languages. The actual implementation of the functionality is in the parallel toolbox to Diffpack, see for instance class "DistrProcManagerMPI".


Constructor & Destructor Documentation

DistrProcManager::DistrProcManager ( ) [inline]
 

DistrProcManager::~DistrProcManager ( )
 


Member Function Documentation

void DistrProcManager::allReduce ( VecSimple(int) & i_loc,
VecSimple(int) & i_glob,
int length,
CommOperation op ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::allReduce ( VecSimple(real) & r_loc,
VecSimple(real) & r_glob,
int length,
CommOperation op ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::allReduce ( int & i_loc,
int & i_glob,
CommOperation op ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::allReduce ( real & r_loc,
real & r_glob,
CommOperation op ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::broadcast ( VecSimple(real) & vec,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::broadcast ( VecSimple(int) & vec,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::broadcast ( String * s,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::broadcast ( char * c,
int size,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::broadcast ( String & s,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::broadcast ( int & i,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::broadcast ( real & r,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::completeRepRecv ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::completeRepSend ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::finish ( ) [inline, virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::finishRecv ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::finishSend ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::freeRepRecv ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::freeRepSend ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

int DistrProcManager::getCommConstant ( CommConstant const_name ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

int DistrProcManager::getMyId ( ) [inline, virtual]
 

return the identification number of a process.

Reimplemented in DistrProcManagerMPI.

int DistrProcManager::getNoProcs ( ) [inline, virtual]
 

return the total number of processes.

Reimplemented in DistrProcManagerMPI.

int DistrProcManager::getRecvCount ( ) [inline]
 

int DistrProcManager::getSendCount ( ) [inline]
 

int DistrProcManager::getStatusError ( ) [virtual]
 

int DistrProcManager::getStatusSize ( ) [virtual]
 

int DistrProcManager::getStatusSource ( ) [virtual]
 

int DistrProcManager::getStatusTag ( ) [virtual]
 

real DistrProcManager::getTime ( ) [virtual]
 

returns a real number of seconds since some arbitrary point of time in the past. The point is guaranteed not to change during the lifetime of a process. Thus, a time interval can be measured by calling this routine at the beginning and end of a program segment and subtracting the values returned. Before the time is measured, the processes are synchronized.

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::init ( int & argc,
char **& argv ) [virtual]
 

initiation for use of MPI commands

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepRecv ( VecSimple(int) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepRecv ( VecSimple(real) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepRecv ( int & i,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepRecv ( real & r,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepSend ( VecSimple(int) & vec,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepSend ( VecSimple(real) & vec,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepSend ( int & i,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::initRepSend ( real & r,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

bool DistrProcManager::isParallel ( ) const [inline, virtual]
 

Reimplemented in DistrProcManagerMPI.

bool DistrProcManager::master ( ) const [inline]
 

returns true if the rank of the calling process equals zero.

bool DistrProcManager::nextSlave ( int & i )
 

iterates one step to the next slave process. See startIteratorOverSlaves for more information.

void DistrProcManager::probe ( int source,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::recv ( VecSimple(char) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::recv ( VecSimple(int) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::recv ( VecSimple(real) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::recv ( char & c,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::recv ( int & i,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::recv ( real & r,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::redimReqVec ( int i ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::reduce ( VecSimple(int) & i_loc,
VecSimple(int) & i_glob,
int length,
CommOperation op,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::reduce ( VecSimple(real) & r_loc,
VecSimple(real) & r_glob,
int length,
CommOperation op,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::reduce ( int & i_loc,
int & i_glob,
CommOperation op,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::reduce ( real & r_loc,
real & r_glob,
CommOperation op,
int root = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::send ( VecSimple(char) & vec,
int to,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::send ( VecSimple(int) & vec,
int to,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::send ( VecSimple(real) & vec,
int to,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::send ( char & c,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::send ( int & i,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::send ( real & r,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::setMyId ( int new_id ) [inline]
 

set or change the identification number of a process.

bool DistrProcManager::slave ( ) const [inline]
 

returns true if the rank of the calling process is different from zero.

void DistrProcManager::startIteratorOverSlaves ( int & start_slave,
int & stop_slave )
 

See documentation of one of the overloaded functions.

void DistrProcManager::startIteratorOverSlaves ( )
 

The "startIteratorOverSlaves" and "nextSlave" functions enables the programmer to run through all slave processes in the group or through only a subset of the slave processes. To initialize the iteration over slaves, call "startIteratorOverSlaves". Without arguments, "startIteratorOverSlaves" initializes the iteration over all slave processes in the group. In an overloaded version indices for the starting and stopping slave in the group can be given.

void DistrProcManager::startRecv ( VecSimple(char) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startRecv ( VecSimple(int) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startRecv ( VecSimple(real) & vec,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startRecv ( char & c,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startRecv ( int & i,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startRecv ( real & r,
int from,
int tag ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startRepRecv ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startRepSend ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startSend ( VecSimple(char) & vec,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startSend ( VecSimple(int) & vec,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startSend ( VecSimple(real) & vec,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startSend ( char & c,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startSend ( int & i,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::startSend ( real & r,
int to = 0,
int tag = 0 ) [virtual]
 

Reimplemented in DistrProcManagerMPI.

void DistrProcManager::synchronize ( ) [virtual]
 

Reimplemented in DistrProcManagerMPI.


Member Data Documentation

int DistrProcManager::loop_length [protected]
 

int DistrProcManager::my_id [protected]
 

int DistrProcManager::num_procs [protected]
 

int DistrProcManager::recv_reqs_counter [protected]
 

int DistrProcManager::send_reqs_counter [protected]
 

int DistrProcManager::slaves_iter [protected]
 

int DistrProcManager::start_slave [protected]
 

int DistrProcManager::stop_slave [protected]
 


The documentation for this class was generated from the following file:
Copyright © 2003 inuTech GmbH. All rights reserved.