|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
Process-wide singleton that selects how ArrayTransformer packs and waits for MPI messages. More...
#include <MPI.hpp>
Public Types | |
| enum | ArrayCommType { UnknownArrayCommType = 0 , HIndexed = 1 , InSituPack = 2 } |
| Which derived-type strategy ArrayTransformer should use. More... | |
Public Member Functions | |
| ArrayCommType | GetArrayStrategy () |
| Current array-pack strategy. | |
| void | SetArrayStrategy (ArrayCommType t) |
| Override the array-pack strategy (affects subsequently-created transformers). | |
| bool | GetUseStrongSyncWait () const |
| Whether barriers are inserted around Waitall for profiling. | |
| bool | GetUseAsyncOneByOne () const |
| Whether transformers should use one-by-one Isend/Irecv. | |
| double | GetUseLazyWait () const |
Polling interval (ns) for MPI::WaitallLazy. 0 means use MPI_Waitall. | |
Static Public Member Functions | |
| static CommStrategy & | Instance () |
| Access the process-wide singleton. | |
Static Public Attributes | |
| static const int | Ntype = 10 |
Process-wide singleton that selects how ArrayTransformer packs and waits for MPI messages.
Settings affect every transformer:
MPI_Type_create_hindexed derived types) vs InSituPack (manual memcpy into contiguous send/recv buffers). The latter can be faster on networks where derived types pay large unpacking overhead.Must be constructed under MPI_COMM_WORLD. Thread-safe C++11 singleton.
Which derived-type strategy ArrayTransformer should use.
| Enumerator | |
|---|---|
| UnknownArrayCommType | Sentinel / uninitialised. |
| HIndexed | Use |
| InSituPack | Manually pack / unpack into contiguous buffers. |
| CommStrategy::ArrayCommType DNDS::MPI::CommStrategy::GetArrayStrategy | ( | ) |
| bool DNDS::MPI::CommStrategy::GetUseAsyncOneByOne | ( | ) | const |
| double DNDS::MPI::CommStrategy::GetUseLazyWait | ( | ) | const |
Polling interval (ns) for MPI::WaitallLazy. 0 means use MPI_Waitall.
| bool DNDS::MPI::CommStrategy::GetUseStrongSyncWait | ( | ) | const |
|
static |
| void DNDS::MPI::CommStrategy::SetArrayStrategy | ( | CommStrategy::ArrayCommType | t | ) |