Galois
|
Class for the network IO layer which is responsible for doing sends/receives of data. More...
#include <NetworkIO.h>
Classes | |
struct | message |
Message structure for sending data across the network. More... | |
Public Member Functions | |
NetworkIO (MemUsageTracker &tracker, std::atomic< size_t > &sends, std::atomic< size_t > &recvs) | |
The default constructor takes a memory usage tracker and saves it. More... | |
virtual | ~NetworkIO () |
Default destructor does nothing. More... | |
virtual void | enqueue (message m)=0 |
Queues a message for sending out. Takes ownership of data buffer. More... | |
virtual message | dequeue ()=0 |
Checks to see if a message is here for this host to receive. More... | |
virtual void | progress ()=0 |
Make progress. Other functions don't have to make progress. More... | |
Protected Types | |
using | vTy = galois::PODResizeableArray< uint8_t > |
Static Protected Member Functions | |
static void | handleError (int rc) |
Wrapper for dealing with MPI error codes. More... | |
Protected Attributes | |
MemUsageTracker & | memUsageTracker |
memory usage tracker More... | |
std::atomic< size_t > & | inflightSends |
Number of inflight sends and receives. More... | |
std::atomic< size_t > & | inflightRecvs |
Class for the network IO layer which is responsible for doing sends/receives of data.
Used by the network interface to do the actual communication.
|
protected |
|
inline |
The default constructor takes a memory usage tracker and saves it.
tracker | reference to a memory usage tracker used by the system |
sends | |
recvs |
|
virtual |
Default destructor does nothing.
|
pure virtual |
Checks to see if a message is here for this host to receive.
If so, take and return it
Implemented in NetworkIOMPI.
|
pure virtual |
Queues a message for sending out. Takes ownership of data buffer.
Implemented in NetworkIOMPI.
|
inlinestaticprotected |
Wrapper for dealing with MPI error codes.
Program dies if the error code isn't MPI_SUCCESS.
rc | Error code to check for success |
|
pure virtual |
Make progress. Other functions don't have to make progress.
Implemented in NetworkIOMPI.
|
protected |
|
protected |
Number of inflight sends and receives.
|
protected |
memory usage tracker