Class for LoadCoordinator. More...
#include <bbParaLoadCoordinator.h>
Public Member Functions | |
BbParaLoadCoordinator (int inNhanders, ParaComm *inComm, ParaParamSet *inParaParamSet, ParaInitiator *paraInitiator, bool *racingSolversExist, ParaTimer *paraTimer, ParaDeterministicTimer *detTimer) | |
constructor More... | |
virtual | ~BbParaLoadCoordinator () |
destructor More... | |
virtual void | warmStart () |
warm start (restart) More... | |
virtual void | run (ParaTask *paraNode) |
run for normal ramp-up More... | |
virtual void | run (ParaTask *paraNode, int nRacingSolvers, ParaRacingRampUpParamSet **racingRampUpParams) |
run for racing ramp-up More... | |
void | setGlobalBestIncumbentSolution (ParaSolution *sol) |
set global best incumbent solution More... | |
Public Member Functions inherited from ParaLoadCoordinator | |
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 | warmStart () |
warm start (restart) 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::BbParaLoadCoordinator::* | BbMessageHandlerFunctionPointer) (int, int) |
Protected Types inherited from ParaLoadCoordinator | |
typedef int(UG::ParaLoadCoordinator::* | MessageHandlerFunctionPointer) (int, int) |
Protected Member Functions | |
void | terminateAllSolvers () |
terminate all solvers More... | |
virtual void | sendRetryRampUpToAllSolvers () |
notify retry ramp-up to all solvers More... | |
virtual void | sendInterruptRequest () |
send interrupt request to all solvers More... | |
virtual bool | updateSolution (BbParaSolution *) |
update incumbent solution More... | |
virtual void | sendIncumbentValue (int receivedRank) |
send incumbent value More... | |
virtual void | sendCutOffValue (int receivedRank) |
send cut off value More... | |
virtual int | processTagTask (int source, int tag) |
Message handlers. More... | |
virtual int | processTagSolution (int source, int tag) |
function to process TagSolution message More... | |
virtual int | processTagSolverState (int source, int tag) |
function to process TagSolverState message More... | |
virtual int | processTagCompletionOfCalculation (int source, int tag) |
function to process TagCompletionOfCalculation message More... | |
virtual int | processTagTermStateForInterruption (int source, int tag) |
function to process TagTermStateForInterruption message More... | |
virtual int | processTagAnotherNodeRequest (int source, int tag) |
function to process TagAnotherNodeRequest message More... | |
virtual int | processTagAllowToBeInCollectingMode (int source, int tag) |
function to process TagAllowToBeInCollectingMode message More... | |
virtual int | processTagLbBoundTightened (int source, int tag) |
function to process TagLbBoundTightened message More... | |
virtual int | processTagUbBoundTightened (int source, int tag) |
function to process TagUbBoundTightened message More... | |
virtual int | processTagSelfSplitFinished (int source, int tag) |
function to process TagSelfSplitFinished message More... | |
virtual int | processTagNewSubtreeRootNode (int source, int tag) |
function to process TagNewSubtreeRootNode message More... | |
virtual int | processTagSubtreeRootNodeStartComputation (int source, int tag) |
function to process TagSubtreeRootNodeStartComputation message More... | |
virtual int | processTagSubtreeRootNodeToBeRemoved (int source, int tag) |
function to process TagSubtreeRootNodeToBeRemoved message More... | |
virtual int | processTagReassignSelfSplitSubtreeRootNode (int source, int tag) |
function to process TagReassignSelfSplitSubtreeRootNode message More... | |
virtual int | processTagSelfSlpitNodeCalcuationState (int source, int tag) |
function to process TagSelfSlpitNodeCalcuationState message More... | |
virtual int | processTagSelfSplitTermStateForInterruption (int source, int tag) |
function to process TagSelfSplitTermStateForInterruption message More... | |
virtual int | processRacingRampUpTagSolverState (int source, int tag) |
message handlers specialized for racing ramp-up More... | |
virtual int | processRacingRampUpTagCompletionOfCalculation (int source, int tag) |
function to process TagCompletionOfCalculation message in racing ramp-up stage More... | |
virtual void | run () |
run function to start main process More... | |
virtual void | updateCheckpointFiles () |
function to update checkpoint files More... | |
virtual void | writeLoadCoordinatorStatisticsToCheckpointFile (gzstream::ogzstream &loadCoordinatorStatisticsStream, int nSolverInfo, double globalBestDualBoundValue, double externalGlobalBestDualBoundValue) |
write LoadCorrdinator statistics to checkpoint file More... | |
virtual void | writePreviousStatisticsInformation () |
write previous run's statistics information More... | |
virtual bool | sendParaTasksToIdleSolvers () |
send ParaNodes to idle solvers More... | |
virtual void | inactivateRacingSolverPool (int rank) |
inactivate racing solver pool More... | |
virtual void | outputTabularSolvingStatusHeader () |
output tabular solving status header More... | |
virtual void | outputTabularSolvingStatus (char incumbent) |
output solving status in tabular form More... | |
virtual void | writeSubtreeInfo (int source, ParaCalculationState *calcState) |
write subtree info. More... | |
virtual void | restartInRampDownPhase () |
restart in ramp-down phase More... | |
virtual int | restartRacing () |
restart racing More... | |
virtual void | newRacing () |
start a new racing More... | |
virtual void | changeSearchStrategyOfAllSolversToBestBoundSearch () |
change search strategy of all solvers to best bound bound search strategy More... | |
virtual void | changeSearchStrategyOfAllSolversToOriginalSearch () |
change search strategy of all solvers to original search strategy More... | |
virtual bool | isRacingStage () |
check if current stage is in racing or not More... | |
virtual bool | isGapReached () |
check if Gap reached or not More... | |
Protected Member Functions inherited from ParaLoadCoordinator | |
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) |
send specified tag to all solvers More... | |
virtual void | run ()=0 |
run function to start main process More... | |
virtual bool | sendParaTasksToIdleSolvers ()=0 |
send ParaTasks to idle solvers More... | |
virtual void | updateCheckpointFiles ()=0 |
function to update checkpoint files More... | |
Protected Attributes | |
bool | initialNodesGenerated |
indicates that initial nodes have been generated More... | |
int | firstCollectingModeState |
status of first collecting mode -1 : have not been in collecting mode 0 : once in collecting mode 1 : collecting mode is terminated once More... | |
bool | isCollectingModeRestarted |
this flag indicate if a collecting mode is restarted or not More... | |
bool | isBreakingFinised |
indicate that breaking is finished or not if bootstrap ramp-up is not specified, this flag should be always true More... | |
int | breakingSolverId |
all nodes collecting solver Id: -1: no collecting More... | |
int | nReplaceToBetterNode |
the number of replacing to a better nodes More... | |
int | nNormalSelection |
number of normal node selection to a random node selection More... | |
bool | winnerSolverNodesCollected |
indicate that all winner solver nodes has been collected More... | |
bool | primalUpdated |
indicate that primal solution was updated or not More... | |
bool | restartingRacing |
indicate that racing ramp-up is restarting More... | |
int | nRestartedRacing |
number of racing stages restarted More... | |
BbParaNodePool * | paraNodePool |
Pools in LoadCorrdinator. More... | |
BbParaLoadCoordinatorTerminationState | lcts |
LoadCoordinatorTerminationState: counters and times. More... | |
double | statEmptyNodePoolTime |
To measure how long does node pool stay in empty situation. More... | |
int | minDepthInWinnerSolverNodes |
racing winner information More... | |
int | maxDepthInWinnerSolverNodes |
maximum depth of open nodes in the winner solver tree More... | |
bool | merging |
for merging nodes More... | |
int | nBoundChangesOfBestNode |
the number of fixed variables of the best node The followings are used temporary to generate merge nodes info More... | |
BbParaNodesMerger * | nodesMerger |
pointer to nodes merger object, which merges nodes More... | |
size_t | nCollectedSolvers |
counter to check if all solvers are terminated or not More... | |
double | previousTabularOutputTime |
to keep tabular solving status output time More... | |
double | averageDualBoundGain |
average dual bound gain: could be negative value at restart More... | |
int | nAverageDualBoundGain |
number of nodes whose dual bound gain are counted More... | |
std::deque< double > | lastSeveralDualBoundGains |
keep last several dual bound gains More... | |
double | averageLastSeveralDualBoundGains |
average dual bound gains of last several ones More... | |
double | starvingTime |
start time of starving active solvers More... | |
double | hugeImbalanceTime |
start time of huge imbalance situation More... | |
BbParaNodePool * | paraNodePoolToRestart |
ParaNode pool to restart in ramp-down phase. More... | |
BbParaNodePool * | paraNodePoolBufferToRestart |
ParaNode pool for buffering ParaNodes in huge imbalance situation. More... | |
BbParaNodePool * | paraNodePoolBufferToGenerateCPF |
This is used for GenerateReducedCheckpointFiles. More... | |
BbParaNodePool * | paraNodeToKeepCheckpointFileNodes |
The first n nodes may always keep in checkpoint file, that is, the n nodes are not processed in this run. More... | |
BbParaNodePool * | unprocessedParaNodes |
The last n nodes may always keep in checkpoint file, that is, the n nodes are not processed in this run. More... | |
std::set< int > * | selfSplitFinisedSolvers |
indicate selfSplit finished solvers More... | |
bool | outputTabularSolvingStatusFlag |
output streams and flags which indicate the output is specified or not More... | |
std::ofstream | ofsTabularSolvingStatus |
ofstream for solving status in tabular form More... | |
std::ostream * | osTabularSolvingStatus |
ostream for solving status in tabular form to switch output location More... | |
bool | logSubtreeInfoFlag |
indicate if subtree info. is logged or not More... | |
std::ofstream | ofsLogSubtreeInfo |
ofstream for subtree info. More... | |
std::ostream * | osLogSubtreeInfo |
ostram for subtree info. to switch output location More... | |
bool | allCompInfeasibleAfterSolution |
indicate that all computations are infeasible after a feasible solution More... | |
double | minmalDualBoundNormalTermSolvers |
minimal dual bound for normal termination solvers More... | |
bool | warmStartNodeTransferring |
indicate that the first node transferring at warm start (restart) More... | |
bool | hugeImbalance |
indicate that a huge imbalance in solvers is detected More... | |
bool | isHeaderPrinted |
indicate if heeader is printed or not More... | |
bool | givenGapIsReached |
shows if specified gap is reached or not More... | |
bool | aSolverTerminatedWithOptimality |
indicate if a solver terminated with proving optimality of the problem More... | |
BbParaSolution * | pendingSolution |
pending solution during merging More... | |
Protected Attributes inherited from ParaLoadCoordinator | |
int | nHandlers |
number of valid handlers More... | |
MessageHandlerFunctionPointer * | messageHandler |
message handlers table for primary phase More... | |
MessageHandlerFunctionPointer * | racingRampUpMessageHandler |
message handlers table for racing stage More... | |
int | globalSubtreeIdGen |
global subtree id generator More... | |
ParaComm * | paraComm |
communicator used More... | |
ParaParamSet * | paraParams |
UG parameter set. More... | |
ParaInitiator * | paraInitiator |
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... | |
ParaSolverPool * | paraSolverPool |
Pools in LoadCorrdinator. More... | |
ParaRacingSolverPool * | paraRacingSolverPool |
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... | |
ParaRacingRampUpParamSet * | racingWinnerParams |
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... | |
ParaTimer * | paraTimer |
Timers for LoadCoordinator. More... | |
ParaDeterministicTimer * | paraDetTimer |
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... | |
ParaSolution * | pendingSolution |
pending solution during merging More... | |
bool | terminationIssued |
indicate termination request is issued More... | |
std::mutex | routineMutex |
used to exclusive control of routines More... | |
Class for LoadCoordinator.
Definition at line 77 of file bbParaLoadCoordinator.h.
|
protected |
Definition at line 82 of file bbParaLoadCoordinator.h.
BbParaLoadCoordinator | ( | int | inNhanders, |
ParaComm * | inComm, | ||
ParaParamSet * | inParaParamSet, | ||
ParaInitiator * | paraInitiator, | ||
bool * | racingSolversExist, | ||
ParaTimer * | paraTimer, | ||
ParaDeterministicTimer * | detTimer | ||
) |
constructor
register message handlers
inNhanders | number of valid message handlers |
inComm | communicator used |
inParaParamSet | UG parameter set used |
paraInitiator | ParaInitiator for initialization of solving algorithm |
racingSolversExist | indicate racing solver exits or not |
paraTimer | ParaTimer used |
detTimer | DeterministicTimer used |
Definition at line 61 of file bbParaLoadCoordinator.cpp.
References UG::BgapCollectingMode, UG::CleanUp, UG::CollectOnce, UG::CommunicateTighterBoundsInRacing, UG::Deterministic, UG::DualBoundGainTest, UG::EnhancedCheckpointStartTime, UG::EnhancedFinalCheckpoint, EPSEQ, UG::FinalCheckpointGeneratingTime, UG::FinalCheckpointNSolvers, UG::GenerateReducedCheckpointFiles, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), ParaSolverPool::getNSolvers(), BbParaSolution::getObjectiveFunctionValue(), ParaInitiator::getParaInstance(), ParaInitiator::getPrefixWarm(), ParaInstance::getProbName(), ParaComm::getRank(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), ParaParamSet::getStringParamValue(), BbParaLoadCoordinator::isBreakingFinised, UG::LogSolvingStatusFilePath, ParaLoadCoordinator::logSolvingStatusFlag, UG::LogSubtreeInfo, BbParaLoadCoordinator::logSubtreeInfoFlag, UG::MergeNodesAtRestart, ParaLoadCoordinator::messageHandler, MINEPSILON, UG::MultiplierForBgapCollectingMode, UG::MultiplierForCollectingMode, BbParaLoadCoordinator::nBoundChangesOfBestNode, UG::NBoundChangesOfMergeNode, UG::NChangeIntoCollectingMode, UG::NChangeIntoCollectingModeNSolvers, ParaLoadCoordinator::nHandlers, BbParaLoadCoordinator::nNormalSelection, UG::NSolverNodesStartBreaking, UG::NStopBreaking, BbParaLoadCoordinator::ofsLogSubtreeInfo, BbParaLoadCoordinator::ofsTabularSolvingStatus, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::osLogSubtreeInfo, BbParaLoadCoordinator::osTabularSolvingStatus, UG::OutputTabularSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatusFlag, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToGenerateCPF, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::processTagAllowToBeInCollectingMode(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), ParaLoadCoordinator::processTagHardTimeLimit(), BbParaLoadCoordinator::processTagLbBoundTightened(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSelfSplitFinished(), BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagSolution(), BbParaLoadCoordinator::processTagSubtreeRootNodeStartComputation(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), ParaLoadCoordinator::processTagTerminated(), BbParaLoadCoordinator::processTagTermStateForInterruption(), ParaLoadCoordinator::processTagToken(), BbParaLoadCoordinator::processTagUbBoundTightened(), UG::Quiet, ParaLoadCoordinator::racingRampUpMessageHandler, UG::RampUpPhaseProcess, UG::RandomNodeSelectionRatio, BbParaLoadCoordinator::selfSplitFinisedSolvers, ParaParamSet::setIntParamValue(), ParaParamSet::setRealParamValue(), UG::TagAllowToBeInCollectingMode, UG::TagAnotherNodeRequest, UG::TagCompletionOfCalculation, UG::TagHardTimeLimit, UG::TagLbBoundTightenedIndex, UG::TagNewSubtreeRootNode, UG::TagReassignSelfSplitSubtreeRootNode, UG::TagSelfSlpitNodeCalcuationState, UG::TagSelfSplitFinished, UG::TagSelfSplitTermStateForInterruption, UG::TagSolution, UG::TagSolverState, UG::TagSubtreeRootNodeStartComputation, UG::TagSubtreeRootNodeToBeRemoved, UG::TagTerminated, UG::TagTermStateForInterruption, UG::TagToken, UG::TagUbBoundTightenedIndex, UG::TimeLimit, and BbParaLoadCoordinator::winnerSolverNodesCollected.
|
virtual |
destructor
write final solution
this function cannot be overwritten, should turn off outputTabularSolvingStatusFlag, before destruct
Definition at line 375 of file bbParaLoadCoordinator.cpp.
References ABORT_LOGICAL_ERROR1, ABORT_LOGICAL_ERROR3, BbParaLoadCoordinator::allCompInfeasibleAfterSolution, ParaLoadCoordinator::computationIsInterrupted, UG::ComputingWasInterrupted, BbParaInitiator::convertToExternalValue(), BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaNodePool::extractNode(), UG::FinalCheckpointGeneratingTime, UG::GenerateReducedCheckpointFiles, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), BbParaNodePool::getMaxUsageOfPool(), BbParaRacingSolverPool::getNnodesSolvedInBestSolver(), ParaSolverPool::getNSolvers(), ParaSolverPool::getNumActiveSolvers(), ParaRacingSolverPool::getNumActiveSolvers(), BbParaNodePool::getNumOfNodes(), BbParaSolution::getObjectiveFunctionValue(), ParaParamSet::getRealParamValue(), UG::GivenGapIsReached, BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinator::hardTimeLimitIsReached, UG::HardTimeLimitIsReached, BbParaLoadCoordinatorTerminationState::idleTime, UG::InitialNodesGenerated, BbParaLoadCoordinator::initialNodesGenerated, BbParaNodePool::insert(), ParaLoadCoordinator::interruptedFromControlTerminal, ParaLoadCoordinator::interruptIsRequested, ParaLoadCoordinatorTerminationState::isCheckpointState, BbParaNodePool::isEmpty(), BbParaLoadCoordinator::isRacingStage(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::logTasksTransferFlag, ParaLoadCoordinator::memoryLimitIsReached, UG::MemoryLimitIsReached, ParaLoadCoordinator::messageHandler, BbParaLoadCoordinator::minmalDualBoundNormalTermSolvers, BbParaLoadCoordinatorTerminationState::mMaxCollectingNodes, UG::NChangeIntoCollectingMode, BbParaLoadCoordinatorTerminationState::nDeletedInLc, BbParaLoadCoordinatorTerminationState::nFailedToSendBack, BbParaLoadCoordinatorTerminationState::nFailedToSendBackAnotherNode, BbParaLoadCoordinatorTerminationState::nInitialP, BbParaLoadCoordinatorTerminationState::nMaxUsageOfNodePool, BbParaLoadCoordinatorTerminationState::nNodesInNodePool, BbParaLoadCoordinatorTerminationState::nNodesLeftInAllSolvers, BbParaLoadCoordinator::nodesMerger, ParaLoadCoordinatorTerminationState::nReceived, ParaLoadCoordinatorTerminationState::nSent, BbParaLoadCoordinatorTerminationState::nSentBackImmediately, BbParaLoadCoordinatorTerminationState::nSentBackImmediatelyAnotherNode, ParaLoadCoordinator::nSolvedRacingTermination, ParaLoadCoordinator::nTerminated, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::osLogTasksTransfer, ParaLoadCoordinator::osStatisticsFinalRun, BbParaLoadCoordinator::osTabularSolvingStatus, ParaInitiator::outputFinalSolverStatistics(), BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::outputTabularSolvingStatusFlag, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToGenerateCPF, BbParaLoadCoordinator::paraNodePoolBufferToRestart, BbParaLoadCoordinator::paraNodePoolToRestart, BbParaLoadCoordinator::paraNodeToKeepCheckpointFileNodes, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaComm::probe(), UG::ProblemWasSolved, ParaLoadCoordinator::racingSolversExist, ParaLoadCoordinator::racingTermination, ParaLoadCoordinator::racingWinnerParams, UG::RequestedSubProblemsWereSolved, ParaLoadCoordinator::runningPhase, BbParaLoadCoordinatorTerminationState::runningTime, BbParaInitiator::setDualBound(), BbParaInitiator::setFinalSolverStatus(), BbParaInitiator::setNumberOfNodesSolved(), UG::StatisticsToStdout, BbParaLoadCoordinator::terminateAllSolvers(), UG::TerminationPhase, BbParaLoadCoordinatorTerminationState::toString(), BbParaLoadCoordinator::unprocessedParaNodes, BbParaLoadCoordinator::updateCheckpointFiles(), and ParaInitiator::writeSolution().
|
protectedvirtual |
change search strategy of all solvers to best bound bound search strategy
Definition at line 7210 of file bbParaLoadCoordinator.cpp.
Referenced by BbParaLoadCoordinator::run().
|
protectedvirtual |
change search strategy of all solvers to original search strategy
Definition at line 7225 of file bbParaLoadCoordinator.cpp.
Referenced by BbParaLoadCoordinator::run().
|
protectedvirtual |
inactivate racing solver pool
if the computation is interrupted, paraRacingSolverPool is needed to output statistics
rank | winner solver rank |
Definition at line 6989 of file bbParaLoadCoordinator.cpp.
References ParaRacingSolverPool::getNumActiveSolvers(), ParaLoadCoordinator::interruptIsRequested, BbParaNodePool::isEmpty(), ParaSolverPool::isSolverActive(), ParaRacingSolverPool::isSolverActive(), BbParaSolverPool::isSolverInCollectingMode(), ParaLoadCoordinator::nSolvedInInterruptedRacingSolvers, ParaLoadCoordinator::nTasksLeftInInterruptedRacingSolvers, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToRestart, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, BbParaLoadCoordinator::restartingRacing, and BbParaLoadCoordinator::warmStartNodeTransferring.
Referenced by BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), and BbParaLoadCoordinator::processTagTermStateForInterruption().
|
protectedvirtual |
check if Gap reached or not
Definition at line 525 of file bbParaLoadCoordinator.h.
|
protectedvirtual |
check if current stage is in racing or not
Definition at line 509 of file bbParaLoadCoordinator.h.
References ParaParamSet::getIntParamValue(), ParaLoadCoordinator::paraParams, ParaLoadCoordinator::racingWinner, UG::RampUpPhase, UG::RampUpPhaseProcess, and ParaLoadCoordinator::runningPhase.
Referenced by BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::sendCutOffValue(), BbParaLoadCoordinator::sendIncumbentValue(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protectedvirtual |
start a new racing
activate racing solver with root node
output start racing to log file, if it is necessary
Definition at line 7129 of file bbParaLoadCoordinator.cpp.
References BbParaRacingSolverPool::activate(), UG::Deterministic, BbParaNodePool::extractNode(), ParaParamSet::getBoolParamValue(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaNodePool::getNumOfNodes(), ParaComm::getSize(), ParaLoadCoordinator::interruptIsRequested, BbParaNodePool::isEmpty(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::logTasksTransferFlag, ParaLoadCoordinatorTerminationState::nSent, ParaLoadCoordinator::osLogSolvingStatus, PARA_COMM_CALL, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraTimer, ParaLoadCoordinator::racingTermination, BbParaRacingSolverPool::reset(), BbParaNode::send(), ParaComm::send(), UG::TagKeepRacing, UG::TagToken, and ParaLoadCoordinator::writeTransferLogInRacing().
Referenced by BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), and BbParaLoadCoordinator::run().
|
protectedvirtual |
output solving status in tabular form
racing ramp-up stage now
incumbent | character to show incumbent is obtained '*', if it is not incumbnet ' ' |
Definition at line 3800 of file bbParaLoadCoordinator.cpp.
References BbParaInitiator::convertToExternalValue(), UG::displayInfOverThisValue, EPSEQ, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, UG::GenerateReducedCheckpointFiles, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaInitiator::getEpsilon(), BbParaInitiator::getGap(), BbParaSolverPoolForMinimization::getGlobalBestDualBoundValue(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), BbParaSolverPool::getNnodesSolvedInSolvers(), ParaSolverPool::getNumActiveSolvers(), ParaRacingSolverPool::getNumActiveSolvers(), BbParaNodePool::getNumOfNodes(), BbParaSolution::getObjectiveFunctionValue(), BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, BbParaSolverPool::isActive(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::nSolvedInInterruptedRacingSolvers, ParaLoadCoordinator::nSolvedRacingTermination, ParaLoadCoordinator::nTasksLeftInInterruptedRacingSolvers, BbParaLoadCoordinator::osTabularSolvingStatus, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodeToKeepCheckpointFileNodes, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaLoadCoordinator::racingTermination, ParaLoadCoordinator::racingWinnerParams, UG::RampUpPhaseProcess, and BbParaLoadCoordinator::unprocessedParaNodes.
Referenced by BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSolution(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protectedvirtual |
output tabular solving status header
Definition at line 3770 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinator::isHeaderPrinted, and BbParaLoadCoordinator::osTabularSolvingStatus.
Referenced by BbParaLoadCoordinator::run().
|
protectedvirtual |
function to process TagCompletionOfCalculation message in racing ramp-up stage
source | source solver rank |
tag | TagCompletionOfCalculation |
Implements ParaLoadCoordinator.
Definition at line 6130 of file bbParaLoadCoordinator.cpp.
References UG::CommunicateTighterBoundsInRacing, UG::CompInterruptedInRacingStage, UG::CompTerminatedByAnotherTask, UG::CompTerminatedByInterruptRequest, UG::CompTerminatedByMemoryLimit, UG::CompTerminatedByTimeLimit, UG::CompTerminatedInRacingStage, BbParaInitiator::convertToExternalValue(), ParaComm::createParaCalculationState(), ParaComm::createParaSolverTerminationState(), EPSEQ, EPSLE, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaCalculationState::getAverageNodeCompTimeExcpetRoot(), BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaCalculationState::getCompTime(), ParaSolverTerminationState::getDeterministicTime(), BbParaCalculationState::getDualBoundValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), ParaInitiator::getEpsilon(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), BbParaCalculationState::getNRestarts(), BbParaInitiator::getNSolutions(), ParaCalculationState::getNSolved(), ParaRacingSolverPool::getNumActiveSolvers(), BbParaNodePool::getNumOfNodes(), BbParaSolution::getObjectiveFunctionValue(), BbParaCalculationState::getRootTime(), BbParaCalculationState::getTerminationState(), BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaNodePool::isEmpty(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::memoryLimitIsReached, BbParaLoadCoordinator::minmalDualBoundNormalTermSolvers, BbParaLoadCoordinator::newRacing(), ParaLoadCoordinator::nSolvedRacingTermination, UG::OmitInfeasibleTerminationInRacing, UG::OmitTerminationNSolutionsInRacing, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::osStatisticsRacingRampUp, BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::outputTabularSolvingStatusFlag, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraTimer, UG::Quiet, ParaLoadCoordinator::racingTermination, ParaCalculationState::receive(), ParaSolverTerminationState::receive(), ParaComm::send(), UG::StatisticsToStdout, UG::TagAckCompletion, UG::TagTermStateForInterruption, BbParaLoadCoordinator::terminateAllSolvers(), THROW_LOGICAL_ERROR2, ParaSolverTerminationState::toString(), ParaDeterministicTimer::update(), UG::WaitTerminationOfThreads, BbParaLoadCoordinator::warmStartNodeTransferring, and ParaLoadCoordinator::writeTransferLogInRacing().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
message handlers specialized for racing ramp-up
function to process TagSolverState message in racing ramp-up stage
the following should be before noticationId back to the source solver
source | source solver rank |
tag | TagSolverState |
Implements ParaLoadCoordinator.
Definition at line 5958 of file bbParaLoadCoordinator.cpp.
References BbParaInitiator::convertToExternalValue(), ParaComm::createParaSolverState(), UG::displayInfOverThisValue, UG::DistributeBestPrimalSolution, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaInitiator::getAbsgap(), BbParaInitiator::getAbsgapValue(), BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), BbParaSolverState::getDeterministicTime(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), BbParaInitiator::getGap(), BbParaInitiator::getGapValue(), BbParaInitiator::getGlobalBestIncumbentSolution(), BbParaSolverState::getGlobalBestPrimalBoundValue(), BbParaSolverState::getNNodesLeft(), BbParaSolverState::getNNodesSolved(), BbParaSolverState::getNotificaionId(), ParaRacingSolverPool::getNSolvers(), BbParaNodePool::getNumOfNodes(), BbParaSolution::getObjectiveFunctionValue(), BbParaSolverState::getSolverLocalBestDualBoundValue(), BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaSolverPool::interruptRequested(), ParaSolverPool::isInterruptRequested(), BbParaSolverState::isRacingStage(), ParaRacingSolverPool::isSolverActive(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, UG::NoUpperBoundTransferInRacing, ParaLoadCoordinator::osLogSolvingStatus, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, UG::ParaUNSIGNED, ParaSolverState::receive(), BbParaLoadCoordinator::restartingRacing, ParaSolution::send(), ParaComm::send(), UG::TagGivenGapIsReached, UG::TagLCBestBoundValue, UG::TagNotificationId, and ParaDeterministicTimer::update().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagAllowToBeInCollectingMode message
source | source solver rank |
tag | TagAllowToBeInCollectingMode |
Definition at line 2702 of file bbParaLoadCoordinator.cpp.
References PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraSolverPool, ParaComm::receive(), and UG::TagAllowToBeInCollectingMode.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagAnotherNodeRequest message
source | source solver rank |
tag | TagAnotherNodeRequest |
Definition at line 2569 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinator::averageLastSeveralDualBoundGains, UG::BgapStopSolvingMode, BbParaInitiator::convertToExternalValue(), UG::displayInfOverThisValue, BbParaNodePool::extractNode(), BbParaNodePool::getBestDualBoundValue(), BbParaNode::getDiffSubproblem(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaInitiator::getGap(), BbParaInitiator::getGlobalBestIncumbentSolution(), BbParaNode::getMergeNodeInfo(), BbParaNodePool::getNumOfGoodNodes(), BbParaSolution::getObjectiveFunctionValue(), ParaParamSet::getRealParamValue(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, BbParaNodePool::insert(), BbParaNodePool::isEmpty(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, BbParaNodesMerger::mergeNodes(), BbParaLoadCoordinatorTerminationState::nDeletedInLc, BbParaLoadCoordinatorTerminationState::nFailedToSendBackAnotherNode, BbParaLoadCoordinator::nodesMerger, ParaLoadCoordinatorTerminationState::nSent, BbParaLoadCoordinatorTerminationState::nSentBackImmediatelyAnotherNode, ParaLoadCoordinator::osLogSolvingStatus, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, REALABS, ParaComm::receive(), ParaComm::send(), BbParaNode::setDualBoundValue(), BbParaNode::setInitialDualBoundValue(), UG::TagAnotherNodeRequest, UG::TagNoNodes, and ParaLoadCoordinator::writeTransferLog().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagCompletionOfCalculation message
When starts with racing ramp-up, solvers except winner should be terminated in this state
in this case the following two numbers should be different
when it is the first solver terminated (this have to be checked very carefully for restart racing (no debug)
source | source solver rank |
tag | TagCompletionOfCalculation |
Implements ParaLoadCoordinator.
Definition at line 1730 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinator::allCompInfeasibleAfterSolution, BbParaNode::areNodesCollected(), UG::CheckEffectOfRootNodePreprocesses, UG::CompInterruptedInMerging, UG::CompInterruptedInRacingStage, UG::CompTerminatedByAnotherTask, UG::CompTerminatedByInterruptRequest, UG::CompTerminatedByMemoryLimit, UG::CompTerminatedByTimeLimit, UG::CompTerminatedInRacingStage, UG::CompTerminatedNormally, BbParaInitiator::convertToExternalValue(), ParaComm::createParaCalculationState(), UG::Deterministic, UG::EnhancedCheckpointInterval, UG::EnhancedFinalCheckpoint, EPSEQ, EPSLE, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, UG::FinalCheckpointGeneratingTime, BbParaNodesMerger::generateMergeNodesCandidates(), UG::GenerateReducedCheckpointFiles, BbParaInitiator::getAbsgap(), BbParaInitiator::getAbsgapValue(), BbParaNode::getAncestor(), BbParaCalculationState::getAverageNodeCompTimeExcpetRoot(), BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaCalculationState::getCompTime(), ParaSolverPool::getCurrentTask(), BbParaCalculationState::getDualBoundValue(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), ParaInitiator::getEpsilon(), BbParaInitiator::getGap(), BbParaInitiator::getGapValue(), BbParaInitiator::getGlobalBestIncumbentSolution(), BbParaNode::getInitialDualBoundValue(), ParaParamSet::getIntParamValue(), BbParaNode::getMergeNodeInfo(), BbParaCalculationState::getNRestarts(), BbParaCalculationState::getNSent(), ParaCalculationState::getNSolved(), BbParaCalculationState::getNSolvedWithNoPreprocesses(), BbParaRacingSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfNodes(), BbParaSolverPool::getNumOfNodesSolved(), BbParaSolution::getObjectiveFunctionValue(), ParaParamSet::getRealParamValue(), BbParaCalculationState::getRootTime(), BbParaCalculationState::getTerminationState(), BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinator::initialNodesGenerated, UG::InitialNodesGeneration, BbParaNodePool::insert(), BbParaSolverPool::isSolverActive(), ParaRacingSolverPool::isSolverActive(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::memoryLimitIsReached, BbParaNodesMerger::mergeNodes(), BbParaLoadCoordinator::merging, BbParaLoadCoordinator::minmalDualBoundNormalTermSolvers, BbParaLoadCoordinator::nCollectedSolvers, BbParaLoadCoordinator::nodesMerger, ParaLoadCoordinator::nSolvedRacingTermination, UG::NumberOfInitialNodes, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::osStatisticsRacingRampUp, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToRestart, BbParaLoadCoordinator::paraNodePoolToRestart, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaLoadCoordinator::racingTermination, ParaLoadCoordinator::racingWinner, ParaCalculationState::receive(), BbParaNodesMerger::regenerateMergeNodesCandidates(), ParaLoadCoordinator::runningPhase, ParaComm::send(), BbParaLoadCoordinator::sendInterruptRequest(), BbParaNode::setDualBoundValue(), UG::TagTerminateRequest, UG::TagToken, ParaSolverPool::terminateRequested(), UG::TerminationPhase, THROW_LOGICAL_ERROR2, BbParaNode::toSimpleString(), BbParaLoadCoordinator::updateCheckpointFiles(), BbParaLoadCoordinator::winnerSolverNodesCollected, BbParaLoadCoordinator::writeSubtreeInfo(), ParaLoadCoordinator::writeTransferLog(), and ParaLoadCoordinator::writeTransferLogInRacing().
|
protectedvirtual |
function to process TagLbBoundTightened message
source | source solver rank |
tag | TagLbBoundTightened |
Definition at line 2717 of file bbParaLoadCoordinator.cpp.
References EPSLT, ParaRacingSolverPool::getNumActiveSolvers(), ParaRacingSolverPool::getNumInactiveSolvers(), MINEPSILON, PARA_COMM_CALL, ParaLoadCoordinator::paraComm, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, UG::ParaINT, ParaLoadCoordinator::paraRacingSolverPool, ParaComm::receive(), ParaComm::send(), UG::TagLbBoundTightenedBound, and UG::TagLbBoundTightenedIndex.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagNewSubtreeRootNode message
source | source solver rank |
tag | TagNewSubtreeRootNode |
Definition at line 2815 of file bbParaLoadCoordinator.cpp.
References BbParaInitiator::convertToExternalValue(), ParaComm::createParaTask(), BbParaNode::getDiffSubproblem(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaLoadCoordinator::givenGapIsReached, ParaLoadCoordinator::hardTimeLimitIsReached, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::memoryLimitIsReached, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, BbParaNode::receiveNewSubtreeRoot(), and BbParaNode::toSimpleString().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagReassignSelfSplitSubtreeRootNode message
source | source solver rank |
tag | TagReassignSelfSplitSubtreeRootNode |
Definition at line 2944 of file bbParaLoadCoordinator.cpp.
References BbParaInitiator::convertToExternalValue(), ParaComm::createParaTask(), BbParaNode::getDiffSubproblem(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaLoadCoordinator::givenGapIsReached, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaNodePool::insert(), ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::memoryLimitIsReached, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, BbParaNode::receiveSubtreeRootNodeId(), UG::TagReassignSelfSplitSubtreeRootNode, and BbParaNode::toSimpleString().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagSelfSlpitNodeCalcuationState message
When starts with racing ramp-up, solvers except winner should be terminated in this state
When starts with racing ramp-up, solvers except winner should be terminated in this state
in this case the following two numbers should be different
source | source solver rank |
tag | TagSelfSlpitNodeCalcuationState |
Definition at line 2996 of file bbParaLoadCoordinator.cpp.
References BbParaSolverPool::addTotalNodesSolved(), BbParaLoadCoordinator::allCompInfeasibleAfterSolution, BbParaNode::areNodesCollected(), UG::CompTerminatedByAnotherTask, UG::CompTerminatedByInterruptRequest, UG::CompTerminatedByMemoryLimit, UG::CompTerminatedByTimeLimit, UG::CompTerminatedNormally, BbParaInitiator::convertToExternalValue(), ParaComm::createParaCalculationState(), BbParaSolverPool::deleteCurrentSubtreeRootNode(), UG::Deterministic, UG::EnhancedCheckpointInterval, UG::EnhancedFinalCheckpoint, EPSEQ, EPSLE, UG::FinalCheckpointGeneratingTime, BbParaCalculationState::getAverageNodeCompTimeExcpetRoot(), ParaParamSet::getBoolParamValue(), ParaCalculationState::getCompTime(), BbParaSolverPool::getCurrentTask(), BbParaNode::getDiffSubproblem(), BbParaCalculationState::getDualBoundValue(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), ParaInitiator::getEpsilon(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), BbParaCalculationState::getNRestarts(), BbParaCalculationState::getNSelfSplitNodesLeft(), BbParaCalculationState::getNSent(), ParaCalculationState::getNSolved(), BbParaSolverPool::getNumOfNodesSolved(), BbParaSolution::getObjectiveFunctionValue(), ParaParamSet::getRealParamValue(), BbParaCalculationState::getRootTime(), BbParaSolverPool::getSelfSplitSubtreeRootNodes(), BbParaSolverPool::getSwichOutTime(), BbParaCalculationState::getTerminationState(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaNodePool::insert(), ParaRacingSolverPool::isSolverActive(), BbParaSolverPool::isSolverInCollectingMode(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::memoryLimitIsReached, BbParaLoadCoordinator::minmalDualBoundNormalTermSolvers, BbParaLoadCoordinator::nCollectedSolvers, BbParaNode::next, ParaLoadCoordinator::osLogSolvingStatus, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolToRestart, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaCalculationState::receive(), BbParaSolverPool::resetCountersInSolver(), ParaLoadCoordinator::runningPhase, ParaComm::send(), BbParaLoadCoordinator::sendInterruptRequest(), BbParaSolverPool::setSwichOutTime(), BbParaSolverPool::switchInCollectingMode(), BbParaSolverPool::switchOutCollectingMode(), UG::TagTerminateRequest, UG::TagToken, ParaSolverPool::terminateRequested(), UG::TerminationPhase, THROW_LOGICAL_ERROR2, ParaTask::toSimpleString(), BbParaNode::toSimpleString(), BbParaLoadCoordinator::updateCheckpointFiles(), BbParaLoadCoordinator::writeSubtreeInfo(), and ParaLoadCoordinator::writeTransferLog().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagSelfSplitFinished message
source | source solver rank |
tag | TagSelfSplitFinished |
Definition at line 2797 of file bbParaLoadCoordinator.cpp.
References PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaComm::receive(), BbParaLoadCoordinator::selfSplitFinisedSolvers, and UG::TagSelfSplitFinished.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagSelfSplitTermStateForInterruption message
checkpoint; This is normal termination
in order to save termination status to check point file, keep this information to solver pool
unexpected mode
source | source solver rank |
tag | TagSelfSplitTermStateForInterruption |
Definition at line 3697 of file bbParaLoadCoordinator.cpp.
References UG::CompTerminatedByMemoryLimit, UG::CompTerminatedByTimeLimit, ParaComm::createParaSolverTerminationState(), BbParaLoadCoordinator::firstCollectingModeState, BbParaSolverTerminationState::getCalcTerminationState(), ParaSolverTerminationState::getDeterministicTime(), ParaDeterministicTimer::getElapsedTime(), ParaSolverTerminationState::getInterruptedMode(), ParaLoadCoordinator::hardTimeLimitIsReached, BbParaNodePool::isEmpty(), BbParaSolverPool::isInCollectingMode(), ParaSolverPool::isTerminateRequested(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::memoryLimitIsReached, BbParaLoadCoordinatorTerminationState::nFailedToSendBack, BbParaLoadCoordinatorTerminationState::nSentBackImmediately, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolToRestart, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, UG::RampUpPhase, ParaSolverTerminationState::receive(), ParaLoadCoordinator::runningPhase, ParaComm::send(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), UG::TagAckCompletion, UG::TagSelfSplitTermStateForInterruption, UG::TerminationPhase, THROW_LOGICAL_ERROR4, and ParaDeterministicTimer::update().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagSolution message
output tabular solving status
save incumbent solution
source | source solver rank |
tag | TagSolution |
Implements ParaLoadCoordinator.
Definition at line 1007 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinator::allCompInfeasibleAfterSolution, BbParaInitiator::canGenerateSpecialCutOffValue(), UG::Checkpoint, UG::CheckpointFilePath, BbParaInitiator::convertToExternalValue(), ParaComm::createParaSolution(), ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), BbParaSolution::getObjectiveFunctionValue(), ParaInitiator::getParaInstance(), ParaInstance::getProbName(), ParaComm::getRank(), ParaParamSet::getStringParamValue(), ParaLoadCoordinator::logSolvingStatusFlag, UG::MaxStrLen, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::outputTabularSolvingStatusFlag, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraTimer, BbParaLoadCoordinator::primalUpdated, UG::RampUpPhase, UG::RampUpPhaseProcess, ParaSolution::receive(), ParaLoadCoordinator::runningPhase, BbParaLoadCoordinator::sendCutOffValue(), BbParaLoadCoordinator::sendIncumbentValue(), BbParaLoadCoordinator::updateSolution(), and ParaInitiator::writeCheckpointSolution().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagSolverState message
not update paraSolverPool. The solver is inactive in paraSolverPool
log the number of nodes transfer
the following should be before noticationId back to the source solver
source | source solver rank |
tag | TagSolverState |
Implements ParaLoadCoordinator.
Definition at line 1098 of file bbParaLoadCoordinator.cpp.
References UG::ABgapForSwitchingToBestSolver, BbParaLoadCoordinator::averageDualBoundGain, BbParaLoadCoordinator::averageLastSeveralDualBoundGains, BbParaLoadCoordinator::breakingSolverId, BbParaInitiator::convertToExternalValue(), ParaComm::createParaSolverState(), UG::Deterministic, UG::displayInfOverThisValue, UG::DistributeBestPrimalSolution, UG::DualBoundGainBranchRatio, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaLoadCoordinator::firstCollectingModeState, UG::GenerateReducedCheckpointFiles, BbParaInitiator::getAbsgap(), BbParaInitiator::getAbsgapValue(), BbParaSolverState::getAverageDualBoundGain(), BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaSolverPool::getCurrentTask(), BbParaSolverState::getDeterministicTime(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), BbParaInitiator::getGap(), BbParaInitiator::getGapValue(), BbParaSolverPoolForMinimization::getGlobalBestDualBoundValue(), BbParaInitiator::getGlobalBestIncumbentSolution(), BbParaSolverState::getGlobalBestPrimalBoundValue(), ParaParamSet::getIntParamValue(), BbParaNode::getMergeNodeInfo(), BbParaSolverPool::getNnodesInSolvers(), BbParaSolverState::getNNodesLeft(), BbParaSolverState::getNNodesSolved(), BbParaSolverPool::getNnodesSolvedInSolvers(), BbParaSolverState::getNotificaionId(), ParaSolverPool::getNSolvers(), ParaSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfGoodNodes(), BbParaNodePool::getNumOfNodes(), BbParaSolverPool::getNumOfNodesLeftInBestSolver(), BbParaSolution::getObjectiveFunctionValue(), ParaParamSet::getRealParamValue(), BbParaSolverState::getSolverLocalBestDualBoundValue(), BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinator::initialNodesGenerated, UG::InitialNodesGeneration, BbParaNodePool::insert(), ParaSolverPool::interruptRequested(), BbParaLoadCoordinator::isBreakingFinised, BbParaLoadCoordinator::isCollectingModeRestarted, BbParaSolverPool::isDualBounGainTesting(), BbParaSolverPool::isInCollectingMode(), ParaSolverPool::isInterruptRequested(), BbParaLoadCoordinator::isRacingStage(), BbParaSolverState::isRacingStage(), ParaTask::isRootTask(), BbParaSolverPool::isSolverActive(), ParaSolverPool::isSolverActive(), BbParaSolverPool::isSolverInCollectingMode(), BbParaLoadCoordinator::lastSeveralDualBoundGains, BbParaLoadCoordinator::lcts, UG::LightWeightNodePenartyInCollecting, ParaLoadCoordinator::logSolvingStatusFlag, BbParaNodesMerger::mergeNodes(), BbParaLoadCoordinator::minmalDualBoundNormalTermSolvers, UG::MultiplierForBreakingTargetBound, BbParaLoadCoordinator::nAverageDualBoundGain, UG::NChangeIntoCollectingMode, BbParaLoadCoordinatorTerminationState::nNodesOutputLog, UG::NNodesTransferLogging, BbParaLoadCoordinator::nodesMerger, UG::NormalRunningPhase, ParaLoadCoordinatorTerminationState::nReceived, ParaLoadCoordinatorTerminationState::nSent, UG::NSolverNodesStartBreaking, UG::NStopBreaking, UG::NTransferLimitForBreaking, UG::NumberOfInitialNodes, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::osTabularSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatusFlag, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToGenerateCPF, BbParaLoadCoordinator::paraNodePoolBufferToRestart, BbParaLoadCoordinator::paraNodeToKeepCheckpointFileNodes, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, UG::ParaUNSIGNED, ParaLoadCoordinator::racingTermination, UG::RampUpPhase, ParaSolverState::receive(), ParaLoadCoordinator::runningPhase, ParaSolution::send(), ParaComm::send(), BbParaLoadCoordinator::statEmptyNodePoolTime, UG::TagBreaking, UG::TagCollectAllNodes, UG::TagGivenGapIsReached, UG::TagLCBestBoundValue, UG::TagNotificationId, UG::TerminationPhase, UG::TimeToIncreaseCMS, BbParaLoadCoordinatorTerminationState::tNodesOutputLog, UG::TNodesTransferLogging, ParaTask::toSimpleString(), BbParaLoadCoordinator::unprocessedParaNodes, and ParaDeterministicTimer::update().
|
protectedvirtual |
function to process TagSubtreeRootNodeStartComputation message
source | source solver rank |
tag | TagSubtreeRootNodeStartComputation |
Definition at line 2862 of file bbParaLoadCoordinator.cpp.
References ParaComm::createParaTask(), ParaTimer::getElapsedTime(), BbParaLoadCoordinator::givenGapIsReached, ParaLoadCoordinator::hardTimeLimitIsReached, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::memoryLimitIsReached, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, BbParaNode::receiveSubtreeRootNodeId(), and UG::TagSubtreeRootNodeStartComputation.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagSubtreeRootNodeToBeRemoved message
source | source solver rank |
tag | TagSubtreeRootNodeToBeRemoved |
Definition at line 2893 of file bbParaLoadCoordinator.cpp.
References BbParaInitiator::convertToExternalValue(), ParaComm::createParaTask(), BbParaNode::getDiffSubproblem(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaLoadCoordinator::givenGapIsReached, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::memoryLimitIsReached, BbParaLoadCoordinatorTerminationState::nDeletedInLc, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, BbParaNode::receiveSubtreeRootNodeId(), ParaLoadCoordinator::runningPhase, UG::TagSubtreeRootNodeToBeRemoved, UG::TerminationPhase, and BbParaNode::toSimpleString().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
Message handlers.
function to process TagTask message
in the case that ParaNode received from LoadCoordinator is not implemented yet
switch-out request might be delayed to reach the target solver. This behavior affects load balancing sometimes. Therefore, if additional nodes are received, sends switch-out request again. if( runningPhase != RampUpPhase && !(paraSolverPool->isInCollectingMode()) ) { paraSolverPool->enforcedSwitchOutCollectingMode(source); } I don't want to do this. So, I decided to wait message after each notification when LC in collecting mode if necessary
source | source solver rank |
tag | TagTask |
Implements ParaLoadCoordinator.
Definition at line 831 of file bbParaLoadCoordinator.cpp.
References ParaTask::addDescendant(), BbParaNodesMerger::addNodeToMergeNodeStructs(), BbParaInitiator::convertToExternalValue(), ParaLoadCoordinator::createNewGlobalSubtreeId(), ParaComm::createParaTask(), ParaLoadCoordinator::eps, EPSLT, BbParaLoadCoordinator::firstCollectingModeState, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaSolverPool::getCurrentTask(), BbParaNode::getDepth(), BbParaNode::getDiffSubproblem(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), BbParaSolverPool::getMCollectingNodes(), ParaSolverPool::getNSolvers(), ParaSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfGoodNodes(), BbParaNodePool::getNumOfNodes(), BbParaSolution::getObjectiveFunctionValue(), ParaComm::getRank(), ParaParamSet::getRealParamValue(), ParaTask::getTaskId(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, BbParaLoadCoordinator::hugeImbalance, BbParaNodePool::insert(), BbParaLoadCoordinator::isCollectingModeRestarted, BbParaNodePool::isEmpty(), BbParaSolverPool::isInCollectingMode(), BbParaLoadCoordinator::lcts, UG::LightWeightNodePenartyInCollecting, ParaLoadCoordinator::logSolvingStatusFlag, BbParaLoadCoordinator::merging, BbParaLoadCoordinator::minDepthInWinnerSolverNodes, UG::MultiplierForCollectingMode, UG::NChangeIntoCollectingMode, BbParaLoadCoordinatorTerminationState::nDeletedInLc, BbParaLoadCoordinator::nodesMerger, ParaLoadCoordinatorTerminationState::nReceived, ParaLoadCoordinator::osLogSolvingStatus, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToRestart, BbParaLoadCoordinator::paraNodePoolToRestart, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, UG::RacingStatBranching, ParaLoadCoordinator::racingWinner, UG::RampUpPhase, BbParaNode::receive(), ParaLoadCoordinator::runningPhase, ParaComm::send(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaNode::setAncestor(), ParaTask::setGlobalSubtaskId(), UG::TagTaskReceived, BbParaNode::toSimpleString(), and BbParaLoadCoordinator::winnerSolverNodesCollected.
|
protectedvirtual |
function to process TagTermStateForInterruption message
checkpoint; This is normal termination
in order to save termination status to check point file, keep this information to solver pool
racing ramp-up
unexpected mode
source | source solver rank |
tag | TagUbBoundTightened |
Definition at line 2397 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinator::breakingSolverId, UG::CompTerminatedByMemoryLimit, UG::CompTerminatedByTimeLimit, ParaComm::createParaSolverTerminationState(), BbParaLoadCoordinator::firstCollectingModeState, ParaParamSet::getBoolParamValue(), BbParaSolverTerminationState::getCalcTerminationState(), ParaSolverTerminationState::getDeterministicTime(), ParaDeterministicTimer::getElapsedTime(), ParaSolverTerminationState::getInterruptedMode(), ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaLoadCoordinator::isBreakingFinised, BbParaNodePool::isEmpty(), BbParaSolverPool::isInCollectingMode(), ParaRacingSolverPool::isSolverActive(), BbParaSolverPool::isTerminateRequested(), ParaSolverPool::isTerminateRequested(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::memoryLimitIsReached, BbParaLoadCoordinatorTerminationState::nFailedToSendBack, BbParaLoadCoordinatorTerminationState::nSentBackImmediately, ParaLoadCoordinator::nTerminated, ParaLoadCoordinator::osStatisticsRacingRampUp, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolToRestart, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, UG::Quiet, ParaLoadCoordinator::racingTermination, UG::RampUpPhase, ParaSolverTerminationState::receive(), ParaLoadCoordinator::runningPhase, ParaComm::send(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), UG::TagAckCompletion, UG::TagTermStateForInterruption, BbParaLoadCoordinator::terminateAllSolvers(), UG::TerminationPhase, THROW_LOGICAL_ERROR4, ParaSolverTerminationState::toString(), and ParaDeterministicTimer::update().
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
function to process TagUbBoundTightened message
source | source solver rank |
tag | TagUbBoundTightened |
Definition at line 2757 of file bbParaLoadCoordinator.cpp.
References EPSGT, ParaRacingSolverPool::getNumActiveSolvers(), ParaRacingSolverPool::getNumInactiveSolvers(), MINEPSILON, PARA_COMM_CALL, ParaLoadCoordinator::paraComm, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, UG::ParaINT, ParaLoadCoordinator::paraRacingSolverPool, ParaComm::receive(), ParaComm::send(), UG::TagUbBoundTightenedBound, and UG::TagUbBoundTightenedIndex.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protectedvirtual |
restart in ramp-down phase
send interrupt request
the pupose of the updateCheckpoitFiles is two
for a timing issue, paraNodePool may not be empty. paraNodes in the pool should be just recived, because paraSolverPool was empty. Then, no check for the ancestors.
initialize paraSolerPool
Definition at line 4564 of file bbParaLoadCoordinator.cpp.
References UG::BgapCollectingMode, BbParaNodePool::extractNode(), ParaTimer::getElapsedTime(), BbParaNode::getInitialDualBoundValue(), ParaSolverPool::getNumActiveSolvers(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), BbParaLoadCoordinatorTerminationState::idleTime, BbParaNodePool::insert(), BbParaNodePool::isEmpty(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::messageHandler, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::osTabularSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatusFlag, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToRestart, BbParaLoadCoordinator::paraNodePoolToRestart, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaComm::probe(), UG::RampUpPhase, ParaLoadCoordinator::runningPhase, ParaComm::send(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaNode::setDualBoundValue(), UG::TagInterruptRequest, UG::TagRestart, THROW_LOGICAL_ERROR3, and BbParaLoadCoordinator::updateCheckpointFiles().
Referenced by BbParaLoadCoordinator::run().
|
protectedvirtual |
restart racing
recreate racing solver pool
activate racing solver with root node
Definition at line 7063 of file bbParaLoadCoordinator.cpp.
References ParaInstance::bcast(), BbParaNode::bcast(), BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), ParaInitiator::getParaInstance(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, UG::InstanceTransferMethod, ParaLoadCoordinator::interruptIsRequested, BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, BbParaLoadCoordinator::nRestartedRacing, ParaLoadCoordinatorTerminationState::nSent, ParaLoadCoordinator::osLogSolvingStatus, ParaLoadCoordinator::osStatisticsRacingRampUp, BbParaLoadCoordinator::osTabularSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatusFlag, PARA_COMM_CALL, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, ParaLoadCoordinator::paraInitiator, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraTimer, BbParaLoadCoordinator::primalUpdated, UG::Quiet, ParaInitiator::reInit(), BbParaLoadCoordinator::restartingRacing, BbParaNode::setDualBoundValue(), ParaTask::setEstimatedValue(), and BbParaNode::setInitialDualBoundValue().
Referenced by BbParaLoadCoordinator::run().
|
protectedvirtual |
run function to start main process
should not call virutal function in constructor
completion message may delay
output tabular solving status
Implements ParaLoadCoordinator.
Definition at line 4118 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinator::aSolverTerminatedWithOptimality, UG::BgapCollectingMode, BbParaLoadCoordinator::changeSearchStrategyOfAllSolversToBestBoundSearch(), BbParaLoadCoordinator::changeSearchStrategyOfAllSolversToOriginalSearch(), UG::Checkpoint, UG::CheckpointInterval, UG::Deterministic, UG::DeterministicTabularSolvingStatus, UG::DualBoundGainTest, UG::EnhancedCheckpointStartTime, UG::EnhancedFinalCheckpoint, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaNodePool::extractNode(), UG::FinalCheckpointGeneratingTime, BbParaLoadCoordinator::firstCollectingModeState, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), BbParaSolverPool::getNnodesInSolvers(), ParaSolverPool::getNSolvers(), ParaSolverPool::getNumActiveSolvers(), ParaRacingSolverPool::getNumActiveSolvers(), ParaSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfGoodNodes(), BbParaNodePool::getNumOfNodes(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), ParaRacingSolverPool::getWinner(), BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinator::hugeImbalance, UG::HugeImbalanceActiveSolverRatio, UG::HugeImbalanceThresholdTime, BbParaLoadCoordinator::hugeImbalanceTime, BbParaLoadCoordinatorTerminationState::idleTime, BbParaLoadCoordinator::initialNodesGenerated, BbParaNodePool::insert(), ParaLoadCoordinator::interruptIsRequested, BbParaLoadCoordinator::isCollectingModeRestarted, BbParaNodePool::isEmpty(), BbParaLoadCoordinator::isHeaderPrinted, ParaSolverPool::isInterruptRequested(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::memoryLimitIsReached, ParaLoadCoordinator::messageHandler, UG::MultiplierForCollectingMode, UG::NChangeIntoCollectingMode, UG::NIdleSolversToTerminate, UG::NormalRunningPhase, ParaLoadCoordinator::nTerminated, BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::outputTabularSolvingStatusFlag, BbParaLoadCoordinator::outputTabularSolvingStatusHeader(), ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToRestart, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaLoadCoordinator::previousCheckpointTime, BbParaLoadCoordinator::previousTabularOutputTime, ParaComm::probe(), ParaLoadCoordinator::racingTermination, UG::RampUpPhase, UG::RampUpPhaseProcess, UG::RestartInRampDownActiveSolverRatio, BbParaLoadCoordinator::restartInRampDownPhase(), UG::RestartInRampDownThresholdTime, ParaLoadCoordinator::runningPhase, BbParaLoadCoordinator::selfSplitFinisedSolvers, BbParaLoadCoordinator::sendInterruptRequest(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), ParaLoadCoordinator::sendRampUpToAllSolvers(), BbParaLoadCoordinator::sendRetryRampUpToAllSolvers(), BbParaLoadCoordinator::starvingTime, BbParaLoadCoordinator::statEmptyNodePoolTime, UG::TabularSolvingStatusInterval, BbParaLoadCoordinator::terminateAllSolvers(), UG::TerminationPhase, THROW_LOGICAL_ERROR2, THROW_LOGICAL_ERROR3, UG::TimeLimit, UG::TimeToIncreaseCMS, BbParaLoadCoordinator::updateCheckpointFiles(), and BbParaLoadCoordinator::winnerSolverNodesCollected.
Referenced by main(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::warmStart().
|
virtual |
run for normal ramp-up
should not call virutal function in constructor
paraNode | root ParaNode |
Reimplemented from ParaLoadCoordinator.
Definition at line 5808 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinator::averageLastSeveralDualBoundGains, UG::CollectOnce, BbParaInitiator::convertToExternalValue(), DEF_BB_PARA_COMM, UG::Deterministic, UG::displayInfOverThisValue, BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaInitiator::getGap(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), ParaSolverPool::getNSolvers(), ParaSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfGoodNodes(), ParaParamSet::getRealParamValue(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, BbParaLoadCoordinator::isHeaderPrinted, BbParaLoadCoordinator::lcts, UG::LightWeightRootNodeProcess, ParaLoadCoordinator::logSolvingStatusFlag, BbParaInitiator::makeRootNodeDiffSubproblem(), ParaLoadCoordinatorTerminationState::nSent, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatusFlag, BbParaLoadCoordinator::outputTabularSolvingStatusHeader(), PARA_COMM_CALL, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, UG::RampUpPhase, UG::RampUpPhaseProcess, UG::RatioToApplyLightWeightRootProcess, BbParaLoadCoordinator::run(), ParaLoadCoordinator::runningPhase, ParaComm::send(), UG::TagCollectAllNodes, UG::TagToken, and ParaLoadCoordinator::writeTransferLog().
|
virtual |
run for racing ramp-up
should not call virutal function in constructor
creates racing solver pool
activate racing solver with root node
NOTE that paraComm->getSize() - 1 is not always nRacingSolvers, that it other type of solvers can be working with
output start racing to log file, if it is necessary
output tabular solving status
output winner to log file, if it is necessary
paraNode | root ParaNode |
nRacingSolvers | number of racing solvers |
racingRampUpParams | racing parameters |
Reimplemented from ParaLoadCoordinator.
Definition at line 6396 of file bbParaLoadCoordinator.cpp.
References BbParaRacingSolverPool::activate(), BbParaSolverPool::activateSolver(), ParaTask::bcast(), UG::CollectOnce, BbParaInitiator::convertToExternalValue(), DEFAULT_NUM_EPSILON, UG::Deterministic, UG::DeterministicTabularSolvingStatus, EPSLT, BbParaRacingSolverPool::extractNode(), UG::FinalCheckpointGeneratingTime, ParaParamSet::getBoolParamValue(), BbParaNode::getDualBoundValue(), ParaDeterministicTimer::getElapsedTime(), ParaTimer::getElapsedTime(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), ParaSolverPool::getNSolvers(), ParaRacingSolverPool::getNumActiveSolvers(), BbParaRacingSolverPool::getNumNodesLeft(), BbParaNodePool::getNumOfNodes(), BbParaSolution::getObjectiveFunctionValue(), ParaInitiator::getParaInstance(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), ParaRacingRampUpParamSet::getStrategy(), BbParaInstance::getVarIndexRange(), ParaRacingSolverPool::getWinner(), BbParaLoadCoordinator::givenGapIsReached, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinatorTerminationState::idleTime, BbParaRacingSolverPool::inactivateSolver(), BbParaNodePool::isEmpty(), BbParaLoadCoordinator::isHeaderPrinted, ParaSolverPool::isInterruptRequested(), BbParaRacingSolverPool::isWinnerDecided(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::logTasksTransferFlag, ParaLoadCoordinator::memoryLimitIsReached, UG::MergeNodesAtRestart, BbParaLoadCoordinator::merging, BbParaLoadCoordinator::nBoundChangesOfBestNode, UG::NCollectOnce, BbParaLoadCoordinator::newRacing(), BbParaLoadCoordinator::nodesMerger, ParaLoadCoordinatorTerminationState::nSent, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::osTabularSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::outputTabularSolvingStatusFlag, BbParaLoadCoordinator::outputTabularSolvingStatusHeader(), PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraDetTimer, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, BbParaLoadCoordinator::previousTabularOutputTime, BbParaLoadCoordinator::primalUpdated, ParaComm::probe(), UG::ProhibitCollectOnceMultiplier, ParaLoadCoordinator::racingRampUpMessageHandler, UG::RacingStatBranching, ParaLoadCoordinator::racingTermination, ParaLoadCoordinator::racingWinner, ParaLoadCoordinator::racingWinnerParams, UG::RampUpPhase, UG::RampUpPhaseProcess, BbParaLoadCoordinator::restartingRacing, BbParaLoadCoordinator::restartRacing(), UG::RestartRacing, BbParaLoadCoordinator::run(), ParaLoadCoordinator::runningPhase, ParaRacingRampUpParamSet::send(), ParaComm::send(), BbParaLoadCoordinator::sendInterruptRequest(), ParaParamSet::setBoolParamValue(), ParaParamSet::setIntParamValue(), UG::StopRacingNumberOfNodesLeft, UG::StopRacingNumberOfNodesLeftMultiplier, UG::TabularSolvingStatusInterval, UG::TagCollectAllNodes, UG::TagKeepRacing, UG::TagTerminateSolvingToRestart, UG::TagToken, UG::TagWinner, THROW_LOGICAL_ERROR2, THROW_LOGICAL_ERROR3, UG::TimeLimit, BbParaLoadCoordinator::warmStartNodeTransferring, BbParaLoadCoordinator::winnerSolverNodesCollected, and ParaLoadCoordinator::writeTransferLogInRacing().
|
protectedvirtual |
send cut off value
receivedRank | solver rank which the cut off value was generated |
Definition at line 6964 of file bbParaLoadCoordinator.cpp.
References ParaParamSet::getBoolParamValue(), BbParaSolution::getCutOffValue(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaComm::getSize(), BbParaLoadCoordinator::isRacingStage(), BbParaLoadCoordinator::lcts, BbParaLoadCoordinatorTerminationState::nDeletedInLc, UG::NoUpperBoundTransferInRacing, PARA_COMM_CALL, ParaLoadCoordinator::paraComm, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, BbParaNodePool::removeBoundedNodes(), ParaComm::send(), and UG::TagCutOffValue.
Referenced by BbParaLoadCoordinator::processTagSolution().
|
protectedvirtual |
send incumbent value
receivedRank | solver rank which the incumbent value was generated |
Definition at line 6933 of file bbParaLoadCoordinator.cpp.
References ParaParamSet::getBoolParamValue(), BbParaInitiator::getGlobalBestIncumbentSolution(), BbParaSolution::getObjectiveFunctionValue(), ParaComm::getSize(), BbParaLoadCoordinator::isRacingStage(), BbParaLoadCoordinator::lcts, BbParaLoadCoordinatorTerminationState::nDeletedInLc, UG::NoUpperBoundTransferInRacing, PARA_COMM_CALL, ParaLoadCoordinator::paraComm, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, ParaLoadCoordinator::paraParams, BbParaNodePool::removeBoundedNodes(), ParaComm::send(), and UG::TagIncumbentValue.
Referenced by BbParaLoadCoordinator::processTagSolution().
|
protectedvirtual |
send interrupt request to all solvers
Implements ParaLoadCoordinator.
Definition at line 6750 of file bbParaLoadCoordinator.cpp.
References BbParaNode::collectsNodes(), UG::Deterministic, UG::EnhancedFinalCheckpoint, UG::FinalCheckpointGeneratingTime, UG::FinalCheckpointNSolvers, BbParaNode::getAncestor(), ParaParamSet::getBoolParamValue(), ParaSolverPool::getCurrentTask(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), ParaRacingSolverPool::getNSolvers(), ParaSolverPool::getNumActiveSolvers(), ParaRacingSolverPool::getNumActiveSolvers(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), ParaLoadCoordinator::interruptIsRequested, ParaSolverPool::interruptRequested(), ParaSolverPool::isInterruptRequested(), ParaSolverPool::isSolverActive(), ParaRacingSolverPool::isSolverActive(), ParaLoadCoordinator::logSolvingStatusFlag, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::osTabularSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatusFlag, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, UG::ParaINT, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaComm::send(), UG::TagInterruptRequest, UG::TagTerminateRequest, UG::TagToken, and ParaSolverPool::terminateRequested().
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), and BbParaLoadCoordinator::run().
|
protectedvirtual |
send ParaNodes to idle solvers
cannot activate
Implements ParaLoadCoordinator.
Definition at line 4699 of file bbParaLoadCoordinator.cpp.
References BbParaSolverPool::activateSolver(), BbParaLoadCoordinator::averageLastSeveralDualBoundGains, UG::CollectOnce, BbParaInitiator::convertToExternalValue(), BbParaNodesMerger::deleteMergeNodeInfo(), UG::displayInfOverThisValue, UG::EnhancedFinalCheckpoint, BbParaNodePool::extractNode(), BbParaNodePool::extractNodeRandomly(), UG::FinalCheckpointGeneratingTime, UG::GenerateReducedCheckpointFiles, BbParaInitiator::getAbsgap(), BbParaInitiator::getAbsgapValue(), BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), BbParaNode::getDiffSubproblem(), BbParaNode::getDualBoundValue(), ParaTimer::getElapsedTime(), BbParaInitiator::getGap(), BbParaInitiator::getGapValue(), BbParaSolverPoolForMinimization::getGlobalBestDualBoundValue(), BbParaInitiator::getGlobalBestIncumbentSolution(), ParaParamSet::getIntParamValue(), BbParaNode::getMergeNodeInfo(), ParaSolverPool::getNSolvers(), ParaSolverPool::getNumActiveSolvers(), ParaRacingSolverPool::getNumActiveSolvers(), ParaSolverPool::getNumInactiveSolvers(), ParaRacingSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfGoodNodes(), BbParaSolution::getObjectiveFunctionValue(), ParaParamSet::getRealParamValue(), ParaTask::getTaskId(), BbParaLoadCoordinator::givenGapIsReached, BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinator::hardTimeLimitIsReached, BbParaLoadCoordinator::hugeImbalance, BbParaLoadCoordinator::initialNodesGenerated, BbParaNodePool::insert(), BbParaNodePool::isEmpty(), BbParaInitiator::isObjIntegral(), ParaTask::isSameParetntTaskSubtaskIdAs(), BbParaLoadCoordinator::lcts, UG::LightWeightRootNodeProcess, ParaLoadCoordinator::logSolvingStatusFlag, BbParaLoadCoordinator::maxDepthInWinnerSolverNodes, ParaLoadCoordinator::memoryLimitIsReached, BbParaMergeNodeInfo_::mergedDiffSubproblem, BbParaMergeNodeInfo_::mergedTo, BbParaLoadCoordinator::merging, BbParaLoadCoordinator::minDepthInWinnerSolverNodes, MINEPSILON, UG::NChangeIntoCollectingMode, BbParaLoadCoordinatorTerminationState::nDeletedInLc, BbParaMergeNodeInfo_::nMergedNodes, BbParaLoadCoordinator::nNormalSelection, BbParaLoadCoordinator::nodesMerger, ParaLoadCoordinatorTerminationState::nSent, BbParaMergeNodeInfo_::origDiffSubproblem, ParaLoadCoordinator::osLogSolvingStatus, PARA_COMM_CALL, BbParaMergeNodeInfo_::PARA_MERGED_RPRESENTATIVE, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToGenerateCPF, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, UG::RacingStatBranching, UG::RampUpPhase, UG::RampUpPhaseProcess, UG::RandomNodeSelectionRatio, UG::RatioToApplyLightWeightRootProcess, ParaLoadCoordinator::restarted, ParaLoadCoordinator::runningPhase, ParaComm::send(), BbParaNode::setDiffSubproblem(), BbParaInitiator::setInitialStatOnDiffSubproblem(), BbParaNode::setMergeNodeInfo(), BbParaNode::setMergingStatus(), BbParaMergeNodeInfo_::status, UG::TagCollectAllNodes, UG::TerminationPhase, BbParaNode::toSimpleString(), BbParaLoadCoordinator::warmStartNodeTransferring, BbParaLoadCoordinator::winnerSolverNodesCollected, and ParaLoadCoordinator::writeTransferLog().
Referenced by BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::warmStart().
|
protectedvirtual |
notify retry ramp-up to all solvers
Reimplemented from ParaLoadCoordinator.
Definition at line 6738 of file bbParaLoadCoordinator.cpp.
References ParaComm::getSize(), PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, ParaComm::send(), and UG::TagRetryRampUp.
Referenced by BbParaLoadCoordinator::run().
void setGlobalBestIncumbentSolution | ( | ParaSolution * | sol | ) |
set global best incumbent solution
sol | incumbent solution to be set |
|
protectedvirtual |
terminate all solvers
even if racing solver is running, paraSolverPool flag is used
Reimplemented from ParaLoadCoordinator.
Definition at line 793 of file bbParaLoadCoordinator.cpp.
References UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaSolverPool::getNSolvers(), ParaRacingSolverPool::getNSolvers(), ParaComm::getSize(), ParaSolverPool::interruptRequested(), ParaSolverPool::isInterruptRequested(), ParaSolverPool::isSolverActive(), ParaRacingSolverPool::isSolverActive(), ParaSolverPool::isTerminateRequested(), PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, UG::ParaINT, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraRacingSolverPool, ParaLoadCoordinator::paraSolverPool, ParaComm::send(), UG::TagInterruptRequest, UG::TagTerminateRequest, UG::TagToken, ParaSolverPool::terminateRequested(), and ParaLoadCoordinator::terminationIssued.
Referenced by BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protectedvirtual |
function to update checkpoint files
get checkpoint time
make checkpoint time string
save nodes information
save incumbent solution
save Solver statistics
save LoadCoordinator statistics
the first time for checkpointing
save racing winner params
remove old check point files
afater checkpointing solution file exists
update last checkpoint time string
Implements ParaLoadCoordinator.
Definition at line 4992 of file bbParaLoadCoordinator.cpp.
References UG::CheckpointFilePath, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaNodePool::extractNode(), BbParaNodePool::getBestDualBoundValue(), ParaTimer::getElapsedTime(), ParaParamSet::getIntParamValue(), BbParaNodePool::getNumOfNodes(), ParaInitiator::getParaInstance(), ParaInstance::getProbName(), ParaComm::getRank(), ParaParamSet::getStringParamValue(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, BbParaNodePool::insert(), ParaLoadCoordinator::lastCheckpointTimeStr, BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, UG::MaxStrLen, UG::NEagerToSolveAtRestart, ParaLoadCoordinator::osLogSolvingStatus, BbParaLoadCoordinator::osTabularSolvingStatus, BbParaLoadCoordinator::outputTabularSolvingStatusFlag, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodePoolBufferToGenerateCPF, BbParaLoadCoordinator::paraNodePoolToRestart, BbParaLoadCoordinator::paraNodeToKeepCheckpointFileNodes, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaLoadCoordinator::racingWinnerParams, UG::RampUpPhase, UG::RampUpPhaseProcess, ParaLoadCoordinator::runningPhase, BbParaLoadCoordinator::unprocessedParaNodes, BbParaNodePool::updateDualBoundsForSavingNodes(), ParaRacingRampUpParamSet::write(), BbParaNodePool::writeBbParaNodesToCheckpointFile(), ParaInitiator::writeCheckpointSolution(), and BbParaLoadCoordinator::writeLoadCoordinatorStatisticsToCheckpointFile().
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protectedvirtual |
update incumbent solution
sol | pointer to new incumbent solution |
Definition at line 6916 of file bbParaLoadCoordinator.cpp.
References ParaSolution::clone(), BbParaInitiator::getGlobalBestIncumbentSolution(), BbParaSolution::getObjectiveFunctionValue(), ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, and BbParaInitiator::tryToSetIncumbentSolution().
Referenced by BbParaLoadCoordinator::processTagSolution().
|
virtual |
warm start (restart)
check parameter consistency
write previous statistics information
try to read racing winner params
send racing winner params: NOTE: should not broadcast. if we do it, solver routine need to recognize staring process
set solution and get internal incumbent value
in order to sort ParaNodes with new dual value, insert it to tempParaNodePool once
in order to sort ParaNodes, insert paraNodePool once
send internal incumbent value
send internal global dual bound value
racing ramp-up
send internal incumbent value
send internal global dual bound value
send internal incumbent value
send internal global dual bound value
Reimplemented from ParaLoadCoordinator.
Definition at line 5257 of file bbParaLoadCoordinator.cpp.
References BbParaNodesMerger::addNodeToMergeNodeStructs(), UG::BgapCollectingMode, UG::CheckpointFilePath, UG::CollectOnce, BbParaInitiator::convertToExternalValue(), ParaComm::createParaRacingRampUpParamSet(), UG::DistributeBestPrimalSolution, UG::DualBoundGainTest, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaNodePoolForMinimization::extractNode(), BbParaNodePool::extractNode(), BbParaNodesMerger::generateMergeNodesCandidates(), ParaInitiator::generateRacingRampUpParameterSets(), BbParaNode::getAncestor(), BbParaNodePool::getBestDualBoundValue(), ParaParamSet::getBoolParamValue(), BbParaNode::getDiffSubproblem(), ParaTimer::getElapsedTime(), BbParaInitiator::getGlobalBestIncumbentSolution(), BbParaNode::getInitialDualBoundValue(), ParaParamSet::getIntParamValue(), ParaSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfGoodNodes(), BbParaNodePoolForMinimization::getNumOfNodes(), BbParaNodePool::getNumOfNodes(), BbParaSolution::getObjectiveFunctionValue(), ParaInitiator::getParaInstance(), ParaInitiator::getPrefixWarm(), ParaInstance::getProbName(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), ParaParamSet::getStringParamValue(), BbParaInstance::getVarIndexRange(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, BbParaNodePool::insert(), BbParaNodePoolForMinimization::insert(), BbParaNodePool::isEmpty(), BbParaLoadCoordinator::lcts, ParaLoadCoordinator::logSolvingStatusFlag, UG::MaxStrLen, UG::MergeNodesAtRestart, UG::MultiplierForCollectingMode, BbParaLoadCoordinator::nBoundChangesOfBestNode, UG::NChangeIntoCollectingMode, UG::NEagerToSolveAtRestart, UG::NMergingNodesAtRestart, UG::NNodesToKeepInCheckpointFile, BbParaLoadCoordinator::nodesMerger, UG::NormalRunningPhase, ParaLoadCoordinator::osLogSolvingStatus, PARA_COMM_CALL, UG::ParaBYTE, ParaLoadCoordinator::paraComm, UG::ParaDOUBLE, ParaLoadCoordinator::paraInitiator, UG::ParaINT, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodeToKeepCheckpointFileNodes, ParaLoadCoordinator::paraParams, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, UG::Quiet, ParaLoadCoordinator::racingWinnerParams, UG::RampUpPhase, UG::RampUpPhaseProcess, ParaRacingRampUpParamSet::read(), BbParaInitiator::readParaNodeFromCheckpointFile(), ParaInitiator::readSolutionFromCheckpointFile(), ParaLoadCoordinator::restarted, BbParaLoadCoordinator::run(), ParaLoadCoordinator::runningPhase, ParaRacingRampUpParamSet::send(), ParaSolution::send(), ParaComm::send(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), ParaLoadCoordinator::sendRampUpToAllSolvers(), BbParaNode::setDualBoundValue(), ParaParamSet::setIntParamValue(), UG::TagGlobalBestDualBoundValueAtWarmStart, UG::TagIncumbentValue, UG::TagKeepRacing, BbParaNode::toString(), UG::TransferConflictCuts, UG::TransferLocalCuts, BbParaLoadCoordinator::unprocessedParaNodes, BbParaLoadCoordinator::warmStartNodeTransferring, BbParaLoadCoordinator::writePreviousStatisticsInformation(), and ParaInitiator::writeSolution().
Referenced by main().
|
protectedvirtual |
write LoadCorrdinator statistics to checkpoint file
loadCoordinatorStatisticsStream | gzstream to checkpoint file |
nSolverInfo | number of solver info. |
globalBestDualBoundValue | global best dual bound value |
externalGlobalBestDualBoundValue | external value of the global best dual bound value |
Definition at line 5223 of file bbParaLoadCoordinator.cpp.
References BbParaLoadCoordinatorTerminationState::addingNodeToMergeStructTime, BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, BbParaLoadCoordinatorTerminationState::generateMergeNodesCandidatesTime, BbParaNodesMerger::getAddingNodeToMergeStructTime(), ParaTimer::getElapsedTime(), BbParaNodesMerger::getGenerateMergeNodesCandidatesTime(), BbParaNodePool::getMaxUsageOfPool(), BbParaNodesMerger::getMergeNodeTime(), BbParaNodePool::getNumOfNodes(), BbParaNodesMerger::getRegenerateMergeNodesCandidatesTime(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, ParaLoadCoordinatorTerminationState::isCheckpointState, BbParaLoadCoordinator::lcts, BbParaLoadCoordinatorTerminationState::mergeNodeTime, BbParaLoadCoordinatorTerminationState::nMaxUsageOfNodePool, BbParaLoadCoordinatorTerminationState::nNodesInNodePool, BbParaLoadCoordinatorTerminationState::nNodesLeftInAllSolvers, BbParaLoadCoordinator::nodesMerger, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinator::paraNodePool, BbParaLoadCoordinator::paraNodeToKeepCheckpointFileNodes, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, BbParaLoadCoordinatorTerminationState::regenerateMergeNodesCandidatesTime, BbParaLoadCoordinatorTerminationState::runningTime, and BbParaLoadCoordinatorTerminationState::write().
Referenced by BbParaLoadCoordinator::updateCheckpointFiles().
|
protectedvirtual |
write previous run's statistics information
Definition at line 5731 of file bbParaLoadCoordinator.cpp.
References ParaComm::createParaSolverTerminationState(), BbParaLoadCoordinatorTerminationState::externalGlobalBestDualBoundValue, ParaInitiator::getPrefixWarm(), BbParaLoadCoordinatorTerminationState::globalBestDualBoundValue, BbParaLoadCoordinator::lcts, UG::MaxStrLen, ParaLoadCoordinatorTerminationState::nWarmStart, ParaLoadCoordinator::paraComm, ParaLoadCoordinator::paraInitiator, BbParaLoadCoordinatorTerminationState::read(), ParaSolverTerminationState::read(), BbParaLoadCoordinatorTerminationState::toString(), and ParaSolverTerminationState::toString().
Referenced by BbParaLoadCoordinator::warmStart().
|
protectedvirtual |
write subtree info.
source | solver rank |
calcState | calculation state |
Definition at line 7043 of file bbParaLoadCoordinator.cpp.
References ParaSolverPool::getCurrentTask(), ParaTimer::getElapsedTime(), BbParaLoadCoordinator::logSubtreeInfoFlag, BbParaLoadCoordinator::osLogSubtreeInfo, ParaLoadCoordinator::paraSolverPool, ParaLoadCoordinator::paraTimer, ParaTask::toSimpleString(), and ParaCalculationState::toSimpleString().
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), and BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
protected |
indicate that all computations are infeasible after a feasible solution
Definition at line 166 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSolution(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
indicate if a solver terminated with proving optimality of the problem
Definition at line 174 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::run().
|
protected |
average dual bound gain: could be negative value at restart
Definition at line 138 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSolverState().
|
protected |
average dual bound gains of last several ones
Definition at line 141 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
protected |
all nodes collecting solver Id: -1: no collecting
Definition at line 92 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSolverState(), and BbParaLoadCoordinator::processTagTermStateForInterruption().
|
protected |
status of first collecting mode -1 : have not been in collecting mode 0 : once in collecting mode 1 : collecting mode is terminated once
Definition at line 85 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::processTagTermStateForInterruption(), and BbParaLoadCoordinator::run().
|
protected |
shows if specified gap is reached or not
Definition at line 172 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagSubtreeRootNodeStartComputation(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
indicate that a huge imbalance in solvers is detected
Definition at line 169 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
protected |
start time of huge imbalance situation
Definition at line 144 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::run().
|
protected |
indicates that initial nodes have been generated
Definition at line 84 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
indicate that breaking is finished or not if bootstrap ramp-up is not specified, this flag should be always true
Definition at line 90 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::processTagSolverState(), and BbParaLoadCoordinator::processTagTermStateForInterruption().
|
protected |
this flag indicate if a collecting mode is restarted or not
Definition at line 89 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagTask(), and BbParaLoadCoordinator::run().
|
protected |
indicate if heeader is printed or not
Definition at line 171 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::outputTabularSolvingStatusHeader(), and BbParaLoadCoordinator::run().
|
protected |
keep last several dual bound gains
Definition at line 140 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSolverState().
|
protected |
LoadCoordinatorTerminationState: counters and times.
Definition at line 107 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::newRacing(), BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::restartRacing(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendCutOffValue(), BbParaLoadCoordinator::sendIncumbentValue(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaLoadCoordinator::updateCheckpointFiles(), BbParaLoadCoordinator::warmStart(), BbParaLoadCoordinator::writeLoadCoordinatorStatisticsToCheckpointFile(), BbParaLoadCoordinator::writePreviousStatisticsInformation(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
indicate if subtree info. is logged or not
Definition at line 162 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), and BbParaLoadCoordinator::writeSubtreeInfo().
|
protected |
maximum depth of open nodes in the winner solver tree
Definition at line 118 of file bbParaLoadCoordinator.h.
Referenced by ScipParaLoadCoordinator::processTagInitialStat(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
protected |
for merging nodes
indicate that merging is processing
Definition at line 123 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
protected |
racing winner information
minimum depth of open nodes in the winner solver tree
Definition at line 117 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagTask(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
protected |
minimal dual bound for normal termination solvers
Definition at line 167 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSolverState(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
number of nodes whose dual bound gain are counted
Definition at line 139 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSolverState().
|
protected |
the number of fixed variables of the best node The followings are used temporary to generate merge nodes info
Definition at line 124 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::warmStart().
|
protected |
counter to check if all solvers are terminated or not
number of solvers which open nodes are collected
Definition at line 134 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), and BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
protected |
number of normal node selection to a random node selection
Definition at line 94 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
protected |
pointer to nodes merger object, which merges nodes
Definition at line 129 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaLoadCoordinator::warmStart(), BbParaLoadCoordinator::writeLoadCoordinatorStatisticsToCheckpointFile(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
the number of replacing to a better nodes
Definition at line 93 of file bbParaLoadCoordinator.h.
|
protected |
number of racing stages restarted
Definition at line 100 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::restartRacing().
|
protected |
ofstream for subtree info.
Definition at line 163 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protected |
ofstream for solving status in tabular form
Definition at line 160 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator().
|
protected |
ostram for subtree info. to switch output location
Definition at line 164 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), and BbParaLoadCoordinator::writeSubtreeInfo().
|
protected |
ostream for solving status in tabular form to switch output location
Definition at line 161 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::outputTabularSolvingStatusHeader(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::restartRacing(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendInterruptRequest(), BbParaLoadCoordinator::updateCheckpointFiles(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
output streams and flags which indicate the output is specified or not
indicate if solving status in tabular form or not
Definition at line 159 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSolution(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::restartRacing(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendInterruptRequest(), BbParaLoadCoordinator::updateCheckpointFiles(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
Pools in LoadCorrdinator.
node pool
Definition at line 105 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaLoadCoordinator::newRacing(), BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendCutOffValue(), BbParaLoadCoordinator::sendIncumbentValue(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaLoadCoordinator::updateCheckpointFiles(), BbParaLoadCoordinator::warmStart(), BbParaLoadCoordinator::writeLoadCoordinatorStatisticsToCheckpointFile(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
This is used for GenerateReducedCheckpointFiles.
Definition at line 148 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), BbParaLoadCoordinator::updateCheckpointFiles(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
ParaNode pool for buffering ParaNodes in huge imbalance situation.
Definition at line 146 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
ParaNode pool to restart in ramp-down phase.
Definition at line 145 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::updateCheckpointFiles(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
The first n nodes may always keep in checkpoint file, that is, the n nodes are not processed in this run.
Definition at line 149 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::updateCheckpointFiles(), BbParaLoadCoordinator::warmStart(), BbParaLoadCoordinator::writeLoadCoordinatorStatisticsToCheckpointFile(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
pending solution during merging
Definition at line 176 of file bbParaLoadCoordinator.h.
|
protected |
to keep tabular solving status output time
Definition at line 136 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::run().
|
protected |
indicate that primal solution was updated or not
Definition at line 98 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSolution(), BbParaLoadCoordinator::restartRacing(), and BbParaLoadCoordinator::run().
|
protected |
indicate that racing ramp-up is restarting
Definition at line 99 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaLoadCoordinator::processRacingRampUpTagSolverState(), BbParaLoadCoordinator::restartRacing(), and BbParaLoadCoordinator::run().
|
protected |
indicate selfSplit finished solvers
Definition at line 154 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::processTagSelfSplitFinished(), and BbParaLoadCoordinator::run().
|
protected |
start time of starving active solvers
Definition at line 143 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::run().
|
protected |
To measure how long does node pool stay in empty situation.
start time that node pool becomes empty. initialized by max double
Definition at line 112 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::processTagSolverState(), and BbParaLoadCoordinator::run().
|
protected |
The last n nodes may always keep in checkpoint file, that is, the n nodes are not processed in this run.
Definition at line 151 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::outputTabularSolvingStatus(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::updateCheckpointFiles(), BbParaLoadCoordinator::warmStart(), and BbParaLoadCoordinator::~BbParaLoadCoordinator().
|
protected |
indicate that the first node transferring at warm start (restart)
Definition at line 168 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaLoadCoordinator::processRacingRampUpTagCompletionOfCalculation(), BbParaLoadCoordinator::run(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), and BbParaLoadCoordinator::warmStart().
|
protected |
indicate that all winner solver nodes has been collected
Definition at line 96 of file bbParaLoadCoordinator.h.
Referenced by BbParaLoadCoordinator::BbParaLoadCoordinator(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().