Scippy

UG

Ubiquity Generator framework

ParaLoadCoordinator Class Referenceabstract

Class for LoadCoordinator. More...

#include <paraLoadCoordinator.h>

+ Inheritance diagram for ParaLoadCoordinator:

Public Member Functions

 ParaLoadCoordinator (int nHandlers, ParaComm *inComm, ParaParamSet *inParaParamSet, ParaInitiator *paraInitiator, bool *racingSolversExist, ParaTimer *paraTimer, ParaDeterministicTimer *detTimer)
 constructor More...
 
virtual ~ParaLoadCoordinator ()
 destructor More...
 
virtual void interrupt ()
 interrupt from out side More...
 
virtual void run (ParaTask *paraTask)
 run for normal ramp-up More...
 
virtual void run (ParaTask *paraTask, int nRacingSolvers, ParaRacingRampUpParamSet **racingRampUpParams)
 run for racing ramp-up More...
 
virtual void parallelDispatch ()
 execute UG parallel solver totally solver dependent way More...
 

Protected Types

typedef int(UG::ParaLoadCoordinator::* MessageHandlerFunctionPointer) (int, int)
 

Protected Member Functions

virtual void writeTransferLog (int rank, ParaCalculationState *state)
 write transfer log More...
 
virtual void writeTransferLog (int rank)
 write transfer log More...
 
virtual void writeTransferLogInRacing (int rank, ParaCalculationState *state)
 write transfer log in racing More...
 
virtual void writeTransferLogInRacing (int rank)
 write transfer log in racing More...
 
virtual void sendRampUpToAllSolvers ()
 notify ramp-up to all solvers More...
 
virtual void sendRetryRampUpToAllSolvers ()
 notify retry ramp-up to all solvers (Maybe, this remove from this base class) More...
 
virtual void sendInterruptRequest ()=0
 send interrupt request to all solvers More...
 
virtual void terminateAllSolvers ()
 terminate all solvers More...
 
int createNewGlobalSubtreeId ()
 create a new global subtree Id More...
 
virtual int processTagTask (int source, int tag)=0
 Message handlers. More...
 
virtual int processTagSolution (int source, int tag)=0
 function to process TagSolution message More...
 
virtual int processTagSolverState (int source, int tag)=0
 function to process TagSolverState message More...
 
virtual int processTagCompletionOfCalculation (int source, int tag)=0
 function to process TagCompletionOfCalculation message More...
 
virtual int processTagTerminated (int source, int tag)
 function to process TagTerminated message More...
 
virtual int processTagHardTimeLimit (int source, int tag)
 function to process TagHardTimeLimit message More...
 
virtual int processTagToken (int source, int tag)
 function to process TagToken message More...
 
virtual int processRacingRampUpTagSolverState (int source, int tag)=0
 message handlers specialized for racing ramp-up More...
 
virtual int processRacingRampUpTagCompletionOfCalculation (int source, int tag)=0
 function to process TagCompletionOfCalculation message in racing ramp-up stage More...
 
void sendTagToAllSolvers (const int tag)
 check if current stage is in racing or not More...
 
virtual void run ()=0
 run function to start main process More...
 
virtual bool sendParaTasksToIdleSolvers ()=0
 send ParaTasks to idle solvers More...
 

Protected Attributes

int nHandlers
 number of valid handlers More...
 
MessageHandlerFunctionPointermessageHandler
 message handlers table for primary phase More...
 
MessageHandlerFunctionPointerracingRampUpMessageHandler
 message handlers table for racing stage More...
 
int globalSubtreeIdGen
 global subtree id generator More...
 
ParaCommparaComm
 communicator used More...
 
ParaParamSetparaParams
 UG parameter set. More...
 
ParaInitiatorparaInitiator
 initiator More...
 
bool * racingSolversExist
 indicate if racing solver exits or not, true: exists More...
 
bool restarted
 indicates that this run is restarted from checkpoint files More...
 
RunningPhase runningPhase
 status of LoadCoordinator More...
 
