SPMD.H File Reference

#include "REAL.H"
#include <string>
#include "Vector.H"
#include "MayDay.H"
#include "Misc.H"
#include "BaseNamespaceHeader.H"
#include "BaseNamespaceFooter.H"
#include "SPMDI.H"

Include dependency graph for SPMD.H:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  SerialTask

Functions

int reportMPIStats ()
int procID ()
 local process ID
int CHprocID ()
unsigned int numProc ()
 number of parallel processes
void barrier (void)
 all ranks wait here to sync-up
template<class T>
int linearSize (const T &inputT)
template<class T>
void linearIn (T &a_outputT, const void *const inBuf)
template<class T>
void linearOut (void *const a_outBuf, const T &inputT)
template<class T>
void broadcast (T &a_inAndOut, int a_src)
 broadcast to every process
template<>
int linearSize (const long long &a_input)
template<>
void linearIn (long long &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const long long &a_inputT)
template<>
int linearSize (const int &a_input)
template<>
int linearSize (const unsigned long long &a_input)
template<>
void linearIn (int &a_outputT, const void *const inBuf)
template<>
void linearIn (unsigned long long &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const int &a_inputT)
template<>
void linearOut (void *const a_outBuf, const unsigned long long &a_inputT)
template<>
int linearSize (const long &a_input)
template<>
void linearIn (long &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const long &a_inputT)
template<>
int linearSize (const unsigned long &a_input)
template<>
void linearIn (unsigned long &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const unsigned long &a_inputT)
template<>
int linearSize (const float &a_input)
template<>
int linearSize (const double &a_input)
template<>
void linearIn (float &a_outputT, const void *const a_inBuf)
template<>
void linearIn (double &a_outputT, const void *const a_inBuf)
template<>
void linearOut (void *const a_outBuf, const float &a_inputT)
template<>
void linearOut (void *const a_outBuf, const double &a_inputT)
template<>
int linearSize (const std::string &a_input)
template<>
void linearIn (std::string &a_outputT, const void *const a_inBuf)
template<>
void linearOut (void *const a_outBuf, const std::string &a_inputT)
template<>
int linearSize (const Vector< int > &a_input)
template<>
void linearIn (Vector< int > &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const Vector< int > &a_inputT)
template<>
int linearSize (const Vector< unsigned long long > &a_input)
template<>
void linearIn (Vector< unsigned long long > &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const Vector< unsigned long long > &a_inputT)
template<>
int linearSize (const Vector< long > &a_input)
template<>
void linearIn (Vector< long > &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const Vector< long > &a_inputT)
template<>
int linearSize (const Vector< float > &a_input)
template<>
void linearIn (Vector< float > &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const Vector< float > &a_inputT)
template<>
int linearSize (const Vector< double > &a_input)
template<>
void linearIn (Vector< double > &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const Vector< double > &a_inputT)
template<>
int linearSize (const Vector< std::string > &a_input)
template<>
void linearIn (Vector< std::string > &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const Vector< std::string > &a_inputT)
template<>
int linearSize (const Vector< Vector< int > > &a_input)
template<>
void linearIn (Vector< Vector< int > > &a_outputT, const void *const inBuf)
template<>
void linearOut (void *const a_outBuf, const Vector< Vector< int > > &a_inputT)
template<class T>
int linearListSize (const Vector< T > &a_input)
template<class T>
void linearListIn (Vector< T > &a_outputT, const void *const a_inBuf)
template<class T>
void linearListOut (void *const a_outBuf, const Vector< T > &a_inputT)
int GetPID (int rank)
int GetRank (int pid)
int uniqueProc (const SerialTask::task &a_task)

Variables

int num_procs
unsigned long long CH_MAX_MPI_MESSAGE_SIZE
unsigned long long CH_MaxMPISendSize
unsigned long long CH_MaxMPIRecvSize


Function Documentation

int reportMPIStats (  ) 

int procID (  ) 

local process ID

Returns the ID of the locally running process in the range 0 <= procID() < numProc(). This has no relation to the operating system pid. There is always a procID() == 0.

Referenced by blockWriteBufferToFile(), CHprocID(), gatherBoxesAndOffsets(), MergeSolver< T >::solve(), write(), and WriteMultiData< T >::WriteMultiData().

int CHprocID (  )  [inline]

References procID().

unsigned int numProc (  ) 

number of parallel processes

Returns the number of parallel processes running. Always returns at least 1.

Referenced by gatherBoxesAndOffsets(), and getOffsets().

void barrier ( void   )  [inline]

