|
ESyS-Particle
2.3.4
|
Buffer for MPI scatter/gather, root component. More...
#include <mpisgbuf.h>


Public Member Functions | |
| CMPISGBufferRoot (MPI_Comm, int) | |
| virtual | ~CMPISGBufferRoot () |
| virtual void | clear () |
| virtual void | gather () |
| virtual void | scatter () |
| virtual void | append (int, int) |
| virtual void | append (double, int) |
| virtual void | append (const char *, int) |
| virtual int | pop_int (int) |
| virtual double | pop_double (int) |
| virtual void | pop_doubles (int, double *, int) |
Public Member Functions inherited from AMPISGBufferRoot | |
| AMPISGBufferRoot (MPI_Comm) | |
| virtual | ~AMPISGBufferRoot () |
| virtual void | append (const Vec3 &, int) |
| virtual Vec3 | pop_vector (int) |
| const MPI_Status & | status () |
Private Attributes | |
| char * | m_buffer |
| char * | m_dummy_buffer |
| dummy buffer sent by root to itself More... | |
| int | m_buffersize |
| the size of the buffer per slice More... | |
| int * | m_position |
| the current end of the content in each slice More... | |
Additional Inherited Members | |
Protected Attributes inherited from AMPISGBufferRoot | |
| MPI_Comm | m_comm |
| the MPI communicator used for the scatter/gather operations More... | |
| int | m_rank |
| the rank in this communicator More... | |
| int | m_size |
| size of the communicator More... | |
| int | m_int_increment |
| int | m_dbl_increment |
| the "packing size" of int/double More... | |
| MPI_Status | m_status |
Buffer for MPI scatter/gather, root component.
| CMPISGBufferRoot::CMPISGBufferRoot | ( | MPI_Comm | comm, |
| int | buffersize | ||
| ) |
Constructor for CMPISGBufferRoot
| comm | the MPI communicator |
| buffersize | buffer size per slice |
References m_buffer, m_buffersize, m_dummy_buffer, m_position, and AMPISGBufferRoot::m_size.
|
virtual |
References m_buffer, m_dummy_buffer, and m_position.
|
virtual |
Append an C string (char*) to a given slice of the buffer.
| str | the string |
| nslice | the nr. of the slice |
Implements AMPISGBufferRoot.
References esys::lsm::bpu::len(), m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, m_position, and AMPISGBufferRoot::m_size.

|
virtual |
Append an double to a given slice of the buffer.
| d | the double |
| nslice | the nr. of the slice |
Implements AMPISGBufferRoot.
References m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, m_position, and AMPISGBufferRoot::m_size.
|
virtual |
Append an integer to a given slice of the buffer.
| i | the integer |
| nslice | the nr. of the slice |
Implements AMPISGBufferRoot.
References m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, m_position, and AMPISGBufferRoot::m_size.
|
virtual |
Implements AMPISGBufferRoot.
References m_buffersize, m_position, and AMPISGBufferRoot::m_size.
|
virtual |
Get data from all other members of the communicator, using MPI_Gather
Implements AMPISGBufferRoot.
References m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, m_dummy_buffer, and AMPISGBufferRoot::m_rank.
Referenced by CLatticeMaster::checkNeighbors().

|
virtual |
Pops an double from a given slice of the the buffer.
| nslice | the nr. of the slice |
Implements AMPISGBufferRoot.
References m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, and m_position.
|
virtual |
Implements AMPISGBufferRoot.
References m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, and m_position.
|
virtual |
Pops an integer from a given slice of the the buffer, i.e. it pops the last sizeof(MPI_INT) bytes of the buffer, interpreting them as an int.
| nslice | the nr. of the slice |
Implements AMPISGBufferRoot.
References m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, m_position, and AMPISGBufferRoot::m_size.
Referenced by CLatticeMaster::checkNeighbors().

|
virtual |
Send data to all other members of the communicator, using MPI_Scatter
Implements AMPISGBufferRoot.
References m_buffer, m_buffersize, AMPISGBufferRoot::m_comm, m_dummy_buffer, and AMPISGBufferRoot::m_rank.
|
private |
Referenced by append(), CMPISGBufferRoot(), gather(), pop_double(), pop_doubles(), pop_int(), scatter(), and ~CMPISGBufferRoot().
|
private |
the size of the buffer per slice
Referenced by append(), clear(), CMPISGBufferRoot(), gather(), pop_double(), pop_doubles(), pop_int(), and scatter().
|
private |
dummy buffer sent by root to itself
Referenced by CMPISGBufferRoot(), gather(), scatter(), and ~CMPISGBufferRoot().
|
private |
the current end of the content in each slice
Referenced by append(), clear(), CMPISGBufferRoot(), pop_double(), pop_doubles(), pop_int(), and ~CMPISGBufferRoot().