MPITransfer is a TransferInterface implementation plugin that transfers data using MPI. More...
#include <artdaq/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=std::numeric_limits< size_t >::max()) override |
Copy a Fragment to the destination. Forces asynchronous send. | |
CopyStatus | moveFragment (Fragment &&frag, size_t timeout_usec=std::numeric_limits< size_t >::max()) 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, | |
TransferInterface::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 25 of file MPI_transfer.cc.
artdaq::TransferInterface::CopyStatus artdaq::MPITransfer::copyFragment | ( | Fragment & | frag, | |
size_t | timeout_usec = std::numeric_limits<size_t>::max() | |||
) | [override] |
Copy a Fragment to the destination. Forces asynchronous send.
frag | Fragment to copy | |
timeout_usec | Timeout for send, in microseconds |
Definition at line 70 of file MPI_transfer.cc.
artdaq::TransferInterface::CopyStatus artdaq::MPITransfer::moveFragment | ( | Fragment && | frag, | |
size_t | timeout_usec = std::numeric_limits<size_t>::max() | |||
) | [override] |
Move a Fragment to the destination.
frag | Fragment to move | |
timeout_usec | Timeout for send, in microseconds |
Definition at line 77 of file MPI_transfer.cc.
MPITransfer& artdaq::MPITransfer::operator= | ( | const MPITransfer & | ) |
Copy Assignment operator is deleted.
Reimplemented from artdaq::TransferInterface.
int artdaq::MPITransfer::receiveFragmentData | ( | RawDataType * | destination, | |
size_t | wordCount | |||
) | [override, virtual] |
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 |
Implements artdaq::TransferInterface.
Definition at line 200 of file MPI_transfer.cc.
int artdaq::MPITransfer::receiveFragmentHeader | ( | detail::RawFragmentHeader & | header, | |
size_t | receiveTimeout | |||
) | [override, virtual] |
Receive a Fragment Header from the transport mechanism.
[out] | header | Received Fragment Header |
receiveTimeout | Timeout for receive |
Implements artdaq::TransferInterface.
Definition at line 138 of file MPI_transfer.cc.