all ranks wait here to sync-up

All MPI ranks wait here to sync-up. Calls MPI_Barrier(comm)

template<class T>
int linearSize ( const T &  inputT  )  [inline]

template<class T>
void linearIn ( T &  a_outputT,
const void *const   inBuf 
) [inline]

template<class T>
void linearOut ( void *const   a_outBuf,
const T &  inputT 
) [inline]

template<class T>
void broadcast ( T &  a_inAndOut,
int  a_src 
) [inline]

broadcast to every process

Broadcasts a_inAndOut to every process from process number a_src. It is an error if a_src < 0 or a_src >= numProc(). \

T must have have the following functions: \

int linearSize<T>(const T& inputT); \ void linearIn<T>(T& a_outputT, const void* const inBuf); \ void linearOut<T>(void* a_outBuf, const T& inputT); \

Referenced by gatherBoxesAndOffsets(), and getOffsets().

template<>
int linearSize ( const long long &  a_input  )  [inline]

template<>
void linearIn ( long long &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const long long &  a_inputT 
) [inline]

template<>
int linearSize ( const int &  a_input  )  [inline]

template<>
int linearSize ( const unsigned long long &  a_input  )  [inline]

template<>
void linearIn ( int &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearIn ( unsigned long long &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const int &  a_inputT 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const unsigned long long &  a_inputT 
) [inline]

template<>
int linearSize ( const long &  a_input  )  [inline]

template<>
void linearIn ( long &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const long &  a_inputT 
) [inline]

template<>
int linearSize ( const unsigned long &  a_input  )  [inline]

template<>
void linearIn ( unsigned long &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const unsigned long &  a_inputT 
) [inline]

template<>
int linearSize ( const float &  a_input  )  [inline]

template<>
int linearSize ( const double &  a_input  )  [inline]

template<>
void linearIn ( float &  a_outputT,
const void *const   a_inBuf 
) [inline]

template<>
void linearIn ( double &  a_outputT,
const void *const   a_inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const float &  a_inputT 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const double &  a_inputT 
) [inline]

template<>
int linearSize ( const std::string &  a_input  )  [inline]

template<>
void linearIn ( std::string &  a_outputT,
const void *const   a_inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const std::string &  a_inputT 
) [inline]

template<>
int linearSize ( const Vector< int > &  a_input  )  [inline]

template<>
void linearIn ( Vector< int > &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const Vector< int > &  a_inputT 
) [inline]

template<>
int linearSize ( const Vector< unsigned long long > &  a_input  )  [inline]

template<>
void linearIn ( Vector< unsigned long long > &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const Vector< unsigned long long > &  a_inputT 
) [inline]

template<>
int linearSize ( const Vector< long > &  a_input  )  [inline]

template<>
void linearIn ( Vector< long > &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const Vector< long > &  a_inputT 
) [inline]

template<>
int linearSize ( const Vector< float > &  a_input  )  [inline]

template<>
void linearIn ( Vector< float > &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const Vector< float > &  a_inputT 
) [inline]

template<>
int linearSize ( const Vector< double > &  a_input  )  [inline]

template<>
void linearIn ( Vector< double > &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const Vector< double > &  a_inputT 
) [inline]

template<>
int linearSize ( const Vector< std::string > &  a_input  )  [inline]

template<>
void linearIn ( Vector< std::string > &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const Vector< std::string > &  a_inputT 
) [inline]

template<>
int linearSize ( const Vector< Vector< int > > &  a_input  )  [inline]

template<>
void linearIn ( Vector< Vector< int > > &  a_outputT,
const void *const   inBuf 
) [inline]

template<>
void linearOut ( void *const   a_outBuf,
const Vector< Vector< int > > &  a_inputT 
) [inline]

template<class T>
int linearListSize ( const Vector< T > &  a_input  )  [inline]

template<class T>
void linearListIn ( Vector< T > &  a_outputT,
const void *const   a_inBuf 
) [inline]

template<class T>
void linearListOut ( void *const   a_outBuf,
const Vector< T > &  a_inputT 
) [inline]

int GetPID ( int  rank  ) 

int GetRank ( int  pid  ) 

int uniqueProc ( const SerialTask::task a_task  ) 

Referenced by getOffsets().


Variable Documentation

int num_procs

unsigned long long CH_MAX_MPI_MESSAGE_SIZE

unsigned long long CH_MaxMPISendSize

unsigned long long CH_MaxMPIRecvSize


Generated on Fri Apr 5 04:24:18 2019 for Chombo + EB by  doxygen 1.5.5