bool computationIsInterrupted
 indicate that current computation is interrupted or not More...
 
bool interruptedFromControlTerminal
 interrupted from control terminal More...
 
bool hardTimeLimitIsReached
 indicate that hard time limit is reached or not More...
 
bool memoryLimitIsReached
 indicate if memory limit is reached or not in a solver, when base solver has memory management feature More...
 
bool interruptIsRequested
 indicate that all solver interrupt message is requested or not More...
 
ParaSolverPoolparaSolverPool
 Pools in LoadCorrdinator. More...
 
ParaRacingSolverPoolparaRacingSolverPool
 racing solver pool More...
 
long long nSolvedInInterruptedRacingSolvers
 number of tasks solved of the winner solver in the racing solvers More...
 
long long nTasksLeftInInterruptedRacingSolvers
 number of of tasks remains of the the winner solver in the racing solvers More...
 
double previousCheckpointTime
 For checkpoint. More...
 
char lastCheckpointTimeStr [26]
 lastCheckpointTimeStr[0] == ' ' means no checkpoint More...
 
double eps
 epsilon More...
 
int racingWinner
 racing winner information More...
 
ParaRacingRampUpParamSetracingWinnerParams
 racing winner parameter set More...
 
bool racingTermination
 racing termination information More...
 
int nSolvedRacingTermination
 number of tasks solved at the racing termination solver More...
 
size_t nTerminated
 counter to check if all solvers are terminated or not More...
 
ParaTimerparaTimer
 Timers for LoadCoordinator. More...
 
ParaDeterministicTimerparaDetTimer
 deterministic timer used in case of deterministic mode this timer need to be created in case of deterministic mode More...
 
bool logSolvingStatusFlag
 output streams and flags which indicate the output is specified or not More...
 
std::ofstream ofsLogSolvingStatus
 ofstream for solving status More...
 
std::ostream * osLogSolvingStatus
 ostram for solving status to switch output location More...
 
bool logTasksTransferFlag
 indicate if task transfer info. is logged or not More...
 
std::ofstream ofsLogTasksTransfer
 ofstream for task transfer info. More...
 
std::ostream * osLogTasksTransfer
 ostream for task transfer info. to switch output location More...
 
std::ofstream ofsStatisticsFinalRun
 ofstream for statistics of the final run More...
 
std::ostream * osStatisticsFinalRun
 ostream for statistics of the final run More...
 
std::ofstream ofsStatisticsRacingRampUp
 ofstream for statistics for racing solvers More...
 
std::ostream * osStatisticsRacingRampUp
 ostream for statistics for racing solvers to switch output location More...
 
ParaSolutionpendingSolution
 pending solution during merging More...
 
bool terminationIssued
 indicate termination request is issued More...
 
std::mutex routineMutex
 used to exclusive control of routines More...
 

Detailed Description

Class for LoadCoordinator.

Definition at line 75 of file paraLoadCoordinator.h.

Member Typedef Documentation

◆ MessageHandlerFunctionPointer

typedef int(UG::ParaLoadCoordinator::* MessageHandlerFunctionPointer) (int, int)
protected

Definition at line 80 of file paraLoadCoordinator.h.

Constructor & Destructor Documentation

◆ ParaLoadCoordinator()

ParaLoadCoordinator ( int  nHandlers,
ParaComm inComm,
ParaParamSet inParaParamSet,
ParaInitiator paraInitiator,
bool *  racingSolversExist,
ParaTimer paraTimer,
ParaDeterministicTimer detTimer 
)

constructor

register message handlers

set up status log and transfer log

Parameters
nHandlersnumber of handlers
inCommcommunicator used
inParaParamSetUG parameter set used
paraInitiatorParaInitiator for initialization of solving algorithm
racingSolversExistindicate racing solver exits or not
paraTimerParaTimer used
detTimerDeterministicTimer used

Definition at line 61 of file paraLoadCoordinator.cpp.

