Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

SPMD.H File Reference

#include "REAL.H"
#include "Vector.H"
#include "Box.H"
#include "MayDay.H"
#include "RealVect.H"
#include <mpi.h>
#include "SPMDI.H"

Include dependency graph for SPMD.H:

Include dependency graph

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

Included by dependency graph

Go to the source code of this file.

Compounds

class  SerialTask
struct  Chombo_MPI

Functions

int procID ()
 local process ID

unsigned int numProc ()
 number of parallel processes

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 gather (Vector< T > &a_outVec, const T &a_input, int a_dest)
 gather from multiple processes

template<class T> void broadcast (T &a_inAndOut, int a_src)
 broadcast to every process

template<> int linearSize (const int &a_input)
template<> void linearIn (int &a_outputT, const void *const inBuf)
template<> void linearOut (void *const a_outBuf, const int &a_inputT)
template<> int linearSize (const Real &a_input)
template<> void linearIn (Real &a_outputT, const void *const a_inBuf)
template<> void linearOut (void *const a_outBuf, const Real &a_inputT)
template<> int linearSize (const Box &a_input)
template<> void linearIn (Box &a_outputT, const void *const a_inBuf)
template<> void linearOut (void *const a_outBuf, const Box &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< Real > &a_input)
template<> void linearIn (Vector< Real > &a_outputT, const void *const inBuf)
template<> void linearOut (void *const a_outBuf, const Vector< Real > &a_inputT)
template<> int linearSize (const Vector< Box > &a_input)
template<> void linearIn (Vector< Box > &a_outputT, const void *const inBuf)
template<> void linearOut (void *const a_outBuf, const Vector< Box > &a_inputT)
template<> int linearSize (const Vector< Vector< Box > > &a_input)
template<> void linearIn (Vector< Vector< Box > > &a_outputT, const void *const inBuf)
template<> void linearOut (void *const a_outBuf, const Vector< Vector< Box > > &a_inputT)
template<> int linearSize (const RealVect &vindex)
template<> void linearIn (RealVect &a_outputT, const void *const inBuf)
template<> void linearOut (void *const a_outBuf, const RealVect &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 uniqueProc (const SerialTask::task &a_task)
void setChomboMPIErrorHandler ()


Function Documentation

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.

unsigned int numProc  ) 
 

number of parallel processes

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

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 gather Vector< T > &  a_outVec,
const T &  a_input,
int  a_dest
[inline]
 

gather from multiple processes

Gathers a_input of every process onto Vector<T> a_outVec on process number a_dest. It is an error if a_dest < 0 or a_dest >= numProc(). a_outVec is numProc() long with the value of a_input on every process in its elements.\

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

template<>
void linearIn int &  a_outputT,
const void *const  inBuf
 

template<>
void linearOut void *const  a_outBuf,
const int &  a_inputT
 

template<>
int linearSize const Real a_input  ) 
 

template<>
void linearIn Real a_outputT,
const void *const  a_inBuf
 

template<>
void linearOut void *const  a_outBuf,
const Real a_inputT
 

template<>
int linearSize const Box a_input  ) 
 

template<>
void linearIn Box a_outputT,
const void *const  a_inBuf
 

template<>
void linearOut void *const  a_outBuf,
const Box 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< Real > &  a_input  ) 
 

template<>
void linearIn Vector< Real > &  a_outputT,
const void *const  inBuf
 

template<>
void linearOut void *const  a_outBuf,
const Vector< Real > &  a_inputT
 

template<>
int linearSize const Vector< Box > &  a_input  ) 
 

template<>
void linearIn Vector< Box > &  a_outputT,
const void *const  inBuf
 

template<>
void linearOut void *const  a_outBuf,
const Vector< Box > &  a_inputT
 

template<>
int linearSize const Vector< Vector< Box > > &  a_input  ) 
 

template<>
void linearIn Vector< Vector< Box > > &  a_outputT,
const void *const  inBuf
 

template<>
void linearOut void *const  a_outBuf,
const Vector< Vector< Box > > &  a_inputT
 

template<>
int linearSize const RealVect vindex  ) 
 

template<>
void linearIn RealVect a_outputT,
const void *const  inBuf
 

template<>
void linearOut void *const  a_outBuf,
const RealVect 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 uniqueProc const SerialTask::task a_task  ) 
 

void setChomboMPIErrorHandler  ) 
 


Generated on Fri Jul 2 17:55:27 2004 for Chombo by doxygen 1.3.2