10#ifndef _BE_MPI_DISTRIBUTOR_H
11#define _BE_MPI_DISTRIBUTOR_H
122 const std::string &reason) = 0;
150 std::shared_ptr<IO::PropertiesFile>
161 void distributeWork();
167 void sendWorkPackage(
180 std::unique_ptr<MPI::Resources> _resources;
183 std::set<int> _activeMpiTasks;
185 std::shared_ptr<IO::Logsheet> _logsheet;
186 std::shared_ptr<IO::PropertiesFile> _checkpointData;
A class to represent an MPI task that distributes work to other tasks.
static const std::string CHECKPOINTPID
The process ID of the checkpointing Distributor process, "PID".
virtual void checkpointRestore()=0
Restore from a checkpoint state.
void start()
Start of MPI processing for the distributor.
static const std::string CHECKPOINTFILENAME
The name of the checkpoint properties file, "Distributor.chk".
Distributor(const std::string &propertiesFileName)
Constructor with properties file name.
virtual void checkpointSave(const std::string &reason)=0
Create a checkpoint state.
std::shared_ptr< IO::PropertiesFile > getCheckpointData() const
Get access to the checkpoint data object.
static const std::string CHECKPOINTREASON
The reason string given for the checkpoint to be taken, "Reason".
std::shared_ptr< IO::Logsheet > getLogsheet() const
Get access to the Logsheet object.
virtual void createWorkPackage(MPI::WorkPackage &workPackage)=0
Create a work package for distribution.
A class to represent a piece of work to be acted upon by a processor.
This software was developed at the National Institute of Standards and Technology (NIST) by employees...