class BbParaSolverPool (Solver Pool base class) More...
#include <bbParaSolverPool.h>
Public Member Functions | |
BbParaSolverPool (double inMp, double inBgap, double inMBgap, int inOriginRank, ParaComm *inParaComm, ParaParamSet *inParaParams, ParaTimer *inParaTimer) | |
constructor More... | |
BbParaSolverPool (double inMp, double inBgap, double inMBgap, int inNSolvers, int inOriginRank, ParaComm *inParaComm, ParaParamSet *inParaParams, ParaTimer *inParaTimer) | |
constructor More... | |
virtual | ~BbParaSolverPool () |
destructor More... | |
virtual void | interruptRequested (int rank) |
set the Solver specified by rank is terminate requested More... | |
virtual void | terminateRequested (int rank) |
set the Solver specified by rank is terminate requested More... | |
virtual bool | isInterruptRequested (int rank) |
check if the Solver specified by rank is interrupt requested or not More... | |
virtual bool | isTerminateRequested (int rank) |
check if the Solver specified by rank is terminate requested or not More... | |
virtual void | terminated (int rank) |
set the Solver specified by rank is terminated More... | |
virtual bool | isTerminated (int rank) |
check if the Solver specified by rank is terminated or not More... | |
virtual void | reinitToRestart () |
reinitialize to restart More... | |
virtual void | activate () |
activate this Solver pool More... | |
virtual bool | isActive () |
check if this Solver pool is active or not More... | |
virtual std::size_t | getNSolvers () |
get number of Solvers in this Solver pool More... | |
virtual unsigned long long | getNnodesSolvedInSolvers () |
get number of nodes solved in current running Solvers More... | |
virtual unsigned long long | getTotalNodesSolved () |
get number of nodes solved in all Solvers: updated at termination of subtree computation More... | |
virtual void | addTotalNodesSolved (unsigned long long num) |
add number of nodes solved in all Solvers More... | |
virtual unsigned long long | getNnodesInSolvers () |
get number of nodes in all Solvers More... | |
virtual std::size_t | getNumActiveSolvers () |
get number of active Solvers More... | |
virtual std::size_t | getNumInactiveSolvers () |
get number of inactive Solvers More... | |
virtual bool | isSolverActive (int rank) |
check if the Solver specified by rank is active or not More... | |
virtual ParaTask * | getCurrentTask (int rank) |
get current solving BbParaNode in the Solver specified by rank */ More... | |
virtual bool | canIncreaseLimitNLimitCollectingModeSolvers () |
check if the number of Solvers in collecting mode can be increased or not More... | |
virtual std::size_t | getNLimitCollectingModeSolvers () |
get limit number of Solvers that can be in collecting mode More... | |
virtual bool | isInCollectingMode () |
check if this system is in collecting mode or not More... | |
virtual bool | isSolverInCollectingMode (int rank) |
get collecting mode of the Solver specified by rank More... | |
virtual BbParaNode * | extractCurrentNodeAndInactivate (int rank, BbParaNodePool *paraNodePool) |
extract current solving BbParaNode in the Solver specified by rank and inactivate the Solver More... | |
virtual bool | currentSolvingNodehaeDescendant (int rank) |
extract current solving BbParaNode in the Solver specified by rank and inactivate the Solver More... | |
virtual void | addNumNodesSolved (long long numOfNodesSolved) |
add number of nodes solved More... | |
virtual long long | getNumOfNodesSolved (int rank) |
get the number of nodes solved by the Solver specified More... | |
virtual int | getNumOfNodesLeft (int rank) |
get the number of nodes left by the Solver specified More... | |
virtual int | getNumOfNodesLeftInBestSolver () |
get the number of nodes left in the Solver which has the best dual bound value More... | |
virtual int | getBestSolver () |
get rank of the Solver which has top priority in selection criteria More... | |
virtual int | getGoodSolverSolvingEssentialNode () |
get rank of the Solver which has top priority in selection criteria More... | |
virtual double | getDualBoundValue (int rank) |
get dual bound value of solving BbParaNode by the Solver specified More... | |
virtual void | setTermState (int rank, ParaSolverTerminationState *inTermState) |
set SolverTerminationState to the Solver specified More... | |
virtual ParaSolverTerminationState * | getTermState (int rank) |
get SolverTermination state of the Solver specified More... | |
virtual void | updateDualBoundsForSavingNodes () |
update dual bound values of saving BbParaNodes by their dual bound values for subtrees More... | |
virtual int | writeParaNodesToCheckpointFile (gzstream::ogzstream &out) |
write BbParaNodes to checkpoint file More... | |
virtual int | writeSolverStatisticsToCheckpointFile (gzstream::ogzstream &out) |
write Solver statistics to checkpoint file More... | |
virtual void | incNLimitCollectingModeSolvers () |
increase the limit number of Solvers getting into collecting mode More... | |
virtual void | setCollectingIsAllowed (int rank) |
set collecting mode is allowed to the Solver specified by rank More... | |
virtual int | getInactiveSolverRank () |
get an inactive Solver rank More... | |
virtual void | activateSolver (int rank, BbParaNode *node, int nGoodNodesInNodePool, double averageDualBoundGain) |
activate the Solver specified by rank with specified node which has been sent More... | |
virtual void | activateSolver (int rank, BbParaNode *node, int nNodesLeft) |
activate the Solver specified by rank with specified node which has been sent and nNodesLeft (This method is for the racing winner) TODO: Need to check how this function is used More... | |
virtual int | activateSolver (BbParaNode *node, BbParaRacingSolverPool *paraRacingSolverPool, bool rampUpPhase, int nGoodNodesInNodePool, double averageDualBoundGain) |
activate a Solver with specified BbParaNode which is sent within this Solver pool More... | |
virtual void | addNewSubtreeRootNode (int rank, BbParaNode *node) |
add new subtree root node to the active solver with the specified rank More... | |
virtual void | makeSubtreeRootNodeCurrent (int rank, BbParaNode *node) |
make subtree root node as current task for the specified rank More... | |
virtual void | removeSubtreeRootNode (int rank, BbParaNode *node) |
remove subtree root node from the active solver with the specified rank More... | |
virtual BbParaNode * | extractSelfSplitSubtreeRootNode (int rank, BbParaNode *node) |
extract self-split subtree root node from the active solver with the specified rank More... | |
virtual BbParaNode * | getSelfSplitSubtreeRootNodes (int rank) |
get self-split subtree root node from the active solver with the specified rank More... | |
virtual BbParaNode * | extractSelfSplitSubtreeRootNodes (int rank) |
extract self-split subtree root node from the active solver with the specified rank More... | |
virtual void | deleteCurrentSubtreeRootNode (int rank) |
delete current self-split subtree root node from the active solver with the specified rank More... | |
virtual void | inactivateSolver (int rank, long long numOfNodesSolved, BbParaNodePool *paraNodePool) |
inactivate the Solver specified by rank More... | |
virtual void | resetCountersInSolver (int rank, long long numOfNodesSolved, int numOfSelfSplitNodesLeft, BbParaNodePool *paraNodePool) |
reset counters in the Solver specified by rank More... | |
virtual BbParaNode * | solverDied (int rank) |
kill the Solver specified by rank More... | |
virtual void | switchOutCollectingMode () |
switch out collecting mode More... | |
virtual void | enforcedSwitchOutCollectingMode (int rank) |
enforced to switch out collecting mode of the Solver specified by rank if it is necessary More... | |
virtual void | sendSwitchOutCollectingModeIfNecessary (int rank) |
switch out collecting mode of the Solver specified by rank if it is necessary More... | |
virtual double | getGlobalBestDualBoundValue ()=0 |
get global best dual bound value More... | |
virtual void | switchInCollectingMode (BbParaNodePool *paraNodePool)=0 |
switch in collecting mode More... | |
virtual void | updateSolverStatus (int rank, long long numNodesSolved, int numNodesLeft, double solverLocalBestBound, BbParaNodePool *paraNodePool)=0 |
update Solver status More... | |
virtual int | getMCollectingNodes () |
get multiplier of collecting BbParaNodes More... | |
virtual int | getMMaxCollectingNodes () |
get maximum multiplier for the number of collecting BbParaNodes More... | |
virtual double | getSwichOutTime () |
the following functions are to omit rebooting collecting mode process More... | |
virtual void | setSwichOutTime (double time) |
set time of switching out collecting mode More... | |
virtual bool | isDualBounGainTesting (int rank) |
check if dual bound gain testing is proceeding or not in the Solver specified More... | |
Public Member Functions inherited from ParaSolverPool | |
ParaSolverPool (int inOriginRank, ParaComm *inParaComm, ParaParamSet *inParaParams, ParaTimer *inParaTimer) | |
constructor More... | |
virtual | ~ParaSolverPool () |
destructor More... | |
std::size_t | getNSolvers () |
get number of Solvers in this Solver pool More... | |
virtual std::size_t | getNumActiveSolvers ()=0 |
get number of active Solvers More... | |
virtual std::size_t | getNumInactiveSolvers ()=0 |
get number of inactive Solvers More... | |
virtual bool | isSolverActive (int rank)=0 |
check if the Solver specified by rank is active or not More... | |
virtual ParaTask * | getCurrentTask (int rank)=0 |
get current solving ParaTask in the Solver specified by rank More... | |
virtual void | interruptRequested (int rank)=0 |
set the Solver specified by rank is interrupt requested More... | |
virtual bool | isInterruptRequested (int rank)=0 |
check if the Solver specified by rank is interrupt requested or not More... | |
virtual void | terminateRequested (int rank)=0 |
set the Solver specified by rank is terminate requested More... | |
virtual bool | isTerminateRequested (int rank)=0 |
check if the Solver specified by rank is terminate requested or not More... | |
virtual void | terminated (int rank)=0 |
set the Solver specified by rank is terminated More... | |
virtual bool | isTerminated (int rank)=0 |
check if the Solver specified by rank is terminated or not More... | |
Protected Member Functions | |
virtual void | switchInCollectingToSolver (int rank, BbParaNodePool *paraNodePool) |
switch a Solver to be in collecting mode More... | |
Protected Attributes | |
bool | active |
indicate if this pool is active or not More... | |
double | bgap |
threshold value of gap More... | |
double | mp |
multiplier of the threshold value p More... | |
double | mBgap |
multiplier of the bgap value More... | |
double | absoluteGap |
allowable absolute dual bound gap to the best Solver More... | |
std::size_t | nGenerator |
number of generators More... | |
std::size_t | nCollectingModeSolvers |
number of collecting mode Solvers More... | |
std::size_t | nMaxCollectingModeSolvers |
maximum number of Solvers that can be in collecting mode More... | |
std::size_t | nLimitCollectingModeSolvers |
limit number of Solvers that can be in collecting mode More... | |
unsigned long long | nNodesSolvedInSolvers |
number of nodes solved in current running Solvers More... | |
unsigned long long | nTotalNodesSolved |
number of nodes solved : updated at termination of subtree computation More... | |
unsigned long long | nNodesInSolvers |
number of nodes in all Solvers More... | |
bool | collectingMode |
indicate that this system is in collecting mode or not More... | |
bool | breakingFirstSubtree |
breaking the first subtree More... | |
bool | beforeInitialCollect |
before initial collecting mode More... | |
bool | beforeFinishingFirstCollect |
before finishing first collecting mode More... | |
std::map< int, BbParaSolverPoolElementPtr > | inactiveSolvers |
pointers to inactive Solvers More... | |
std::map< int, BbParaSolverPoolElementPtr > | activeSolvers |
pointers to active Solvers More... | |
std::map< int, BbParaSolverPoolElementPtr > | deadSolvers |
pointers to dead Solvers More... | |
std::multimap< double, BbParaSolverPoolElementPtr > | candidatesOfCollectingModeSolvers |
pointers to candidates of collecting mode Solvers More... | |
BbParaSolverPoolElementPtr * | pool |
Solver pool indexed by Solver's rank. More... | |
SelectionHeap * | selectionHeap |
pointers to active Solvers in ascending or descending order More... | |
CollectingModeSolverHeap * | collectingModeSolverHeap |
pointers to collecting mode Solvers in ascending or descending order More... | |
double | switchOutTime |
switch out time More... | |
int | mCollectingNodes |
multiplier for the number of collecting BbParaNodes More... | |
int | mMaxCollectingNodes |
maximum multiplier for the number of collecting BbParaNodes More... | |
int | nDualBoundGainTesting |
the number of dual bound gain testing Solvers More... | |
Protected Attributes inherited from ParaSolverPool | |
int | originRank |
origin rank of Solvers managed by this Solver pool More... | |
std::size_t | nSolvers |
number of Solvers More... | |
ParaComm * | paraComm |
communicator More... | |
ParaParamSet * | paraParams |
runtime parameters for parallelization More... | |
ParaTimer * | paraTimer |
timer More... | |
class BbParaSolverPool (Solver Pool base class)
Definition at line 1346 of file bbParaSolverPool.h.
BbParaSolverPool | ( | double | inMp, |
double | inBgap, | ||
double | inMBgap, | ||
int | inOriginRank, | ||
ParaComm * | inParaComm, | ||
ParaParamSet * | inParaParams, | ||
ParaTimer * | inParaTimer | ||
) |
constructor
inMp | multiplier of the threshold value p |
inBgap | threshold value of gap |
inMBgap | multiplier of the bgap value |
inOriginRank | origin rank of Solvers managed by this Solver pool |
inParaComm | communicator used |
inParaParams | paraParamSet used |
inParaTimer | timer used |
Definition at line 1393 of file bbParaSolverPool.h.
References UG::ABgapForSwitchingToBestSolver, BbParaSolverPool::absoluteGap, UG::BreakFirstSubtree, BbParaSolverPool::breakingFirstSubtree, ParaParamSet::getBoolParamValue(), ParaParamSet::getIntParamValue(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), BbParaSolverPool::inactiveSolvers, UG::MaxNumberOfCollectingModeSolvers, UG::MinNumberOfCollectingModeSolvers, BbParaSolverPool::nGenerator, BbParaSolverPool::nLimitCollectingModeSolvers, BbParaSolverPool::nMaxCollectingModeSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, ParaSolverPool::paraComm, ParaSolverPool::paraParams, BbParaSolverPool::pool, and BbParaSolverPoolElement::setNoGenerator().
BbParaSolverPool | ( | double | inMp, |
double | inBgap, | ||
double | inMBgap, | ||
int | inNSolvers, | ||
int | inOriginRank, | ||
ParaComm * | inParaComm, | ||
ParaParamSet * | inParaParams, | ||
ParaTimer * | inParaTimer | ||
) |
constructor
inMp | multiplier of the threshold value p |
inBgap | threshold value of gap |
inMBgap | multiplier of the bgap value |
inNSolvers | number of solvers |
inOriginRank | origin rank of Solvers managed by this Solver pool |
inParaComm | communicator used |
inParaParams | paraParamSet used |
inParaTimer | timer used |
Definition at line 1456 of file bbParaSolverPool.h.
References UG::ABgapForSwitchingToBestSolver, BbParaSolverPool::absoluteGap, UG::BreakFirstSubtree, BbParaSolverPool::breakingFirstSubtree, ParaParamSet::getBoolParamValue(), ParaParamSet::getIntParamValue(), ParaParamSet::getRealParamValue(), BbParaSolverPool::inactiveSolvers, UG::MaxNumberOfCollectingModeSolvers, UG::MinNumberOfCollectingModeSolvers, BbParaSolverPool::nGenerator, BbParaSolverPool::nLimitCollectingModeSolvers, BbParaSolverPool::nMaxCollectingModeSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, ParaSolverPool::paraParams, BbParaSolverPool::pool, and BbParaSolverPoolElement::setNoGenerator().
|
virtual |
destructor
Definition at line 1520 of file bbParaSolverPool.h.
References ParaSolverPool::nSolvers, and BbParaSolverPool::pool.
|
virtual |
activate this Solver pool
Definition at line 1629 of file bbParaSolverPool.h.
References BbParaSolverPool::active.
|
virtual |
activate a Solver with specified BbParaNode which is sent within this Solver pool
activate any Solver which is idle
paraNode | pointer to BbParaNode object to be sent to a Solver |
paraRacingSolverPool | pointer to paraRacingSolverPool object to check if the Solver is not solving root node |
rampUpPhase | indicate if ramp-up phase or not |
nGoodNodesInNodePool | number of good BbParaNodes in BbParaNodePool |
averageDualBoundGain | current average bound gain |
Definition at line 781 of file bbParaSolverPool.cpp.
References BbParaSolverPoolElement::activate(), BbParaSolverPool::active, BbParaSolverPool::activeSolvers, UG::ControlCollectingModeOnSolverSide, UG::DualBoundGainTest, ParaParamSet::getBoolParamValue(), ParaParamSet::getIntParamValue(), BbParaNode::getMergeNodeInfo(), BbParaNode::getMergingStatus(), BbParaSolverPool::getNumInactiveSolvers(), ParaParamSet::getRealParamValue(), BbParaSolverPool::inactiveSolvers, SelectionHeap::insert(), BbParaRacingSolverPool::isSolverActive(), UG::LightWeightRootNodeProcess, BbParaSolverPool::mCollectingNodes, UG::MultiplierForCollectingMode, UG::NChangeIntoCollectingMode, BbParaSolverPool::nDualBoundGainTesting, BbParaSolverPool::nNodesInSolvers, ParaSolverPool::nSolvers, PARA_COMM_CALL, UG::ParaBYTE, ParaSolverPool::paraComm, UG::ParaDOUBLE, ParaSolverPool::paraParams, BbParaSolverPool::pool, BbParaSolverPoolElement::prohibitCollectingMode(), UG::RatioToApplyLightWeightRootProcess, BbParaSolverPool::selectionHeap, BbParaNode::send(), ParaComm::send(), BbParaSolverPoolElement::setDualBoundGainTesting(), SOLVER_POOL_INDEX, UG::TagLightWeightRootNodeProcess, UG::TagNoTestDualBoundGain, UG::TagTestDualBoundGain, and THROW_LOGICAL_ERROR1.
|
virtual |
activate the Solver specified by rank with specified node which has been sent
activate Solver specified by its rank
rank | rank of the Solver to be activated |
paraNode | pointer to BbParaNode object to be sent to the Solver |
nGoodNodesInNodePool | number of good nodes in BbParaNodePool object |
averageDualBoundGain | current average dual bound gain |
Definition at line 662 of file bbParaSolverPool.cpp.
References BbParaSolverPoolElement::activate(), BbParaSolverPool::active, BbParaSolverPool::activeSolvers, UG::ControlCollectingModeOnSolverSide, UG::DualBoundGainTest, ParaParamSet::getBoolParamValue(), ParaParamSet::getIntParamValue(), BbParaSolverPool::getNumInactiveSolvers(), ParaParamSet::getRealParamValue(), UG::Inactive, BbParaSolverPool::inactiveSolvers, SelectionHeap::insert(), BbParaSolverPool::mCollectingNodes, UG::MultiplierForCollectingMode, UG::NChangeIntoCollectingMode, BbParaSolverPool::nDualBoundGainTesting, BbParaSolverPool::nNodesInSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, PARA_COMM_CALL, UG::ParaBYTE, ParaSolverPool::paraComm, UG::ParaDOUBLE, ParaSolverPool::paraParams, BbParaSolverPool::pool, BbParaSolverPoolElement::prohibitCollectingMode(), BbParaSolverPool::selectionHeap, BbParaNode::send(), ParaComm::send(), BbParaSolverPoolElement::setDualBoundGainTesting(), SOLVER_POOL_INDEX, UG::TagNoTestDualBoundGain, UG::TagTestDualBoundGain, and THROW_LOGICAL_ERROR2.
Referenced by BbParaSolverPool::resetCountersInSolver(), BbParaLoadCoordinator::run(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
virtual |
activate the Solver specified by rank with specified node which has been sent and nNodesLeft (This method is for the racing winner) TODO: Need to check how this function is used
activate Solver specified by its rank and number of nodes left. This is for the racing winner.
DO NOT PROHIBIT COLLECTING MODE. THIS IS ACTIVATION ROUTIN FOR RACING WIINGER
rank | rank of the Solver to be activated |
paraNode | pointer to BbParaNode object to be sent to the Solver |
nNodesLeft | the number of nodes left in the Solver |
Definition at line 735 of file bbParaSolverPool.cpp.
References BbParaSolverPoolElement::activate(), BbParaSolverPool::active, BbParaSolverPool::activeSolvers, UG::Inactive, BbParaSolverPool::inactiveSolvers, SelectionHeap::insert(), BbParaSolverPool::nNodesInSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, BbParaSolverPool::selectionHeap, BbParaSolverPoolElement::setNumOfNodesLeft(), SOLVER_POOL_INDEX, and THROW_LOGICAL_ERROR2.
|
virtual |
add new subtree root node to the active solver with the specified rank
rank | the active solver rank |
node | new subtree root node |
Definition at line 870 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, BbParaSolverPool::collectingMode, BbParaSolverPoolElement::getStatus(), UG::InterruptRequested, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, SOLVER_POOL_INDEX, UG::Terminated, UG::TerminateRequested, THROW_LOGICAL_ERROR2, and THROW_LOGICAL_ERROR3.
|
virtual |
add number of nodes solved
numOfNodesSolved | number of nodes solved |
Definition at line 1831 of file bbParaSolverPool.h.
References BbParaSolverPool::nNodesSolvedInSolvers.
|
virtual |
add number of nodes solved in all Solvers
num | number of nodes solved |
Definition at line 1676 of file bbParaSolverPool.h.
References BbParaSolverPool::nTotalNodesSolved.
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
virtual |
check if the number of Solvers in collecting mode can be increased or not
Definition at line 1738 of file bbParaSolverPool.h.
References BbParaSolverPool::nLimitCollectingModeSolvers, and BbParaSolverPool::nMaxCollectingModeSolvers.
|
virtual |
extract current solving BbParaNode in the Solver specified by rank and inactivate the Solver
rank | solver rank to be checked |
Definition at line 1821 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::getCurrentNode(), ParaTask::hasDescendant(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
|
virtual |
delete current self-split subtree root node from the active solver with the specified rank
rank | the active solver rank |
Definition at line 1142 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, BbParaSolverPoolElement::getStatus(), UG::InterruptRequested, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, SOLVER_POOL_INDEX, UG::Terminated, UG::TerminateRequested, and THROW_LOGICAL_ERROR2.
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
virtual |
enforced to switch out collecting mode of the Solver specified by rank if it is necessary
switch out collecting mode to the specified rank if it is necessary
sending TagOutCollectingMode is harmless
pool[SOLVER_POOL_INDEX(rank)]->isOutCollectingMode() should be true
rank | rank of the Solver |
Definition at line 1470 of file bbParaSolverPool.cpp.
References BbParaSolverPool::collectingModeSolverHeap, CollectingModeSolverHeap::deleteElement(), BbParaSolverPool::nCollectingModeSolvers, PARA_COMM_CALL, UG::ParaBYTE, ParaSolverPool::paraComm, BbParaSolverPool::pool, ParaComm::send(), BbParaSolverPoolElement::setCollectingMode(), SOLVER_POOL_INDEX, and UG::TagOutCollectingMode.
|
virtual |
extract current solving BbParaNode in the Solver specified by rank and inactivate the Solver
rank | rank of the Solver to be inactivated |
paraNodePool | pointer to BbParaNodePool to pass it to inactivateSolver routine |
Definition at line 1784 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::extractCurrentNode(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::isSolverActive(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
|
virtual |
extract self-split subtree root node from the active solver with the specified rank
rank | the active solver rank |
node | subtree root node to be removed |
Definition at line 1049 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, BbParaNode::next, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, SOLVER_POOL_INDEX, and THROW_LOGICAL_ERROR2.
|
virtual |
extract self-split subtree root node from the active solver with the specified rank
rank | the active solver rank |
Definition at line 1130 of file bbParaSolverPool.cpp.
References BbParaSolverPoolElement::extractSelfSplitNodes(), ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, SOLVER_POOL_INDEX, and THROW_LOGICAL_ERROR2.
|
virtual |
get rank of the Solver which has top priority in selection criteria
Definition at line 1883 of file bbParaSolverPool.h.
References SelectionHeap::getHeapSize(), BbParaSolverPoolElement::getRank(), BbParaSolverPool::selectionHeap, and SelectionHeap::top().
|
virtual |
get current solving BbParaNode in the Solver specified by rank */
rank | rank of the Solver |
Implements ParaSolverPool.
Definition at line 1727 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::getCurrentNode(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaSolverPool::getGoodSolverSolvingEssentialNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaSolverPool::updateDualBoundsForSavingNodes(), and BbParaSolverPool::writeParaNodesToCheckpointFile().
|
virtual |
get dual bound value of solving BbParaNode by the Solver specified
rank | rank of the Solver |
Definition at line 1926 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::getBestDualBoundValue(), BbParaSolverPool::isSolverActive(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
|
pure virtual |
get global best dual bound value
Implemented in BbParaSolverPoolForMinimization.
Referenced by BbParaSolverPool::switchInCollectingToSolver().
|
virtual |
get rank of the Solver which has top priority in selection criteria
Definition at line 1900 of file bbParaSolverPool.h.
References SelectionHeap::get(), ParaTask::getAncestor(), BbParaSolverPool::getCurrentTask(), SelectionHeap::getHeapSize(), BbParaSolverPoolElement::getRank(), and BbParaSolverPool::selectionHeap.
|
virtual |
get an inactive Solver rank
Definition at line 2049 of file bbParaSolverPool.h.
References BbParaSolverPool::inactiveSolvers.
|
virtual |
get multiplier of collecting BbParaNodes
Definition at line 2234 of file bbParaSolverPool.h.
References BbParaSolverPool::mCollectingNodes.
Referenced by BbParaLoadCoordinator::processTagTask().
|
virtual |
get maximum multiplier for the number of collecting BbParaNodes
Definition at line 2244 of file bbParaSolverPool.h.
References BbParaSolverPool::mMaxCollectingNodes.
|
virtual |
get limit number of Solvers that can be in collecting mode
Definition at line 1748 of file bbParaSolverPool.h.
References BbParaSolverPool::nLimitCollectingModeSolvers.
|
virtual |
get number of nodes in all Solvers
Definition at line 1686 of file bbParaSolverPool.h.
References BbParaSolverPool::nNodesInSolvers.
Referenced by BbParaLoadCoordinator::processTagSolverState(), and BbParaLoadCoordinator::run().
|
virtual |
get number of nodes solved in current running Solvers
Definition at line 1658 of file bbParaSolverPool.h.
References BbParaSolverPool::nNodesSolvedInSolvers.
Referenced by BbParaLoadCoordinator::outputTabularSolvingStatus(), and BbParaLoadCoordinator::processTagSolverState().
|
virtual |
get number of Solvers in this Solver pool
Definition at line 1649 of file bbParaSolverPool.h.
References ParaSolverPool::nSolvers.
|
virtual |
get number of active Solvers
Implements ParaSolverPool.
Definition at line 1696 of file bbParaSolverPool.h.
References BbParaSolverPool::activeSolvers.
|
virtual |
get number of inactive Solvers
Implements ParaSolverPool.
Definition at line 1706 of file bbParaSolverPool.h.
References BbParaSolverPool::inactiveSolvers.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchInCollectingToSolver(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
virtual |
get the number of nodes left by the Solver specified
rank | rank of the Solver |
Definition at line 1854 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::getNumOfNodesLeft(), BbParaSolverPool::isSolverActive(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaSolverPoolForMinimization::switchInCollectingMode(), and BbParaSolverPool::switchInCollectingToSolver().
|
virtual |
get the number of nodes left in the Solver which has the best dual bound value
Definition at line 1866 of file bbParaSolverPool.h.
References SelectionHeap::getHeapSize(), BbParaSolverPoolElement::getNumOfNodesLeft(), BbParaSolverPool::selectionHeap, and SelectionHeap::top().
Referenced by BbParaLoadCoordinator::processTagSolverState().
|
virtual |
get the number of nodes solved by the Solver specified
rank | rank of the Solver |
Definition at line 1842 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::getNumOfNodesSolved(), BbParaSolverPool::isInterruptRequested(), BbParaSolverPool::isSolverActive(), BbParaSolverPool::isTerminateRequested(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), and BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
virtual |
get self-split subtree root node from the active solver with the specified rank
rank | the active solver rank |
Definition at line 1092 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, SOLVER_POOL_INDEX, and THROW_LOGICAL_ERROR2.
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
virtual |
the following functions are to omit rebooting collecting mode process
get time of switching out collecting mode
Definition at line 2258 of file bbParaSolverPool.h.
References BbParaSolverPool::switchOutTime.
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
virtual |
get SolverTermination state of the Solver specified
rank | rank of the Solver |
Definition at line 1949 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::getTermState(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaSolverPool::writeSolverStatisticsToCheckpointFile().
|
virtual |
get number of nodes solved in all Solvers: updated at termination of subtree computation
Definition at line 1667 of file bbParaSolverPool.h.
References BbParaSolverPool::nTotalNodesSolved.
|
virtual |
inactivate the Solver specified by rank
inactivate the Solver specified by rank
need to have dual bound, so should be before inactivate()
rank | rank of the Solver to be inactivated |
numOfNodesSolved | number of nodes solved |
paraNodePool | pointer to BbParaNodePool to change into collecting mode |
Definition at line 1187 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, BbParaSolverPool::breakingFirstSubtree, BbParaSolverPool::candidatesOfCollectingModeSolvers, BbParaSolverPool::collectingMode, BbParaSolverPool::collectingModeSolverHeap, UG::ControlCollectingModeOnSolverSide, SelectionHeap::deleteElement(), CollectingModeSolverHeap::deleteElement(), ParaParamSet::getBoolParamValue(), BbParaSolverPoolElement::getNumOfNodesLeft(), BbParaSolverPoolElement::getRank(), BbParaSolverPoolElement::inactivate(), BbParaSolverPool::inactiveSolvers, UG::InterruptRequested, BbParaSolverPoolElement::isCollectingProhibited(), BbParaSolverPoolElement::isGenerator(), BbParaSolverPool::isInCollectingMode(), BbParaSolverPoolElement::isOutCollectingMode(), BbParaSolverPool::nCollectingModeSolvers, BbParaSolverPool::nNodesInSolvers, BbParaSolverPool::nNodesSolvedInSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, ParaSolverPool::paraParams, BbParaSolverPool::pool, BbParaSolverPool::selectionHeap, BbParaSolverPool::sendSwitchOutCollectingModeIfNecessary(), BbParaSolverPoolElement::setCollectingIsAllowed(), SOLVER_POOL_INDEX, BbParaSolverPool::switchInCollectingToSolver(), UG::TerminateRequested, THROW_LOGICAL_ERROR2, and SelectionHeap::top().
Referenced by BbParaSolverPool::extractCurrentNodeAndInactivate(), and BbParaSolverPool::terminated().
|
virtual |
increase the limit number of Solvers getting into collecting mode
Definition at line 2028 of file bbParaSolverPool.h.
References BbParaSolverPool::nLimitCollectingModeSolvers, BbParaSolverPool::nMaxCollectingModeSolvers, and ParaSolverPool::nSolvers.
|
virtual |
set the Solver specified by rank is terminate requested
rank | rank of the Solver |
Implements ParaSolverPool.
Definition at line 1533 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::interruptRequested(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
|
virtual |
check if this Solver pool is active or not
Definition at line 1639 of file bbParaSolverPool.h.
References BbParaSolverPool::active.
Referenced by BbParaLoadCoordinator::outputTabularSolvingStatus().
|
virtual |
check if dual bound gain testing is proceeding or not in the Solver specified
rank | rank of the Solver |
Definition at line 2278 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::isDualBoundGainTesting(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaLoadCoordinator::processTagSolverState().
|
virtual |
check if this system is in collecting mode or not
Definition at line 1760 of file bbParaSolverPool.h.
References BbParaSolverPool::collectingMode.
Referenced by BbParaSolverPool::inactivateSolver(), BbParaLoadCoordinator::processTagSelfSplitTermStateForInterruption(), BbParaLoadCoordinator::processTagSolverState(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::processTagTermStateForInterruption(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::solverDied(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
virtual |
check if the Solver specified by rank is interrupt requested or not
rank | rank of the Solver |
Implements ParaSolverPool.
Definition at line 1556 of file bbParaSolverPool.h.
References UG::InterruptRequested, BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaSolverPool::getNumOfNodesSolved().
|
virtual |
check if the Solver specified by rank is active or not
rank | rank of the Solver to be checked |
Implements ParaSolverPool.
Definition at line 1716 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::isActive(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaSolverPool::extractCurrentNodeAndInactivate(), BbParaSolverPool::getDualBoundValue(), BbParaSolverPool::getNumOfNodesLeft(), BbParaSolverPool::getNumOfNodesSolved(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSolverState(), and BbParaSolverPool::terminated().
|
virtual |
get collecting mode of the Solver specified by rank
rank | rank of the Solver to be checked |
Definition at line 1770 of file bbParaSolverPool.h.
References BbParaSolverPoolElement::isInCollectingMode(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.
Referenced by BbParaLoadCoordinator::inactivateRacingSolverPool(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), and BbParaLoadCoordinator::processTagSolverState().
|
virtual |
check if the Solver specified by rank is terminated or not
rank | rank of the Solver |
Implements ParaSolverPool.
Definition at line 1606 of file bbParaSolverPool.h.
References BbParaSolverPool::pool, SOLVER_POOL_INDEX, and UG::Terminated.
|
virtual |
check if the Solver specified by rank is terminate requested or not
rank | rank of the Solver |
Implements ParaSolverPool.
Definition at line 1567 of file bbParaSolverPool.h.
References BbParaSolverPool::pool, SOLVER_POOL_INDEX, and UG::TerminateRequested.
Referenced by BbParaSolverPool::getNumOfNodesSolved(), and BbParaLoadCoordinator::processTagTermStateForInterruption().
|
virtual |
make subtree root node as current task for the specified rank
rank | the active solver rank |
node | subtree root node to make it current |
Definition at line 915 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, BbParaSolverPoolElement::getStatus(), UG::InterruptRequested, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, SOLVER_POOL_INDEX, UG::Terminated, UG::TerminateRequested, and THROW_LOGICAL_ERROR2.
|
virtual |
reinitialize to restart
Definition at line 1616 of file bbParaSolverPool.h.
References BbParaSolverPool::collectingMode, ParaParamSet::getIntParamValue(), BbParaSolverPool::mCollectingNodes, UG::MinNumberOfCollectingModeSolvers, BbParaSolverPool::nCollectingModeSolvers, BbParaSolverPool::nLimitCollectingModeSolvers, ParaSolverPool::paraParams, and BbParaSolverPool::switchOutTime.
|
virtual |
remove subtree root node from the active solver with the specified rank
rank | the active solver rank |
node | subtree root node to be removed |
Definition at line 961 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, BbParaSolverPoolElement::getStatus(), UG::InterruptRequested, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, SOLVER_POOL_INDEX, UG::Terminated, UG::TerminateRequested, and THROW_LOGICAL_ERROR2.
|
virtual |
reset counters in the Solver specified by rank
reset counters in the Solver specified by rank
need to have dual bound, so should be before inactivate()
rank | rank of the Solver to reset counters |
numOfNodesSolved | number of nodes solved |
numOfSelfSplitNodesLeft | number of self-split nodes left |
paraNodePool | pointer to BbParaNodePool to change into collecting mode |
Definition at line 1284 of file bbParaSolverPool.cpp.
References BbParaSolverPool::activateSolver(), UG::Active, BbParaSolverPool::activeSolvers, BbParaSolverPool::breakingFirstSubtree, BbParaSolverPool::candidatesOfCollectingModeSolvers, BbParaSolverPool::collectingMode, BbParaSolverPool::collectingModeSolverHeap, UG::ControlCollectingModeOnSolverSide, SelectionHeap::deleteElement(), CollectingModeSolverHeap::deleteElement(), BbParaSolverPoolElement::extractCurrentNode(), ParaParamSet::getBoolParamValue(), BbParaSolverPoolElement::getNumOfNodesLeft(), BbParaSolverPoolElement::getRank(), BbParaSolverPoolElement::inactivate(), BbParaSolverPool::inactiveSolvers, BbParaSolverPoolElement::isCollectingProhibited(), BbParaSolverPoolElement::isGenerator(), BbParaSolverPool::isInCollectingMode(), BbParaSolverPoolElement::isOutCollectingMode(), BbParaSolverPool::nCollectingModeSolvers, BbParaSolverPool::nNodesInSolvers, BbParaSolverPool::nNodesSolvedInSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, ParaSolverPool::paraParams, BbParaSolverPool::pool, BbParaSolverPool::selectionHeap, BbParaSolverPool::sendSwitchOutCollectingModeIfNecessary(), BbParaSolverPoolElement::setCollectingIsAllowed(), SOLVER_POOL_INDEX, BbParaSolverPool::switchInCollectingToSolver(), THROW_LOGICAL_ERROR2, and SelectionHeap::top().
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
virtual |
switch out collecting mode of the Solver specified by rank if it is necessary
switch out collecting mode to the specified rank
rank | rank of the Solver |
Definition at line 1492 of file bbParaSolverPool.cpp.
References BbParaSolverPool::collectingModeSolverHeap, CollectingModeSolverHeap::deleteElement(), BbParaSolverPool::nCollectingModeSolvers, PARA_COMM_CALL, UG::ParaBYTE, ParaSolverPool::paraComm, BbParaSolverPool::pool, ParaComm::send(), BbParaSolverPoolElement::setCollectingMode(), SOLVER_POOL_INDEX, and UG::TagOutCollectingMode.
Referenced by BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchOutCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
virtual |
set collecting mode is allowed to the Solver specified by rank
Definition at line 2038 of file bbParaSolverPool.h.
References BbParaSolverPool::pool, BbParaSolverPoolElement::setCollectingIsAllowed(), and SOLVER_POOL_INDEX.
|
virtual |
set time of switching out collecting mode
time | time of switching out collecting mode |
Definition at line 2267 of file bbParaSolverPool.h.
References BbParaSolverPool::switchOutTime.
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
virtual |
set SolverTerminationState to the Solver specified
rank | rank of the Solver |
inTermState | pointer to ParaSolverTerminationState object |
Definition at line 1937 of file bbParaSolverPool.h.
References BbParaSolverPool::pool, BbParaSolverPoolElement::setTermState(), and SOLVER_POOL_INDEX.
|
virtual |
kill the Solver specified by rank
solver specified by rank died
need to have dual bound, so should be before died()
rank | rank of the Solver |
Definition at line 1388 of file bbParaSolverPool.cpp.
References UG::Active, BbParaSolverPool::activeSolvers, BbParaSolverPool::collectingModeSolverHeap, BbParaSolverPool::deadSolvers, SelectionHeap::deleteElement(), CollectingModeSolverHeap::deleteElement(), BbParaSolverPoolElement::died(), BbParaSolverPool::isInCollectingMode(), BbParaSolverPool::nNodesInSolvers, BbParaSolverPool::nNodesSolvedInSolvers, ParaSolverPool::nSolvers, ParaSolverPool::originRank, BbParaSolverPool::pool, BbParaSolverPool::selectionHeap, SOLVER_POOL_INDEX, and THROW_LOGICAL_ERROR2.
|
pure virtual |
switch in collecting mode
paraNodePool | pointer to BbParaNodePool object |
Implemented in BbParaSolverPoolForMinimization.
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
protectedvirtual |
switch a Solver to be in collecting mode
send switch in-collecting mode to a specific solver
rank | Solver rank to be in collecting mode |
paraNodePool | pointer to BbParaNodePool object |
Definition at line 1512 of file bbParaSolverPool.cpp.
References BbParaSolverPool::candidatesOfCollectingModeSolvers, BbParaSolverPool::collectingModeSolverHeap, BbParaSolverPool::getGlobalBestDualBoundValue(), ParaParamSet::getIntParamValue(), BbParaSolverPool::getNumInactiveSolvers(), BbParaNodePool::getNumOfGoodNodes(), BbParaSolverPool::getNumOfNodesLeft(), ParaParamSet::getRealParamValue(), CollectingModeSolverHeap::insert(), BbParaNodePool::isEmpty(), BbParaSolverPool::mCollectingNodes, UG::MultiplierForCollectingMode, UG::NChangeIntoCollectingMode, BbParaSolverPool::nCollectingModeSolvers, BbParaSolverPool::nLimitCollectingModeSolvers, PARA_COMM_CALL, UG::ParaBYTE, ParaSolverPool::paraComm, UG::ParaINT, ParaSolverPool::paraParams, BbParaSolverPool::pool, ParaComm::send(), BbParaSolverPoolElement::setCollectingMode(), SOLVER_POOL_INDEX, UG::TagInCollectingMode, and UG::TagNoWaitModeSend.
Referenced by BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
virtual |
switch out collecting mode
switch out collecting mode
clear candidatesOfCollectingModeSolvers in below
Definition at line 1431 of file bbParaSolverPool.cpp.
References BbParaSolverPool::activeSolvers, BbParaSolverPool::candidatesOfCollectingModeSolvers, BbParaSolverPool::collectingMode, UG::DualBoundGainTest, ParaParamSet::getBoolParamValue(), ParaTimer::getElapsedTime(), BbParaSolverPool::nCollectingModeSolvers, BbParaSolverPool::nDualBoundGainTesting, PARA_COMM_CALL, UG::ParaBYTE, ParaSolverPool::paraComm, ParaSolverPool::paraParams, ParaSolverPool::paraTimer, BbParaSolverPool::pool, ParaComm::send(), BbParaSolverPool::sendSwitchOutCollectingModeIfNecessary(), BbParaSolverPoolElement::setCandidateOfCollecting(), BbParaSolverPoolElement::setDualBoundGainTesting(), SOLVER_POOL_INDEX, BbParaSolverPool::switchOutTime, and UG::TagNoTestDualBoundGain.
Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
virtual |
set the Solver specified by rank is terminated
rank | rank of the Solver |
Implements ParaSolverPool.
Definition at line 1577 of file bbParaSolverPool.h.
References BbParaSolverPool::activeSolvers, BbParaSolverPool::inactivateSolver(), UG::Inactive, UG::InterruptRequested, BbParaSolverPool::isSolverActive(), BbParaSolverPool::pool, SOLVER_POOL_INDEX, BbParaSolverPoolElement::terminated(), and UG::TerminateRequested.
|
virtual |
set the Solver specified by rank is terminate requested
rank | rank of the Solver |
Implements ParaSolverPool.
Definition at line 1544 of file bbParaSolverPool.h.
References BbParaSolverPool::pool, SOLVER_POOL_INDEX, and BbParaSolverPoolElement::terminateRequested().
|
virtual |
update dual bound values of saving BbParaNodes by their dual bound values for subtrees
Definition at line 1959 of file bbParaSolverPool.h.
References BbParaSolverPool::getCurrentTask(), ParaComm::getSize(), and ParaSolverPool::paraComm.
|
pure virtual |
update Solver status
rank | rank of the Solver |
numNodesSolved | number of nodes solved |
numNodesLeft | number of nodes left |
solverLocalBestBound | best bound value in the Solver |
paraNodePool | pointer to BbParaNodePool object |
Implemented in BbParaSolverPoolForMinimization.
|
virtual |
write BbParaNodes to checkpoint file
out | ogzstream to output |
Definition at line 1977 of file bbParaSolverPool.h.
References BbParaNode::getAncestor(), BbParaSolverPool::getCurrentTask(), ParaComm::getSize(), BbParaNode::next, ParaSolverPool::paraComm, and BbParaNode::write().
|
virtual |
write Solver statistics to checkpoint file
out | ogzstream to output |
Definition at line 2007 of file bbParaSolverPool.h.
References ParaComm::getSize(), BbParaSolverPoolElement::getTermState(), BbParaSolverPool::getTermState(), ParaSolverPool::paraComm, BbParaSolverPool::pool, SOLVER_POOL_INDEX, and ParaSolverTerminationState::write().
|
protected |
allowable absolute dual bound gap to the best Solver
Definition at line 1355 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::BbParaSolverPool(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
indicate if this pool is active or not
Definition at line 1351 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activate(), BbParaSolverPool::activateSolver(), and BbParaSolverPool::isActive().
|
protected |
pointers to active Solvers
Definition at line 1368 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPool::addNewSubtreeRootNode(), BbParaSolverPool::deleteCurrentSubtreeRootNode(), BbParaSolverPool::extractSelfSplitSubtreeRootNode(), BbParaSolverPool::getNumActiveSolvers(), BbParaSolverPool::getSelfSplitSubtreeRootNodes(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::makeSubtreeRootNodeCurrent(), BbParaSolverPool::removeSubtreeRootNode(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::solverDied(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchOutCollectingMode(), BbParaSolverPool::terminated(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
before finishing first collecting mode
Definition at line 1366 of file bbParaSolverPool.h.
Referenced by BbParaSolverPoolForMinimization::switchInCollectingMode().
|
protected |
before initial collecting mode
Definition at line 1365 of file bbParaSolverPool.h.
Referenced by BbParaSolverPoolForMinimization::switchInCollectingMode().
|
protected |
threshold value of gap
Definition at line 1352 of file bbParaSolverPool.h.
Referenced by BbParaSolverPoolForMinimization::switchInCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
breaking the first subtree
Definition at line 1364 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::BbParaSolverPool(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPoolForMinimization::switchInCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
pointers to candidates of collecting mode Solvers
Definition at line 1370 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchInCollectingToSolver(), BbParaSolverPool::switchOutCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
indicate that this system is in collecting mode or not
Definition at line 1363 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::addNewSubtreeRootNode(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::isInCollectingMode(), BbParaSolverPool::reinitToRestart(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchOutCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
pointers to collecting mode Solvers in ascending or descending order
Definition at line 1374 of file bbParaSolverPool.h.
Referenced by BbParaSolverPoolForMinimization::BbParaSolverPoolForMinimization(), BbParaSolverPool::enforcedSwitchOutCollectingMode(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::sendSwitchOutCollectingModeIfNecessary(), BbParaSolverPool::solverDied(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchInCollectingToSolver(), BbParaSolverPoolForMinimization::updateSolverStatus(), and BbParaSolverPoolForMinimization::~BbParaSolverPoolForMinimization().
|
protected |
pointers to dead Solvers
Definition at line 1369 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::solverDied().
|
protected |
pointers to inactive Solvers
Definition at line 1367 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPool::BbParaSolverPool(), BbParaSolverPool::getInactiveSolverRank(), BbParaSolverPool::getNumInactiveSolvers(), BbParaSolverPool::inactivateSolver(), and BbParaSolverPool::resetCountersInSolver().
|
protected |
multiplier of the bgap value
Definition at line 1354 of file bbParaSolverPool.h.
Referenced by BbParaSolverPoolForMinimization::switchInCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
multiplier for the number of collecting BbParaNodes
Definition at line 1376 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPool::getMCollectingNodes(), BbParaSolverPool::reinitToRestart(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchInCollectingToSolver(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
maximum multiplier for the number of collecting BbParaNodes
Definition at line 1377 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::getMMaxCollectingNodes(), and BbParaSolverPoolForMinimization::switchInCollectingMode().
|
protected |
multiplier of the threshold value p
Definition at line 1353 of file bbParaSolverPool.h.
|
protected |
number of collecting mode Solvers
Definition at line 1357 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::enforcedSwitchOutCollectingMode(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::reinitToRestart(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::sendSwitchOutCollectingModeIfNecessary(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchInCollectingToSolver(), BbParaSolverPool::switchOutCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
the number of dual bound gain testing Solvers
Definition at line 1378 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPool::switchOutCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
number of generators
Definition at line 1356 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::BbParaSolverPool().
|
protected |
limit number of Solvers that can be in collecting mode
Definition at line 1359 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::BbParaSolverPool(), BbParaSolverPool::canIncreaseLimitNLimitCollectingModeSolvers(), BbParaSolverPool::getNLimitCollectingModeSolvers(), BbParaSolverPool::incNLimitCollectingModeSolvers(), BbParaSolverPool::reinitToRestart(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchInCollectingToSolver(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
maximum number of Solvers that can be in collecting mode
Definition at line 1358 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::BbParaSolverPool(), BbParaSolverPoolForMinimization::BbParaSolverPoolForMinimization(), BbParaSolverPool::canIncreaseLimitNLimitCollectingModeSolvers(), and BbParaSolverPool::incNLimitCollectingModeSolvers().
|
protected |
number of nodes in all Solvers
Definition at line 1362 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPool::getNnodesInSolvers(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::solverDied(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
number of nodes solved in current running Solvers
Definition at line 1360 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::addNumNodesSolved(), BbParaSolverPool::getNnodesSolvedInSolvers(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::solverDied(), and BbParaSolverPoolForMinimization::updateSolverStatus().
|
protected |
number of nodes solved : updated at termination of subtree computation
Definition at line 1361 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::addTotalNodesSolved(), and BbParaSolverPool::getTotalNodesSolved().
|
protected |
Solver pool indexed by Solver's rank.
Definition at line 1372 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPool::addNewSubtreeRootNode(), BbParaSolverPool::BbParaSolverPool(), BbParaSolverPool::currentSolvingNodehaeDescendant(), BbParaSolverPool::deleteCurrentSubtreeRootNode(), BbParaSolverPool::enforcedSwitchOutCollectingMode(), BbParaSolverPool::extractCurrentNodeAndInactivate(), BbParaSolverPool::extractSelfSplitSubtreeRootNode(), BbParaSolverPool::extractSelfSplitSubtreeRootNodes(), BbParaSolverPool::getCurrentTask(), BbParaSolverPool::getDualBoundValue(), BbParaSolverPool::getNumOfNodesLeft(), BbParaSolverPool::getNumOfNodesSolved(), BbParaSolverPool::getSelfSplitSubtreeRootNodes(), BbParaSolverPool::getTermState(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::interruptRequested(), BbParaSolverPool::isDualBounGainTesting(), BbParaSolverPool::isInterruptRequested(), BbParaSolverPool::isSolverActive(), BbParaSolverPool::isSolverInCollectingMode(), BbParaSolverPool::isTerminated(), BbParaSolverPool::isTerminateRequested(), BbParaSolverPool::makeSubtreeRootNodeCurrent(), BbParaSolverPool::removeSubtreeRootNode(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::sendSwitchOutCollectingModeIfNecessary(), BbParaSolverPool::setCollectingIsAllowed(), BbParaSolverPool::setTermState(), BbParaSolverPool::solverDied(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchInCollectingToSolver(), BbParaSolverPool::switchOutCollectingMode(), BbParaSolverPool::terminated(), BbParaSolverPool::terminateRequested(), BbParaSolverPoolForMinimization::updateSolverStatus(), BbParaSolverPool::writeSolverStatisticsToCheckpointFile(), and BbParaSolverPool::~BbParaSolverPool().
|
protected |
pointers to active Solvers in ascending or descending order
Definition at line 1373 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::activateSolver(), BbParaSolverPoolForMinimization::BbParaSolverPoolForMinimization(), BbParaSolverPool::getBestSolver(), BbParaSolverPoolForMinimization::getGlobalBestDualBoundValue(), BbParaSolverPool::getGoodSolverSolvingEssentialNode(), BbParaSolverPool::getNumOfNodesLeftInBestSolver(), BbParaSolverPool::inactivateSolver(), BbParaSolverPool::resetCountersInSolver(), BbParaSolverPool::solverDied(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPoolForMinimization::updateSolverStatus(), and BbParaSolverPoolForMinimization::~BbParaSolverPoolForMinimization().
|
protected |
switch out time
Definition at line 1375 of file bbParaSolverPool.h.
Referenced by BbParaSolverPool::getSwichOutTime(), BbParaSolverPool::reinitToRestart(), BbParaSolverPool::setSwichOutTime(), BbParaSolverPoolForMinimization::switchInCollectingMode(), BbParaSolverPool::switchOutCollectingMode(), and BbParaSolverPoolForMinimization::updateSolverStatus().