Public Member Functions | Protected Member Functions | Protected Attributes

Comm::Communicator Class Reference

Communicator class for interprocess communication. More...

#include <Communicator.h>

List of all members.

Public Member Functions

bool initialize (StateP, int, char **)
bool finalize ()
bool isInitialized ()
bool sendIndividuals (std::vector< IndividualP >, uint, uint nIndividuals=0)
bool sendIndividualsGlobal (std::vector< IndividualP >, uint, uint nIndividuals=0)
bool sendFitness (std::vector< IndividualP >, uint, uint nIndividuals=0)
bool sendValuesGlobal (std::vector< double >, uint)
bool sendLogsGlobal (std::string, uint iProcess=0, bool blocking=false)
bool sendDataGlobal (voidP, uint, uint)
uint recvDemeIndividuals (std::vector< IndividualP > &, uint)
std::vector< IndividualP > recvIndividuals (uint iProcess=MPI::ANY_SOURCE)
std::vector< IndividualP > recvIndividualsGlobal (uint iProcess=MPI::ANY_SOURCE)
uint recvReplaceIndividuals (std::vector< IndividualP > &, uint)
uint recvDemeFitness (std::vector< IndividualP > &, uint)
std::vector< uint > recvFitnessVector (std::vector< IndividualP > &, uint)
std::vector< double > recvValuesGlobal (uint iProcess=MPI::ANY_SOURCE)
std::string recvLogsGlobal ()
voidP recvDataGlobal (uint iProcess=MPI::ANY_SOURCE)
bool messageWaiting (uint iProcess=MPI::ANY_SOURCE, uint tag=MPI::ANY_TAG)
void synchronize ()
bool sendControlMessage (uint, int)
int recvControlMessage (uint)
bool sendTerminateMessage (uint, bool)
bool recvTerminateMessage (uint)
bool checkTerminationMessage (uint master=0)
uint createDemeCommunicator (uint nDemes)
uint getDemeMaster (uint iDeme)
uint getLastSource ()
uint getCommRank ()
uint getCommSize ()
uint getCommGlobalRank ()
uint getCommGlobalSize ()
bool initialize (StateP state, int argc, char **argv)
bool finalize ()
uint getCommRank ()
uint getCommGlobalRank ()
uint getCommSize ()

Protected Member Functions

double time (enum timing T)

Protected Attributes

uint mpiGlobalSize_
uint mpiGlobalRank_
uint mpiSize_
uint mpiRank_
std::string processorName_
StateP state_
MPI::Status status_
MPI::Status controlStatus_
int logLevel_
std::vector< uint > demeMasters
bool bInitialized_
MPI::Intercomm frameworkComm_
MPI::Intercomm demeComm_
double currentTime_
double lastTime_
double beginTime_
double endTime_
double idleTime_
double sendTime_
double recvTime_
double compTime_
double packTime_
double unpackTime_
uint sendCnt_
uint recvCnt_

Detailed Description

Communicator class for interprocess communication.

Wraps MPI calls for message passing between processes. Note: will be reimplemented as an abstract class with MPI specialization.

Definition at line 44 of file Communicator.h.

Member Function Documentation

double Comm::Communicator::time ( enum timing  T  )  [protected]

Gets current time and adds elapsed time to a category

: elapsed time (since last function call)

Definition at line 130 of file Communicator.cpp.

Member Data Documentation

MPI::Intercomm Comm::Communicator::demeComm_ [protected]

deme communicator - initially includes all processes (MPI_COMM_WORLD) but may be split into subcomms if multiple deme population is used Used by:

  • the active algorithm, for algorithm implementation and broadcast of termination signal

Definition at line 78 of file Communicator.h.

MPI::Intercomm Comm::Communicator::frameworkComm_ [protected]

framework communicator - equivalent to MPI_COMM_WORLD Used by:

  • State
    • for termination condition messages
  • Migration
    • for individual exchange between demes
  • Population
    • for statistics and hall-of-fame updates
  • Logger
    • for accumulation of logs to process 0

Definition at line 71 of file Communicator.h.

The documentation for this class was generated from the following files: