|
OOFEM 3.0
|
#include <combuff.h>
Public Member Functions | |
| StaticCommunicationBuffer (MPI_Comm comm, int size, bool dynamic=0) | |
| StaticCommunicationBuffer (MPI_Comm comm, bool dynamic=0) | |
| Constructor. Creates empty buffer, using given communicator for packing. | |
| virtual | ~StaticCommunicationBuffer () |
| Destructor. | |
| int | resize (std::size_t newSize) override |
| void | init () override |
| void | initForPacking () override |
| Initialize for packing. | |
| void | initForUnpacking () override |
| Initialize for Unpacking (data already received). | |
| int | write (const int *src, std::size_t n) override |
| Writes count integer values from array pointed by data. | |
| int | write (const long *src, std::size_t n) override |
| Writes count long values from array pointed by data. | |
| int | write (const unsigned long *src, std::size_t n) override |
| Writes count unsigned long values from array pointed by data. | |
| int | write (const double *src, std::size_t n) override |
| Writes count double values from array pointed by data. | |
| int | write (const char *src, std::size_t n) override |
| Writes count char values from array pointed by data. | |
| int | read (int *dest, std::size_t n) override |
| Reads count integer values into array pointed by data. | |
| int | read (long *dest, std::size_t n) override |
| Reads count long values into array pointed by data. | |
| int | read (unsigned long *dest, std::size_t n) override |
| Reads count unsigned long values into array pointed by data. | |
| int | read (double *dest, std::size_t n) override |
| Reads count double values into array pointed by data. | |
| int | read (char *dest, std::size_t n) override |
| Reads count char values into array pointed by data. | |
| int | iSend (int dest, int tag) override |
| int | iRecv (int source, int tag, std::size_t count=0) override |
| int | testCompletion () override |
| int | testCompletion (int &source, int &tag) |
| int | waitCompletion () override |
| int | bcast (int root) override |
| int | write (bool data) override |
| Writes a bool value. | |
| int | write (int data) |
| int | write (unsigned long data) |
| int | write (long data) |
| int | write (double data) |
| int | write (char data) |
| int | write (const std ::string &data) |
| Reads a string (stored as an int for the length followed by char*). | |
| int | write (const char *data) |
| Writes a string (wrapper needed, otherwise write(bool) is called ). | |
| int | read (bool &data) override |
| Reads a bool value from data. | |
| int | read (int &data) |
| int | read (unsigned long &data) |
| int | read (long &data) |
| int | read (double &data) |
| int | read (char &data) |
| int | read (std ::string &data) |
| Reads a string (stored as an int for the length followed by char*). | |
| Public Member Functions inherited from oofem::CommunicationBuffer | |
| CommunicationBuffer (MPI_Comm comm, std::size_t size, bool dynamic=0) | |
| CommunicationBuffer (MPI_Comm comm, bool dynamic=0) | |
| Constructor. Creates empty buffer, using given communicator for packing. | |
| virtual | ~CommunicationBuffer () |
| Destructor. | |
| int | givePackSizeOfInt (std::size_t count) override |
| int | givePackSizeOfDouble (std::size_t count) override |
| int | givePackSizeOfChar (std::size_t count) override |
| int | givePackSizeOfBool (std::size_t count) override |
| int | givePackSizeOfLong (std::size_t count) override |
| int | givePackSizeOfSizet (std::size_t count) override |
| int | read (int &data) |
| int | read (unsigned long &data) |
| int | read (long &data) |
| int | read (double &data) |
| int | read (char &data) |
| int | read (std ::string &data) |
| Reads a string (stored as an int for the length followed by char*). | |
| int | write (int data) |
| int | write (unsigned long data) |
| int | write (long data) |
| int | write (double data) |
| int | write (char data) |
| int | write (const std ::string &data) |
| Reads a string (stored as an int for the length followed by char*). | |
| int | write (const char *data) |
| Writes a string (wrapper needed, otherwise write(bool) is called ). | |
| Public Member Functions inherited from oofem::DataStream | |
| virtual | ~DataStream () |
| Destructor. | |
| int | read (int &data) |
| int | read (unsigned long &data) |
| int | read (long &data) |
| int | read (double &data) |
| int | read (char &data) |
| int | read (std ::string &data) |
| Reads a string (stored as an int for the length followed by char*). | |
| int | write (int data) |
| int | write (unsigned long data) |
| int | write (long data) |
| int | write (double data) |
| int | write (char data) |
| int | write (const std ::string &data) |
| Reads a string (stored as an int for the length followed by char*). | |
| int | write (const char *data) |
| Writes a string (wrapper needed, otherwise write(bool) is called ). | |
| Public Member Functions inherited from oofem::MPIBuffer | |
| MPIBuffer (std::size_t size, bool dynamic=0) | |
| Constructor. Creates buffer of given size, using given communicator for packing. | |
| MPIBuffer (bool dynamic=0) | |
| Constructor. Creates empty buffer, using given communicator for packing. | |
| virtual | ~MPIBuffer () |
| Destructor. | |
| int | resize (std::size_t newSize) |
| std::size_t | giveSize () |
| std::size_t | giveAvailableSpace () |
| MPI_Request | giveRequest () |
| int | packArray (MPI_Comm communicator, const void *src, std::size_t n, MPI_Datatype type) |
| int | unpackArray (MPI_Comm communicator, void *dest, std::size_t n, MPI_Datatype type) |
| int | givePackSize (MPI_Comm communicator, MPI_Datatype type, std::size_t size) |
| virtual int | iSend (MPI_Comm communicator, int dest, int tag) |
| virtual int | iRecv (MPI_Comm communicator, int source, int tag, std::size_t count=0) |
| int | testCompletion () |
| int | testCompletion (int &source, int &tag) |
| int | bcast (MPI_Comm communicator, int root) |
| void | dump () |
Additional Inherited Members | |
| Protected Attributes inherited from oofem::CommunicationBuffer | |
| MPI_Comm | communicator |
| Protected Attributes inherited from oofem::MPIBuffer | |
| std::size_t | size |
| Size and current position in buffer in bytes (sizeof(char)). | |
| std::size_t | curr_pos |
| bool | isDynamic |
| Dynamic flag (if true, buffer can grow, but reallocation is needed). | |
| ComBuff_BYTE_TYPE * | buff |
| Buffer. Dynamically allocated. | |
| MPI_Request | request |
|
inline |
Definition at line 321 of file combuff.h.
References oofem::CommunicationBuffer::CommunicationBuffer(), oofem::MPIBuffer::MPIBuffer(), and oofem::MPIBuffer::size.
|
inline |
Constructor. Creates empty buffer, using given communicator for packing.
Definition at line 324 of file combuff.h.
References oofem::CommunicationBuffer::CommunicationBuffer(), and oofem::MPIBuffer::MPIBuffer().
|
inlinevirtual |
|
inlineoverridevirtual |
Initializes broadcast over collaborating processes. The whole buffer size is broadcasted. All buffers participating in broadcast should have the same size.
| root | Rank of broadcast root. |
Implements oofem::CommunicationBuffer.
Definition at line 373 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
Referenced by oofem::NonlocalMaterialWTP::migrate(), and oofem::ElementCommunicator::setUpCommunicationMaps().
|
inlineoverridevirtual |
Initializes buffer to empty state. All packed data are lost.
Implements oofem::CommunicationBuffer.
Definition at line 330 of file combuff.h.
Referenced by initForPacking(), initForUnpacking(), oofem::NonlocalMaterialWTP::migrate(), oofem::ElementCommunicator::setUpCommunicationMaps(), and oofem::FETICommunicator::setUpCommunicationMaps().
|
inlineoverridevirtual |
Initialize for packing.
Implements oofem::CommunicationBuffer.
Definition at line 331 of file combuff.h.
References init().
|
inlineoverridevirtual |
Initialize for Unpacking (data already received).
Implements oofem::CommunicationBuffer.
Definition at line 332 of file combuff.h.
References init().
|
inlineoverridevirtual |
Starts standard mode, nonblocking receive. The buffer must be large enough to receive all data.
| source | Rank of source. |
| tag | Message tag. |
| count | Number of elements to receive (bytes). Causes receive buffer to resize to count elements. If zero (default value) buffer is not resized. |
Implements oofem::CommunicationBuffer.
Definition at line 365 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
Referenced by oofem::FETICommunicator::setUpCommunicationMaps().
|
inlineoverridevirtual |
Starts standard mode, nonblocking send.
| dest | Rank of destination. |
| tag | Message tag. |
Implements oofem::CommunicationBuffer.
Definition at line 363 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
|
overridevirtual |
Reads a bool value from data.
Reimplemented from oofem::CommunicationBuffer.
|
inline |
Definition at line 257 of file datastream.h.
|
inlineoverridevirtual |
Reads count char values into array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 355 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
|
inline |
Definition at line 257 of file datastream.h.
|
inlineoverridevirtual |
Reads count double values into array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 353 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
|
inline |
Definition at line 257 of file datastream.h.
|
inlineoverridevirtual |
Reads count integer values into array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 347 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
Referenced by oofem::NonlocalMaterialWTP::migrate(), and oofem::FETICommunicator::setUpCommunicationMaps().
|
inline |
Definition at line 257 of file datastream.h.
|
inlineoverridevirtual |
Reads count long values into array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 349 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
| int oofem::DataStream::read | ( | std ::string & | data | ) |
Reads a string (stored as an int for the length followed by char*).
Definition at line 257 of file datastream.C.
|
inline |
Definition at line 257 of file datastream.h.
|
inlineoverridevirtual |
Reads count unsigned long values into array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 351 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
|
inlineoverridevirtual |
Resizes buffer to given size. If buffer size is to be enlarged, then previously packed data are kept in new buffer. Otherwise buffer is cleared using init service. Current implementation only performs buffer growing, request for size decrease is ignored to avoid reallocation if further request for growing is encountered.
| newSize | New buffer size in bytes. |
Implements oofem::CommunicationBuffer.
Definition at line 328 of file combuff.h.
Referenced by oofem::NonlocalMaterialWTP::migrate(), oofem::ElementCommunicator::setUpCommunicationMaps(), and oofem::FETICommunicator::setUpCommunicationMaps().
|
inlineoverridevirtual |
Tests if the operation identified by this->request is complete. In such case, true is returned and if communication was initiated by nonblocking send/receive, then request handle is set to MPI_REQUEST_NULL. Otherwise call returns flag=false.
Implements oofem::CommunicationBuffer.
Definition at line 367 of file combuff.h.
Referenced by oofem::FETICommunicator::setUpCommunicationMaps().
|
inline |
|
inlineoverridevirtual |
Waits until a completion of a nonblocking communication. The completion of a send operation indicates that the sender is now free to update the locations in the send buffer, the completion of a receive operation indicates that the receive buffer contains the received message, the receiver is now free to access it, and that the status object is set. If the communication object associated with this request was created (nonblocking send or receive call), then the object is deallocated by the call to MPI_WAIT and the request handle is set to MPI_REQUEST_NULL.
Implements oofem::CommunicationBuffer.
|
overridevirtual |
Writes a bool value.
Reimplemented from oofem::CommunicationBuffer.
|
inline |
Definition at line 260 of file datastream.h.
|
inline |
Writes a string (wrapper needed, otherwise write(bool) is called ).
Definition at line 260 of file datastream.h.
|
inlineoverridevirtual |
Writes count char values from array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 343 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
|
inlineoverridevirtual |
Writes count double values from array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 341 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
|
inlineoverridevirtual |
Writes count integer values from array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 335 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
Referenced by oofem::NonlocalMaterialWTP::migrate().
|
inlineoverridevirtual |
Writes count long values from array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 337 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
| int oofem::DataStream::write | ( | const std ::string & | data | ) |
Reads a string (stored as an int for the length followed by char*).
Definition at line 260 of file datastream.C.
|
inlineoverridevirtual |
Writes count unsigned long values from array pointed by data.
Reimplemented from oofem::CommunicationBuffer.
Definition at line 339 of file combuff.h.
References oofem::CommunicationBuffer::communicator.
|
inline |
Definition at line 260 of file datastream.h.
|
inline |
Definition at line 260 of file datastream.h.
|
inline |
Definition at line 260 of file datastream.h.
|
inline |
Definition at line 260 of file datastream.h.