References UG::Deterministic, ParaLoadCoordinator::eps, ParaParamSet::getBoolParamValue(), ParaInitiator::getEpsilon(), ParaInitiator::getParaInstance(), ParaInstance::getProbName(), ParaComm::getRank(), ParaParamSet::getStringParamValue(), ParaLoadCoordinator::lastCheckpointTimeStr, UG::LogSolvingStatus, UG::LogSolvingStatusFilePath, ParaLoadCoordinator::logSolvingStatusFlag, UG::LogTasksTransfer, UG::LogTasksTransferFilePath, ParaLoadCoordinator::logTasksTransferFlag, ParaLoadCoordinator::messageHandler, ParaLoadCoordinator::nHandlers, ParaLoadCoordinator::ofsLogSolvingStatus, ParaLoadCoordinator::ofsLogTasksTransfer, ParaLoadCoordinator::ofsStatisticsFinalRun, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::osLogTasksTransfer, ParaLoadCoordinator::osStatisticsFinalRun, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, ParaLoadCoordinator::paraInitiator, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::processTagCompletionOfCalculation(), ParaLoadCoordinator::processTagHardTimeLimit(), ParaLoadCoordinator::processTagSolution(), ParaLoadCoordinator::processTagSolverState(), ParaLoadCoordinator::processTagTask(), ParaLoadCoordinator::processTagTerminated(), ParaLoadCoordinator::processTagToken(), UG::Quiet, UG::TagCompletionOfCalculation, UG::TagHardTimeLimit, UG::TagSolution, UG::TagSolverState, UG::TagTask, UG::TagTerminated, and UG::TagToken.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId().

◆ ~ParaLoadCoordinator()

virtual ~ParaLoadCoordinator ( )
virtual

destructor

destructor should be implemented appropriately in a derived class of ParaLoadCoordinator

Definition at line 399 of file paraLoadCoordinator.h.

References ParaLoadCoordinator::messageHandler, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, and ParaLoadCoordinator::racingRampUpMessageHandler.

Member Function Documentation

◆ createNewGlobalSubtreeId()

◆ interrupt()

virtual void interrupt ( )
virtual

interrupt from out side

Definition at line 413 of file paraLoadCoordinator.h.

References ParaLoadCoordinator::sendInterruptRequest().

Referenced by interruptHandler().

◆ parallelDispatch()

virtual void parallelDispatch ( )
virtual

execute UG parallel solver totally solver dependent way

Definition at line 456 of file paraLoadCoordinator.h.

References ParaLoadCoordinator::run().

◆ processRacingRampUpTagCompletionOfCalculation()

virtual int processRacingRampUpTagCompletionOfCalculation ( int  source,
int  tag 
)
protectedpure virtual

function to process TagCompletionOfCalculation message in racing ramp-up stage

Returns
always 0 (for extension)
Parameters
sourcesource solver rank
tagTagCompletionOfCalculation

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId().

◆ processRacingRampUpTagSolverState()

virtual int processRacingRampUpTagSolverState ( int  source,
int  tag 
)
protectedpure virtual

message handlers specialized for racing ramp-up

function to process TagSolverState message in racing ramp-up stage

Returns
always 0 (for extension)
Parameters
sourcesource solver rank
tagTagSolverState

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId().

◆ processTagCompletionOfCalculation()

virtual int processTagCompletionOfCalculation ( int  source,
int  tag 
)
protectedpure virtual

function to process TagCompletionOfCalculation message

Returns
always 0 (for extension)
Parameters
sourcesource solver rank
tagTagCompletionOfCalculation

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId(), and ParaLoadCoordinator::ParaLoadCoordinator().

◆ processTagHardTimeLimit()

int processTagHardTimeLimit ( int  source,
int  tag 
)
protectedvirtual

function to process TagHardTimeLimit message

Returns
always 0 (for extension)
Parameters
sourcesource solver rank
tagTagHardTimeLimit

Definition at line 315 of file paraLoadCoordinator.cpp.

