MPITransfer is a TransferInterface implementation plugin that transfers data using MPI. More...
#include <artdaq-mpich-plugin/TransferPlugins/MPITransfer.hh>
Public Member Functions | |
MPITransfer (fhicl::ParameterSet pset, Role role) | |
MPITransfer Constructor. | |
MPITransfer (const MPITransfer &) | |
Copy Constructor is deleted. | |
MPITransfer & | operator= (const MPITransfer &) |
Copy Assignment operator is deleted. | |
virtual | ~MPITransfer () |
MPITransfer Destructor. | |
CopyStatus | copyFragment (Fragment &frag, size_t timeout_usec) override |
Copy a Fragment to the destination. Forces asynchronous send. | |
CopyStatus | moveFragment (Fragment &&frag) override |
Move a Fragment to the destination. | |
int | receiveFragmentHeader (detail::RawFragmentHeader &header, size_t receiveTimeout) override |
Receive a Fragment Header from the transport mechanism. | |
int | receiveFragmentData (RawDataType *destination, size_t wordCount) override |
Receive the body of a Fragment to the given destination pointer. |
MPITransfer is a TransferInterface implementation plugin that transfers data using MPI.
Definition at line 24 of file MPITransfer.hh.
artdaq::MPITransfer::MPITransfer | ( | fhicl::ParameterSet | pset, | |
Role | role | |||
) |
MPITransfer Constructor.
pset | ParameterSet used to configure MPITransfer | |
role | Role of this MPITransfer instance (kSend or kReceive) |
* MPITransfer accepts the following Parameters: * "synchronous_sends" (Default: true): When false, use MPI_ISend, otherwise, use MPI_SSend *
MPITransfer also requires all Parameters for configuring a TransferInterface
Definition at line 26 of file MPI_transfer.cc.
artdaq::TransferInterface::CopyStatus artdaq::MPITransfer::copyFragment | ( | Fragment & | frag, | |
size_t | timeout_usec | |||
) | [override] |
Copy a Fragment to the destination. Forces asynchronous send.
frag | Fragment to copy | |
timeout_usec | Timeout for send, in microseconds |
Definition at line 71 of file MPI_transfer.cc.
artdaq::TransferInterface::CopyStatus artdaq::MPITransfer::moveFragment | ( | Fragment && | frag | ) | [override] |
Move a Fragment to the destination.
frag | Fragment to move |
Definition at line 78 of file MPI_transfer.cc.
MPITransfer& artdaq::MPITransfer::operator= | ( | const MPITransfer & | ) |
Copy Assignment operator is deleted.
int artdaq::MPITransfer::receiveFragmentData | ( | RawDataType * | destination, | |
size_t | wordCount | |||
) | [override] |
Receive the body of a Fragment to the given destination pointer.
destination | Pointer to memory region where Fragment data should be stored | |
wordCount | Number of words of Fragment data to receive |
Definition at line 208 of file MPI_transfer.cc.
int artdaq::MPITransfer::receiveFragmentHeader | ( | detail::RawFragmentHeader & | header, | |
size_t | receiveTimeout | |||
) | [override] |
Receive a Fragment Header from the transport mechanism.
[out] | header | Received Fragment Header |
receiveTimeout | Timeout for receive |
Definition at line 146 of file MPI_transfer.cc.