| 
    Chombo + EB
    3.2
    
   | 
 
#include "REAL.H"#include <string>#include "Vector.H"#include "MayDay.H"#include "Misc.H"#include "BaseNamespaceHeader.H"#include "BaseNamespaceFooter.H"#include "SPMDI.H"

Go to the source code of this file.
Classes | |
| class | SerialTask | 
Macros | |
| #define | _SPMD_H_ | 
Functions | |
| int | reportMPIStats () | 
| int | procID () | 
| local process ID  More... | |
| int | CHprocID () | 
| unsigned int | numProc () | 
| number of parallel processes  More... | |
| void | barrier (void) | 
| all ranks wait here to sync-up  More... | |
| 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  More... | |
| 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 | 
| #define _SPMD_H_ | 
| 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(), linearOut(), MergeSolver< T >::solve(), write(), and WriteMultiData< T >::WriteMultiData().
      
  | 
  inline | 
References barrier(), broadcast(), gather(), linearIn(), linearListIn(), linearListOut(), linearListSize(), linearOut(), linearSize(), numProc(), and procID().
| unsigned int numProc | ( | ) | 
number of parallel processes
Returns the number of parallel processes running. Always returns at least 1.
Referenced by CHprocID(), gatherBoxesAndOffsets(), getOffsets(), linearOut(), and BoxLayoutData< BaseFab< int > >::unpackReceivesToMe_append().
      
  | 
  inline | 
all ranks wait here to sync-up
All MPI ranks wait here to sync-up. Calls MPI_Barrier(comm)
Referenced by CHprocID(), and linearOut().
| int linearSize | ( | const T & | inputT | ) | 
Referenced by CHprocID(), MiniIVFAB< Real >::linearIn(), BaseIVFAB< Real >::linearIn(), BaseIFFAB< FaceStencil >::linearIn(), MiniIFFAB< Real >::linearIn(), IrregTag::Entry::linearIn(), BaseFab< Real >::linearIn(), MiniIVFAB< Real >::linearOut(), BaseIVFAB< Real >::linearOut(), BaseIFFAB< FaceStencil >::linearOut(), IrregTag::Entry::linearOut(), MiniIFFAB< Real >::linearOut(), BaseFab< Real >::linearOut(), BaseFab< Real >::linearSize(), MiniIVFAB< Real >::size(), BaseIVFAB< Real >::size(), BaseIFFAB< FaceStencil >::size(), MiniIFFAB< Real >::size(), VarCoefStencil::weight(), VoFStencil::weight(), and StdSetIVS::~StdSetIVS().
| void linearIn | ( | T & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const T & | inputT | ||
| ) | 
      
  | 
  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 CHprocID(), gatherBoxesAndOffsets(), getOffsets(), and linearOut().
| int linearSize | ( | const long long & | a_input | ) | 
| void linearIn | ( | long long & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const long long & | a_inputT | ||
| ) | 
| int linearSize | ( | const int & | a_input | ) | 
| int linearSize | ( | const unsigned long long & | a_input | ) | 
| void linearIn | ( | int & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearIn | ( | unsigned long long & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const int & | a_inputT | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const unsigned long long & | a_inputT | ||
| ) | 
| int linearSize | ( | const long & | a_input | ) | 
| void linearIn | ( | long & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const long & | a_inputT | ||
| ) | 
| int linearSize | ( | const unsigned long & | a_input | ) | 
| void linearIn | ( | unsigned long & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const unsigned long & | a_inputT | ||
| ) | 
| int linearSize | ( | const float & | a_input | ) | 
| int linearSize | ( | const double & | a_input | ) | 
| void linearIn | ( | float & | a_outputT, | 
| const void *const | a_inBuf | ||
| ) | 
| void linearIn | ( | double & | a_outputT, | 
| const void *const | a_inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const float & | a_inputT | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const double & | a_inputT | ||
| ) | 
| int linearSize | ( | const std::string & | a_input | ) | 
| void linearIn | ( | std::string & | a_outputT, | 
| const void *const | a_inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const std::string & | a_inputT | ||
| ) | 
| int linearSize | ( | const Vector< int > & | a_input | ) | 
| void linearIn | ( | Vector< int > & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const Vector< int > & | a_inputT | ||
| ) | 
| int linearSize | ( | const Vector< unsigned long long > & | a_input | ) | 
| void linearIn | ( | Vector< unsigned long long > & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const Vector< unsigned long long > & | a_inputT | ||
| ) | 
| int linearSize | ( | const Vector< long > & | a_input | ) | 
| void linearIn | ( | Vector< long > & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const Vector< long > & | a_inputT | ||
| ) | 
| int linearSize | ( | const Vector< float > & | a_input | ) | 
| void linearIn | ( | Vector< float > & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const Vector< float > & | a_inputT | ||
| ) | 
| int linearSize | ( | const Vector< double > & | a_input | ) | 
| void linearIn | ( | Vector< double > & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const Vector< double > & | a_inputT | ||
| ) | 
| int linearSize | ( | const Vector< std::string > & | a_input | ) | 
| void linearIn | ( | Vector< std::string > & | a_outputT, | 
| const void *const | inBuf | ||
| ) | 
| void linearOut | ( | void *const | a_outBuf, | 
| const Vector< std::string > & | a_inputT | ||
| ) | 
| int linearListSize | ( | const Vector< T > & | a_input | ) | 
References linearSize(), and Vector< T >::size().
Referenced by CHprocID(), BaseIVFAB< Real >::linearIn(), BaseIFFAB< FaceStencil >::linearIn(), MiniIFFAB< Real >::linearIn(), BaseIVFAB< Real >::linearOut(), BaseIFFAB< FaceStencil >::linearOut(), MiniIFFAB< Real >::linearOut(), IFidTable::linearSize(), IrregTag::Entry::linearSize(), BaseIVFAB< Real >::size(), BaseIFFAB< FaceStencil >::size(), and MiniIFFAB< Real >::size().
| void linearListIn | ( | Vector< T > & | a_outputT, | 
| const void *const | a_inBuf | ||
| ) | 
References linearIn(), and Vector< T >::resize().
Referenced by CHprocID(), IFidTable::linearIn(), BaseIVFAB< Real >::linearIn(), BaseIFFAB< FaceStencil >::linearIn(), and MiniIFFAB< Real >::linearIn().
| void linearListOut | ( | void *const | a_outBuf, | 
| const Vector< T > & | a_inputT | ||
| ) | 
References linearOut(), linearSize(), and Vector< T >::size().
Referenced by CHprocID(), IFidTable::linearOut(), BaseIVFAB< Real >::linearOut(), BaseIFFAB< FaceStencil >::linearOut(), and MiniIFFAB< Real >::linearOut().
| int GetPID | ( | int | rank | ) | 
| int GetRank | ( | int | pid | ) | 
| int uniqueProc | ( | const SerialTask::task & | a_task | ) | 
Referenced by getOffsets().
| int num_procs | 
| unsigned long long CH_MAX_MPI_MESSAGE_SIZE | 
Referenced by BoxLayoutData< BaseFab< int > >::unpackReceivesToMe_append().
| unsigned long long CH_MaxMPISendSize | 
Referenced by linearOut(), and BoxLayoutData< BaseFab< int > >::unpackReceivesToMe_append().
| unsigned long long CH_MaxMPIRecvSize | 
Referenced by linearOut(), and BoxLayoutData< BaseFab< int > >::unpackReceivesToMe_append().
 1.8.13