44BbParaLoadCoordinatorTerminationState::toString(
50 s <<
"######### LoadCoordinator Rank = " <<
rank <<
" is at checkpoint. #########" << std::endl;
54 s <<
"######### LoadCoordinator Rank = " <<
rank <<
" is terminated. #########" << std::endl;
57 s <<
"#=== The number of ParaNodes received = " <<
nReceived << std::endl;
58 s <<
"#=== The number of ParaNodes sent = " <<
nSent << std::endl;
67 s <<
"#=== LoadCoodibator NodePool is not empty. "
72 s <<
"#=== Solvers have nodes. "
79 s <<
"#=== Idle time to checkpoint of this LoadCoordinator = " <<
idleTime << std::endl;
80 s <<
"#=== Elapsed time to checkpoint of this LoadCoordinator = " <<
runningTime << std::endl;
84 s <<
"#=== Idle time to terminate this LoadCoordinator = " <<
idleTime << std::endl;
85 s <<
"#=== Elapsed time to terminate this LoadCoordinator = " <<
runningTime << std::endl;
97 gzstream::ogzstream &out
101 out.write((
char *)&
rank,
sizeof(
int));
102 out.write((
char *)&
nWarmStart,
sizeof(
unsigned long long));
103 out.write((
char *)&
nSent,
sizeof(
unsigned long long));
106 out.write((
char *)&
nReceived,
sizeof(
unsigned long long));
107 out.write((
char *)&
nDeletedInLc,
sizeof(
unsigned long long));
115 out.write((
char *)&
idleTime,
sizeof(
double));
126 gzstream::igzstream &in
130 if( in.eof() )
return false;
131 in.read((
char *)&
rank,
sizeof(
int));
132 in.read((
char *)&
nWarmStart,
sizeof(
unsigned long long));
133 in.read((
char *)&
nSent,
sizeof(
unsigned long long));
136 in.read((
char *)&
nReceived,
sizeof(
unsigned long long));
137 in.read((
char *)&
nDeletedInLc,
sizeof(
unsigned long long));
145 in.read((
char *)&
idleTime,
sizeof(
double));
Load coordinator termination state.
double mergeNodeTime
time when ParaNode is merged
bool read(ParaComm *comm, gzstream::igzstream &in)
read from checkpoint file
double generateMergeNodesCandidatesTime
time when merge ParaNode candidates are generated
unsigned long long nNodesInNodePool
number of nodes in ParaNodePool
unsigned long long nDeletedByMerging
number of ParaNodes deleted by merging
unsigned long long nNodesLeftInAllSolvers
number of nodes left in all Solvers
double runningTime
this ParaLoadCoordinator running time
unsigned long long nFailedToSendBackAnotherNode
number of ParaNodes failed to send back after AnotherNode request
double idleTime
idle time of this LoadCoordinator
double regenerateMergeNodesCandidatesTime
time when merge ParaNode candidates are regenerated
unsigned long long mMaxCollectingNodes
maximum multiplier for the number of collecting nodes
unsigned long long nFailedToSendBack
number of ParaNodes failed to send back
unsigned long long nDeletedInLc
number of ParaNodes deleted in LC
double externalGlobalBestDualBoundValue
global best dual bound value (external value)
unsigned long long nMaxUsageOfNodePool
maximum number of ParaNodes in ParaNodePool
unsigned long long nSentBackImmediately
Counters related to this ParaLoadCoordinator TODO: The numbers should be classified depending on solv...
void write(gzstream::ogzstream &out)
write to checkpoint file
unsigned long long nInitialP
initial p value, which indicates the number of good ParaNodes try to keep in LC
double addingNodeToMergeStructTime
time when a ParaNode is added to merge struct
double globalBestDualBoundValue
global best dual bound value (internal value)
unsigned long long nSentBackImmediatelyAnotherNode
number of ParaNodes sent back immediately after AnotherNode request from LC
Base class of communicator object.
bool isCheckpointState
indicate if this state is at checkpoint or not
unsigned long long nWarmStart
number of warm starts (restarts)
int rank
rank of this ParaLoadCoordinator
unsigned long long nSent
number of ParaTasks sent from LC
unsigned long long nReceived
number of ParaTasks received from Solvers
static ScipParaCommTh * comm