References ParaLoadCoordinator::hardTimeLimitIsReached, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaComm::receive(), and UG::TagHardTimeLimit.

Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), ParaLoadCoordinator::createNewGlobalSubtreeId(), and ParaLoadCoordinator::ParaLoadCoordinator().

◆ processTagSolution()

virtual int processTagSolution ( int  source,
int  tag 
)
protectedpure virtual

function to process TagSolution message

Returns
always 0 (for extension)
Parameters
sourcesource solver rank
tagTagSolution

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId(), and ParaLoadCoordinator::ParaLoadCoordinator().

◆ processTagSolverState()

virtual int processTagSolverState ( int  source,
int  tag 
)
protectedpure virtual

function to process TagSolverState message

Returns
always 0 (for extension)
Parameters
sourcesource solver rank
tagTagSolverState

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId(), and ParaLoadCoordinator::ParaLoadCoordinator().

◆ processTagTask()

virtual int processTagTask ( int  source,
int  tag 
)
protectedpure virtual

Message handlers.

function to process TagTask message

Returns
always 0 (for extension)
Parameters
sourcesource solver rank
tagTagTask

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId(), and ParaLoadCoordinator::ParaLoadCoordinator().

◆ processTagTerminated()

◆ processTagToken()

int processTagToken ( int  source,
int  tag 
)
protectedvirtual

◆ run() [1/3]

virtual void run ( )
protectedpure virtual

run function to start main process

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId(), main(), and ParaLoadCoordinator::parallelDispatch().

◆ run() [2/3]

virtual void run ( ParaTask paraTask)
virtual

run for normal ramp-up

Parameters
paraTaskroot ParaTask

Reimplemented in BbParaLoadCoordinator.

Definition at line 436 of file paraLoadCoordinator.h.

◆ run() [3/3]

virtual void run ( ParaTask paraTask,
int  nRacingSolvers,
ParaRacingRampUpParamSet **  racingRampUpParams 
)
virtual

run for racing ramp-up

Parameters
paraTaskroot ParaTask
nRacingSolversnumber of racing solvers
racingRampUpParamsracing parameters

Reimplemented in BbParaLoadCoordinator.

Definition at line 445 of file paraLoadCoordinator.h.

◆ sendInterruptRequest()

virtual void sendInterruptRequest ( )
protectedpure virtual

send interrupt request to all solvers

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::interrupt(), and ParaLoadCoordinator::sendRetryRampUpToAllSolvers().

◆ sendParaTasksToIdleSolvers()

virtual bool sendParaTasksToIdleSolvers ( )
protectedpure virtual

send ParaTasks to idle solvers

Returns
true, if a ParaTasks is sent

Implemented in BbParaLoadCoordinator.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId().

◆ sendRampUpToAllSolvers()

void sendRampUpToAllSolvers ( )
protectedvirtual

◆ sendRetryRampUpToAllSolvers()

virtual void sendRetryRampUpToAllSolvers ( )
protectedvirtual

notify retry ramp-up to all solvers (Maybe, this remove from this base class)

Reimplemented in BbParaLoadCoordinator.

Definition at line 203 of file paraLoadCoordinator.h.

References ParaLoadCoordinator::sendInterruptRequest(), and ParaLoadCoordinator::terminateAllSolvers().

◆ sendTagToAllSolvers()

void sendTagToAllSolvers ( const int  tag)
protected

check if current stage is in racing or not

Returns
true, if current stage is in racing send specified tag to all solvers
Parameters
tagtag which is sent to all solvers

Definition at line 469 of file paraLoadCoordinator.cpp.

References ParaComm::getSize(), PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, and ParaComm::send().

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId().

◆ terminateAllSolvers()

◆ writeTransferLog() [1/2]

◆ writeTransferLog() [2/2]

void writeTransferLog ( int  rank)
protectedvirtual

◆ writeTransferLogInRacing() [1/2]

◆ writeTransferLogInRacing() [2/2]

void writeTransferLogInRacing ( int  rank)
protectedvirtual

Member Data Documentation

◆ computationIsInterrupted

bool computationIsInterrupted
protected

