OpenM++ runtime library (libopenm)
|
message passing main class. More...
#include <msgEmpty.h>
Public Member Functions | |
MsgEmptyExec (int &, char **&, IFinalState *i_final) | |
create new message passing interface (empty constructor) | |
~MsgEmptyExec (void) noexcept | |
cleanup message passing resources (empty destructor). | |
int | worldSize (void) const override |
return total number of processes in world communicator: always = 1. More... | |
int | rank (void) const override |
return current process rank: always = 0. More... | |
int | groupRank (void) const noexcept override |
return rank in modeling group: always = 0. More... | |
void | setCleanExit (bool) override |
set clean exit flag for normal shutdown of message passing interface. More... | |
void | createGroups (int, int) override |
create groups for parallel run of modeling task (does nothing). More... | |
void | bcastValue (int, const type_info &, void *) override |
broadcast value from root to all other processes (does nothing). More... | |
void | bcastSend (int, const type_info &, size_t, void *) override |
send broadcast value array from root to all other processes (does nothing). More... | |
void | bcastReceive (int, const type_info &, size_t, void *) override |
receive broadcasted value array from root process (does nothing). More... | |
void | bcastSendPacked (int, IRowBaseVec &, const IPackedAdapter &) override |
send broadcast vector of db rows from root to all other processes (does nothing). More... | |
void | bcastReceivePacked (int, IRowBaseVec &, const IPackedAdapter &) override |
receive broadcasted vector of db rows from root (does nothing). More... | |
void | startSend (int i_sendTo, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *i_valueArr) override |
start non-blocking send of value array to i_sendTo process. More... | |
void | startSendPacked (int i_sendTo, const IRowBaseVec &i_rowVec, const IPackedAdapter &i_adapter) override |
pack and start non-blocking send of vector of db rows to i_sendTo process. More... | |
bool | tryReceive (int i_recvFrom, IRowBaseVec &io_resultRowVec, const IPackedAdapter &i_adapter) const override |
try to non-blocking receive and unpack vector of db rows, return true if completed. More... | |
bool | tryReceive (int i_recvFrom, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *io_valueArr) const override |
try to non-blocking receive value array, return true if completed. More... | |
void | waitSendAll (void) override |
wait for non-blocking send to be completed. More... | |
Public Member Functions inherited from openm::IMsgExec | |
virtual | ~IMsgExec (void) noexcept=0 |
cleanup message passing resources. | |
bool | isRoot (void) const |
if root process then true (root process rank == 0) | |
virtual int | worldSize (void) const =0 |
return total number of processes in world communicator. More... | |
virtual int | rank (void) const =0 |
return current process rank. More... | |
virtual int | groupRank (void) const =0 |
return rank in modeling group. More... | |
virtual void | setCleanExit (bool i_isClean=false)=0 |
set clean exit flag for normal shutdown of message passing interface. More... | |
virtual void | createGroups (int i_groupSize, int i_groupCount)=0 |
create groups for parallel run of modeling task. More... | |
virtual void | bcastValue (int i_groupOne, const type_info &i_type, void *io_value)=0 |
broadcast value from root to all other processes. More... | |
void | bcastInt (int i_groupOne, void *io_value) |
broadcast integer value from root to all other processes. More... | |
virtual void | bcastSend (int i_groupOne, const type_info &i_type, size_t i_size, void *io_valueArr)=0 |
send broadcast value array from root to all other processes. More... | |
virtual void | bcastReceive (int i_groupOne, const type_info &i_type, size_t i_size, void *io_valueArr)=0 |
receive broadcasted value array from root process. More... | |
virtual void | bcastSendPacked (int i_groupOne, IRowBaseVec &io_rowVec, const IPackedAdapter &i_adapter)=0 |
send broadcast vector of db rows from root to all other processes. More... | |
virtual void | bcastReceivePacked (int i_groupOne, IRowBaseVec &io_rowVec, const IPackedAdapter &i_adapter)=0 |
receive broadcasted vector of db rows from root. More... | |
virtual void | startSend (int i_sendTo, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *i_valueArr)=0 |
start non-blocking send of value array to i_sendTo process. More... | |
virtual void | startSendPacked (int i_sendTo, const IRowBaseVec &i_rowVec, const IPackedAdapter &i_adapter)=0 |
pack and start non-blocking send of vector of db rows to i_sendTo process. More... | |
virtual bool | tryReceive (int i_recvFrom, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *io_valueArr) const =0 |
try to non-blocking receive value array, return true if completed. More... | |
virtual bool | tryReceive (int i_recvFrom, IRowBaseVec &io_resultRowVec, const IPackedAdapter &i_adapter) const =0 |
try to non-blocking receive and unpack vector of db rows, return true if completed. More... | |
virtual void | waitSendAll (void)=0 |
wait for non-blocking send to be completed More... | |
Public Member Functions inherited from openm::MsgExecBase | |
virtual | ~MsgExecBase (void) noexcept |
cleanup message passing resources. | |
int | worldSize (void) const |
return total number of processes in MPI world communicator. | |
int | rank (void) const |
return current process rank. | |
int | groupRank (void) const |
return rank in modeling group. | |
void | startSend (int i_sendTo, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *i_valueArr) |
start non-blocking send of value array to i_sendTo process. More... | |
void | startSendPacked (int i_sendTo, const IRowBaseVec &i_rowVec, const IPackedAdapter &i_adapter) |
pack and start non-blocking send of vector of db rows to i_sendTo process. More... | |
bool | tryReceive (int i_recvFrom, MsgTag i_msgTag, const type_info &i_type, size_t i_size, void *io_valueArr) const |
try to non-blocking receive value array, return return true if completed. More... | |
bool | tryReceive (int i_recvFrom, IRowBaseVec &io_resultRowVec, const IPackedAdapter &i_adapter) const |
try to non-blocking receive and unpack vector of db rows, return return true if completed. More... | |
void | waitSendAll (void) |
wait for non-blocking send to be completed. | |
Additional Inherited Members | |
Static Public Member Functions inherited from openm::IMsgExec | |
static IMsgExec * | create (int argc, char **argv, IFinalState *i_final) |
create new message passing interface. More... | |
Static Public Attributes inherited from openm::IMsgExec | |
static const int | rootRank = 0 |
root process rank, always zero | |
Protected Member Functions inherited from openm::MsgExecBase | |
MsgExecBase (IFinalState *i_final) | |
Protected Attributes inherited from openm::MsgExecBase | |
int | worldCommSize |
int | worldRank |
int | group_rank |
IFinalState * | theFinal = nullptr |
list< unique_ptr< IMsgSend > > | sendLst |
message passing main class.
empty implementation of message passing library does nothing
it does NOT pass any data between sub-value processes but not required MPI to be installed
it can be used for:
model debug and development to quickly test model code with single sub-value
or if each sub-value process directly connected to database
|
inlineoverridevirtual |
receive broadcasted value array from root process (does nothing).
Implements openm::IMsgExec.
|
inlineoverridevirtual |
receive broadcasted vector of db rows from root (does nothing).
Implements openm::IMsgExec.
|
inlineoverridevirtual |
send broadcast value array from root to all other processes (does nothing).
Implements openm::IMsgExec.
|
inlineoverridevirtual |
send broadcast vector of db rows from root to all other processes (does nothing).
Implements openm::IMsgExec.
|
inlineoverridevirtual |
broadcast value from root to all other processes (does nothing).
Implements openm::IMsgExec.
|
inlineoverridevirtual |
create groups for parallel run of modeling task (does nothing).
Implements openm::IMsgExec.
|
inlineoverridevirtualnoexcept |
return rank in modeling group: always = 0.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
return current process rank: always = 0.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
set clean exit flag for normal shutdown of message passing interface.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
start non-blocking send of value array to i_sendTo process.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
pack and start non-blocking send of vector of db rows to i_sendTo process.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
try to non-blocking receive and unpack vector of db rows, return true if completed.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
try to non-blocking receive value array, return true if completed.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
wait for non-blocking send to be completed.
Implements openm::IMsgExec.
|
inlineoverridevirtual |
return total number of processes in world communicator: always = 1.
Implements openm::IMsgExec.