BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
commtools.cpp File Reference
#include <cstring>
#include <cstdlib>
#include "commtools.hpp"
#include "cl_StringList.hpp"
Include dependency graph for commtools.cpp:

Namespaces

namespace  belfem
 USER GUIDES:

Functions

proc_t belfem::comm_size ()
proc_t belfem::comm_rank ()
void belfem::comm_check (const int aErrorCode)
 Any code other than MPI_SUCCESS aborts through BELFEM_ERROR ( release too ), which ends the whole run with MPI_Abort on the world communicator.
void belfem::comm_barrier ()
 Collective: every rank must reach it before any rank passes it.
void belfem::comm_abort (const int aErrorCode=1)
 Kill the whole job.
int belfem::comm_tag (const proc_t aSource, const proc_t aTarget)
 The base tag of an unordered rank pair.
void belfem::comm_drain_check (const char *aLabel)
 Debug-build tripwire for the two-tags-per-pair ordering contract of the point-to-point fabric ( see comm_tag() in commtools.cpp ).
Cell< int > belfem::comm_split (const index_t aLength)
 Local, it does not communicate: splits aLength into chunks of at most gMaxCommChunkLength.
index_t belfem::comm_splitcount (const Vector< index_t > &aLengths, const proc_t aRoot)
 Local, it does not communicate despite aRoot: the number of chunk messages comm_split() would produce for every rank but aRoot.
index_t belfem::comm_splitcount (index_t aLength)
void belfem::broadcast (Cell< string > &aData, const proc_t aRoot=0)
 Collective: every rank calls it, and aRoot's data lands on all ranks.
void belfem::send (const string &aMessage, const proc_t aTarget=0)
 Same contract as send( T ).
void belfem::receive (string &aMessage, const proc_t aSource=0)
 Same contract as receive( T& ).