indicate that current computation is interrupted or not

Definition at line 97 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::processTagTerminated(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().

◆ eps

double eps
protected

epsilon

absolute values smaller than this are considered zero */

Definition at line 121 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::ParaLoadCoordinator(), and BbParaLoadCoordinator::processTagTask().

◆ globalSubtreeIdGen

int globalSubtreeIdGen
protected

global subtree id generator

Definition at line 86 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::createNewGlobalSubtreeId().

◆ hardTimeLimitIsReached

◆ interruptedFromControlTerminal

bool interruptedFromControlTerminal
protected

interrupted from control terminal

Definition at line 98 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::~BbParaLoadCoordinator().

◆ interruptIsRequested

◆ lastCheckpointTimeStr

char lastCheckpointTimeStr[26]
protected

lastCheckpointTimeStr[0] == ' ' means no checkpoint

Definition at line 116 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::ParaLoadCoordinator(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().

◆ logSolvingStatusFlag

◆ logTasksTransferFlag

◆ memoryLimitIsReached

◆ messageHandler

◆ nHandlers

int nHandlers
protected

number of valid handlers

Definition at line 82 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), and ParaLoadCoordinator::ParaLoadCoordinator().

◆ nSolvedInInterruptedRacingSolvers

long long nSolvedInInterruptedRacingSolvers
protected

number of tasks solved of the winner solver in the racing solvers

Definition at line 109 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::inactivateRacingSolverPool(), and BbParaLoadCoordinator::outputTabularSolvingStatus().

◆ nSolvedRacingTermination

◆ nTasksLeftInInterruptedRacingSolvers

long long nTasksLeftInInterruptedRacingSolvers
protected

number of of tasks remains of the the winner solver in the racing solvers

Definition at line 110 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::inactivateRacingSolverPool(), and BbParaLoadCoordinator::outputTabularSolvingStatus().

◆ nTerminated

size_t nTerminated
protected

counter to check if all solvers are terminated or not

number of terminated Solvers

Definition at line 138 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::processTagTerminated(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().

◆ ofsLogSolvingStatus

std::ofstream ofsLogSolvingStatus
protected

ofstream for solving status

Definition at line 151 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::ParaLoadCoordinator().

◆ ofsLogTasksTransfer

std::ofstream ofsLogTasksTransfer
protected

ofstream for task transfer info.

Definition at line 154 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::ParaLoadCoordinator().

◆ ofsStatisticsFinalRun

std::ofstream ofsStatisticsFinalRun
protected

ofstream for statistics of the final run

Definition at line 156 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::ParaLoadCoordinator().

◆ ofsStatisticsRacingRampUp

std::ofstream ofsStatisticsRacingRampUp
protected

ofstream for statistics for racing solvers

Definition at line 158 of file paraLoadCoordinator.h.

◆ osLogSolvingStatus

◆ osLogTasksTransfer

std::ostream* osLogTasksTransfer
protected

◆ osStatisticsFinalRun

std::ostream* osStatisticsFinalRun
protected

◆ osStatisticsRacingRampUp

std::ostream* osStatisticsRacingRampUp
protected

◆ paraComm

ParaComm* paraComm
protected

communicator used

Definition at line 90 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::changeSearchStrategyOfAllSolversToOriginalSearch(), BbParaLoadCoordinator::newRacing(), ParaLoadCoordinator::ParaLoadCoordinator(), BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::processTagAllowToBeInCollectingMode(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), ParaLoadCoordinator::processTagHardTimeLimit(), ScipParaLoadCoordinator::processTagInitialStat(), BbParaLoadCoordinator::processTagLbBoundTightened(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSelfSplitFinished(), BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagSolution(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagSubtreeRootNodeStartComputation(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::processTagTask(), ParaLoadCoordinator::processTagTerminated(), BbParaLoadCoordinator::processTagTermStateForInterruption(), ParaLoadCoordinator::processTagToken(), BbParaLoadCoordinator::processTagUbBoundTightened(), BbParaLoadCoordinator::restartRacing(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendCutOffValue(), BbParaLoadCoordinator::sendIncumbentValue(), BbParaLoadCoordinator::sendInterruptRequest(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), ParaLoadCoordinator::sendRampUpToAllSolvers(), BbParaLoadCoordinator::sendRetryRampUpToAllSolvers(), ParaLoadCoordinator::sendTagToAllSolvers(), BbParaLoadCoordinator::terminateAllSolvers(), ParaLoadCoordinator::terminateAllSolvers(), BbParaLoadCoordinator::updateSolution(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().

◆ paraDetTimer

◆ paraInitiator

ParaInitiator* paraInitiator
protected

initiator

Definition at line 92 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::changeSearchStrategyOfAllSolversToOriginalSearch(), BbParaLoadCoordinator::isGapReached(), BbParaLoadCoordinator::newRacing(), BbParaLoadCoordinator::outputTabularSolvingStatus(), ParaLoadCoordinator::ParaLoadCoordinator(), BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), ScipParaLoadCoordinator::processTagInitialStat(), BbParaLoadCoordinator::processTagLbBoundTightened(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSolution(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::processTagTask(), ParaLoadCoordinator::processTagTerminated(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaLoadCoordinator::processTagUbBoundTightened(), BbParaLoadCoordinator::restartRacing(), BbParaLoadCoordinator::run(), ScipParaLoadCoordinator::ScipParaLoadCoordinator(), BbParaLoadCoordinator::sendCutOffValue(), BbParaLoadCoordinator::sendIncumbentValue(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaLoadCoordinator::updateSolution(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().

◆ paraParams

◆ paraRacingSolverPool

◆ paraSolverPool

ParaSolverPool* paraSolverPool
protected

Pools in LoadCorrdinator.

solver pool

Definition at line 106 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::processTagAllowToBeInCollectingMode(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagSubtreeRootNodeStartComputation(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::processTagTask(), ParaLoadCoordinator::processTagTerminated(), BbParaLoadCoordinator::processTagTermStateForInterruption(), ParaLoadCoordinator::processTagToken(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendInterruptRequest(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaLoadCoordinator::terminateAllSolvers(), ParaLoadCoordinator::terminateAllSolvers(), BbParaLoadCoordinator::writeSubtreeInfo(), ParaLoadCoordinator::writeTransferLog(), BbParaLoadCoordinator::~BbParaLoadCoordinator(), and ParaLoadCoordinator::~ParaLoadCoordinator().

◆ paraTimer

◆ pendingSolution

ParaSolution* pendingSolution
protected

pending solution during merging

Definition at line 161 of file paraLoadCoordinator.h.

◆ previousCheckpointTime

double previousCheckpointTime
protected

For checkpoint.

previous checkpoint time

Definition at line 115 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::run().

◆ racingRampUpMessageHandler

MessageHandlerFunctionPointer* racingRampUpMessageHandler
protected

message handlers table for racing stage

Definition at line 84 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::run(), and ParaLoadCoordinator::~ParaLoadCoordinator().

◆ racingSolversExist

bool* racingSolversExist
protected

indicate if racing solver exits or not, true: exists

Definition at line 93 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::isGapReached(), ScipParaLoadCoordinator::ScipParaLoadCoordinator(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().

◆ racingTermination

◆ racingWinner

int racingWinner
protected

◆ racingWinnerParams

◆ restarted

bool restarted
protected

indicates that this run is restarted from checkpoint files

Definition at line 94 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::sendParaTasksToIdleSolvers().

◆ routineMutex

std::mutex routineMutex
protected

used to exclusive control of routines

Definition at line 163 of file paraLoadCoordinator.h.

Referenced by ParaLoadCoordinator::processTagTerminated().

◆ runningPhase

◆ terminationIssued

bool terminationIssued
protected

indicate termination request is issued

Definition at line 162 of file paraLoadCoordinator.h.

Referenced by BbParaLoadCoordinator::terminateAllSolvers(), and ParaLoadCoordinator::terminateAllSolvers().