SPMD.H File Reference

#include "REAL.H"
#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 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 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< 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
long long CH_MAX_MPI_MESSAGE_SIZE
long long CH_MaxMPISendSize
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 CHprocID(), and MergeSolver< T >::solve().

int CHprocID (  )  [inline]

References procID().

unsigned int numProc (  ) 

number of parallel processes

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

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); \

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 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< 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  ) 


Variable Documentation

int num_procs

long long CH_MaxMPISendSize

long long CH_MaxMPIRecvSize


Generated on Tue Apr 14 14:22:35 2009 for Chombo + EB by  doxygen 1.5.5