Class ThirdLevelUtils

Class Documentation

class ThirdLevelUtils

Public Functions

ThirdLevelUtils(const std::string &host, int port)
~ThirdLevelUtils()
void connectToThirdLevelManager(double timeoutMinutes)
void signalReadyToCombine() const
void signalReadyToCombineFile() const
void signalReadyToUnifySubspaceSizes() const
void signalReadyToExchangeData() const
void signalReady() const
size_t receiveSize() const
std::string fetchInstruction() const
template<typename FG_ELEMENT>
DistributedSparseGridUniform<FG_ELEMENT> recvDSGUniform() const
std::string recvDSGUniformSerialized() const
template<typename FG_ELEMENT>
void sendData(const FG_ELEMENT *const data, size_t size) const

Sends the given data in binary form to the third level manager

template<typename FG_ELEMENT>
void recvData(FG_ELEMENT *data, size_t size) const

Receives binary data from the third level manager.

template<typename FG_ELEMENT>
void recvAndAddToData(FG_ELEMENT *data, size_t size) const

Receives upcoming data from the third level manager and directly adds it to the provided buffer. The implementation does not wait with the summation until all remote data is received. Instead, each received chunk is added directly to the provided buffer. Therefor the memory overhead is usually much lower (chunksize can be adjusted) compared to the classical way.