Scippy

UG

Ubiquity Generator framework

BbParaSolverPool Class Referenceabstract

class BbParaSolverPool (Solver Pool base class) More...

#include <bbParaSolverPool.h>

Inheritance diagram for BbParaSolverPool:
ParaSolverPool BbParaSolverPoolForMinimization

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 ParaTaskgetCurrentTask (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 BbParaNodeextractCurrentNodeAndInactivate (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 ParaSolverTerminationStategetTermState (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 BbParaNodeextractSelfSplitSubtreeRootNode (int rank, BbParaNode *node)
 extract self-split subtree root node from the active solver with the specified rank More...
 
virtual BbParaNodegetSelfSplitSubtreeRootNodes (int rank)
 get self-split subtree root node from the active solver with the specified rank More...
 
virtual BbParaNodeextractSelfSplitSubtreeRootNodes (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 BbParaNodesolverDied (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 ParaTaskgetCurrentTask (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, BbParaSolverPoolElementPtrinactiveSolvers
 pointers to inactive Solvers More...
 
std::map< int, BbParaSolverPoolElementPtractiveSolvers
 pointers to active Solvers More...
 
std::map< int, BbParaSolverPoolElementPtrdeadSolvers
 pointers to dead Solvers More...
 
std::multimap< double, BbParaSolverPoolElementPtrcandidatesOfCollectingModeSolvers
 pointers to candidates of collecting mode Solvers More...
 
BbParaSolverPoolElementPtrpool
 Solver pool indexed by Solver's rank. More...
 
SelectionHeapselectionHeap
 pointers to active Solvers in ascending or descending order More...
 
CollectingModeSolverHeapcollectingModeSolverHeap
 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...
 
ParaCommparaComm
 communicator More...
 
ParaParamSetparaParams
 runtime parameters for parallelization More...
 
ParaTimerparaTimer
 timer More...
 

Detailed Description

class BbParaSolverPool (Solver Pool base class)

Definition at line 1346 of file bbParaSolverPool.h.

Constructor & Destructor Documentation

◆ BbParaSolverPool() [1/2]

BbParaSolverPool ( double  inMp,
double  inBgap,
double  inMBgap,
int  inOriginRank,
ParaComm inParaComm,
ParaParamSet inParaParams,
ParaTimer inParaTimer 
)

◆ BbParaSolverPool() [2/2]

BbParaSolverPool ( double  inMp,
double  inBgap,
double  inMBgap,
int  inNSolvers,
int  inOriginRank,
ParaComm inParaComm,
ParaParamSet inParaParams,
ParaTimer inParaTimer 
)

◆ ~BbParaSolverPool()

virtual ~BbParaSolverPool ( )
virtual

destructor

Definition at line 1520 of file bbParaSolverPool.h.

References ParaSolverPool::nSolvers, and BbParaSolverPool::pool.

Member Function Documentation

◆ activate()

virtual void activate ( )
virtual

activate this Solver pool

Definition at line 1629 of file bbParaSolverPool.h.

References BbParaSolverPool::active.

◆ activateSolver() [1/3]

int activateSolver ( BbParaNode paraNode,
BbParaRacingSolverPool paraRacingSolverPool,
bool  rampUpPhase,
int  nGoodNodesInNodePool,
double  averageDualBoundGain 
)
virtual

activate a Solver with specified BbParaNode which is sent within this Solver pool

Returns
rank of Solver which is activated

activate any Solver which is idle

Parameters
paraNodepointer to BbParaNode object to be sent to a Solver
paraRacingSolverPoolpointer to paraRacingSolverPool object to check if the Solver is not solving root node
rampUpPhaseindicate if ramp-up phase or not
nGoodNodesInNodePoolnumber of good BbParaNodes in BbParaNodePool
averageDualBoundGaincurrent 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.

◆ activateSolver() [2/3]

void activateSolver ( int  rank,
BbParaNode paraNode,
int  nGoodNodesInNodePool,
double  averageDualBoundGain 
)
virtual

activate the Solver specified by rank with specified node which has been sent

activate Solver specified by its rank

Parameters
rankrank of the Solver to be activated
paraNodepointer to BbParaNode object to be sent to the Solver
nGoodNodesInNodePoolnumber of good nodes in BbParaNodePool object
averageDualBoundGaincurrent 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().

◆ activateSolver() [3/3]

void activateSolver ( int  rank,
BbParaNode paraNode,
int  nNodesLeft 
)
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

Parameters
rankrank of the Solver to be activated
paraNodepointer to BbParaNode object to be sent to the Solver
nNodesLeftthe 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.

◆ addNewSubtreeRootNode()

void addNewSubtreeRootNode ( int  rank,
BbParaNode node 
)
virtual

◆ addNumNodesSolved()

virtual void addNumNodesSolved ( long long  numOfNodesSolved)
virtual

add number of nodes solved

Parameters
numOfNodesSolvednumber of nodes solved

Definition at line 1831 of file bbParaSolverPool.h.

References BbParaSolverPool::nNodesSolvedInSolvers.

◆ addTotalNodesSolved()

virtual void addTotalNodesSolved ( unsigned long long  num)
virtual

add number of nodes solved in all Solvers

Parameters
numnumber of nodes solved

Definition at line 1676 of file bbParaSolverPool.h.

References BbParaSolverPool::nTotalNodesSolved.

Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().

◆ canIncreaseLimitNLimitCollectingModeSolvers()

virtual bool canIncreaseLimitNLimitCollectingModeSolvers ( )
virtual

check if the number of Solvers in collecting mode can be increased or not

Returns
true if the number can be increased, false otherwise

Definition at line 1738 of file bbParaSolverPool.h.

References BbParaSolverPool::nLimitCollectingModeSolvers, and BbParaSolverPool::nMaxCollectingModeSolvers.

◆ currentSolvingNodehaeDescendant()

virtual bool currentSolvingNodehaeDescendant ( int  rank)
virtual

extract current solving BbParaNode in the Solver specified by rank and inactivate the Solver

Returns
pointer to BbParaNode object check if solving BbParaNode in the Solver specified has descendant or not
true if the Solver has descendant, false otherwise
Parameters
ranksolver rank to be checked

Definition at line 1821 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::getCurrentNode(), ParaTask::hasDescendant(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.

◆ deleteCurrentSubtreeRootNode()

void deleteCurrentSubtreeRootNode ( int  rank)
virtual

◆ enforcedSwitchOutCollectingMode()

void enforcedSwitchOutCollectingMode ( int  rank)
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

Parameters
rankrank 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.

◆ extractCurrentNodeAndInactivate()

virtual BbParaNode * extractCurrentNodeAndInactivate ( int  rank,
BbParaNodePool paraNodePool 
)
virtual

extract current solving BbParaNode in the Solver specified by rank and inactivate the Solver

Returns
pointer to BbParaNode object
Parameters
rankrank of the Solver to be inactivated
paraNodePoolpointer 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.

◆ extractSelfSplitSubtreeRootNode()

BbParaNode * extractSelfSplitSubtreeRootNode ( int  rank,
BbParaNode node 
)
virtual

extract self-split subtree root node from the active solver with the specified rank

Parameters
rankthe active solver rank
nodesubtree 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.

◆ extractSelfSplitSubtreeRootNodes()

BbParaNode * extractSelfSplitSubtreeRootNodes ( int  rank)
virtual

extract self-split subtree root node from the active solver with the specified rank

Parameters
rankthe 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.

◆ getBestSolver()

virtual int getBestSolver ( )
virtual

get rank of the Solver which has top priority in selection criteria

Returns
rank of the Solver

Definition at line 1883 of file bbParaSolverPool.h.

References SelectionHeap::getHeapSize(), BbParaSolverPoolElement::getRank(), BbParaSolverPool::selectionHeap, and SelectionHeap::top().

◆ getCurrentTask()

virtual ParaTask * getCurrentTask ( int  rank)
virtual

◆ getDualBoundValue()

virtual double getDualBoundValue ( int  rank)
virtual

get dual bound value of solving BbParaNode by the Solver specified

Returns
dual bound value
Parameters
rankrank of the Solver

Definition at line 1926 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::getBestDualBoundValue(), BbParaSolverPool::isSolverActive(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.

◆ getGlobalBestDualBoundValue()

virtual double getGlobalBestDualBoundValue ( )
pure virtual

get global best dual bound value

Returns
global best dual bound value

Implemented in BbParaSolverPoolForMinimization.

Referenced by BbParaSolverPool::switchInCollectingToSolver().

◆ getGoodSolverSolvingEssentialNode()

virtual int getGoodSolverSolvingEssentialNode ( )
virtual

get rank of the Solver which has top priority in selection criteria

Returns
rank of the Solver

Definition at line 1900 of file bbParaSolverPool.h.

References SelectionHeap::get(), ParaTask::getAncestor(), BbParaSolverPool::getCurrentTask(), SelectionHeap::getHeapSize(), BbParaSolverPoolElement::getRank(), and BbParaSolverPool::selectionHeap.

◆ getInactiveSolverRank()

virtual int getInactiveSolverRank ( )
virtual

get an inactive Solver rank

Returns
rank of inactivate Solver

Definition at line 2049 of file bbParaSolverPool.h.

References BbParaSolverPool::inactiveSolvers.

◆ getMCollectingNodes()

virtual int getMCollectingNodes ( )
virtual

get multiplier of collecting BbParaNodes

Returns
multiplier of collecting BbParaNodes

Definition at line 2234 of file bbParaSolverPool.h.

References BbParaSolverPool::mCollectingNodes.

Referenced by BbParaLoadCoordinator::processTagTask().

◆ getMMaxCollectingNodes()

virtual int getMMaxCollectingNodes ( )
virtual

get maximum multiplier for the number of collecting BbParaNodes

Returns
maximum multiplier for the number of collecting BbParaNodes

Definition at line 2244 of file bbParaSolverPool.h.

References BbParaSolverPool::mMaxCollectingNodes.

◆ getNLimitCollectingModeSolvers()

virtual std::size_t getNLimitCollectingModeSolvers ( )
virtual

get limit number of Solvers that can be in collecting mode

Returns
limit number of Solvers that can be in collecting mode

Definition at line 1748 of file bbParaSolverPool.h.

References BbParaSolverPool::nLimitCollectingModeSolvers.

◆ getNnodesInSolvers()

virtual unsigned long long getNnodesInSolvers ( )
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().

◆ getNnodesSolvedInSolvers()

virtual unsigned long long getNnodesSolvedInSolvers ( )
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().

◆ getNSolvers()

virtual std::size_t getNSolvers ( )
virtual

get number of Solvers in this Solver pool

Returns
number of Solvers

Definition at line 1649 of file bbParaSolverPool.h.

References ParaSolverPool::nSolvers.

◆ getNumActiveSolvers()

virtual std::size_t getNumActiveSolvers ( )
virtual

get number of active Solvers

Returns
number of active Solvers

Implements ParaSolverPool.

Definition at line 1696 of file bbParaSolverPool.h.

References BbParaSolverPool::activeSolvers.

◆ getNumInactiveSolvers()

virtual std::size_t getNumInactiveSolvers ( )
virtual

◆ getNumOfNodesLeft()

virtual int getNumOfNodesLeft ( int  rank)
virtual

get the number of nodes left by the Solver specified

Returns
the number of nodes left
Parameters
rankrank 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().

◆ getNumOfNodesLeftInBestSolver()

virtual int getNumOfNodesLeftInBestSolver ( )
virtual

get the number of nodes left in the Solver which has the best dual bound value

Returns
the number of nodes left

Definition at line 1866 of file bbParaSolverPool.h.

References SelectionHeap::getHeapSize(), BbParaSolverPoolElement::getNumOfNodesLeft(), BbParaSolverPool::selectionHeap, and SelectionHeap::top().

Referenced by BbParaLoadCoordinator::processTagSolverState().

◆ getNumOfNodesSolved()

virtual long long getNumOfNodesSolved ( int  rank)
virtual

◆ getSelfSplitSubtreeRootNodes()

BbParaNode * getSelfSplitSubtreeRootNodes ( int  rank)
virtual

get self-split subtree root node from the active solver with the specified rank

Parameters
rankthe 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().

◆ getSwichOutTime()

virtual double getSwichOutTime ( )
virtual

the following functions are to omit rebooting collecting mode process

get time of switching out collecting mode

Returns
time of switching out collecting mode

Definition at line 2258 of file bbParaSolverPool.h.

References BbParaSolverPool::switchOutTime.

Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().

◆ getTermState()

virtual ParaSolverTerminationState * getTermState ( int  rank)
virtual

get SolverTermination state of the Solver specified

Returns
pointer to SolverTermination object
Parameters
rankrank of the Solver

Definition at line 1949 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::getTermState(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.

Referenced by BbParaSolverPool::writeSolverStatisticsToCheckpointFile().

◆ getTotalNodesSolved()

virtual unsigned long long getTotalNodesSolved ( )
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.

◆ inactivateSolver()

void inactivateSolver ( int  rank,
long long  numOfNodesSolved,
BbParaNodePool paraNodePool 
)
virtual

inactivate the Solver specified by rank

inactivate the Solver specified by rank

need to have dual bound, so should be before inactivate()

Parameters
rankrank of the Solver to be inactivated
numOfNodesSolvednumber of nodes solved
paraNodePoolpointer 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().

◆ incNLimitCollectingModeSolvers()

virtual void incNLimitCollectingModeSolvers ( )
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.

◆ interruptRequested()

virtual void interruptRequested ( int  rank)
virtual

set the Solver specified by rank is terminate requested

Parameters
rankrank of the Solver

Implements ParaSolverPool.

Definition at line 1533 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::interruptRequested(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.

◆ isActive()

virtual bool isActive ( )
virtual

check if this Solver pool is active or not

Returns
true if this Solver pool is active, false otherwise

Definition at line 1639 of file bbParaSolverPool.h.

References BbParaSolverPool::active.

Referenced by BbParaLoadCoordinator::outputTabularSolvingStatus().

◆ isDualBounGainTesting()

virtual bool isDualBounGainTesting ( int  rank)
virtual

check if dual bound gain testing is proceeding or not in the Solver specified

Returns
true if dual bound gain testing is proceeding, false otherwise
Parameters
rankrank of the Solver

Definition at line 2278 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::isDualBoundGainTesting(), BbParaSolverPool::pool, and SOLVER_POOL_INDEX.

Referenced by BbParaLoadCoordinator::processTagSolverState().

◆ isInCollectingMode()

◆ isInterruptRequested()

virtual bool isInterruptRequested ( int  rank)
virtual

check if the Solver specified by rank is interrupt requested or not

Returns
return true if the Solver is interrupt requested, false otherwise
Parameters
rankrank 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().

◆ isSolverActive()

virtual bool isSolverActive ( int  rank)
virtual

◆ isSolverInCollectingMode()

virtual bool isSolverInCollectingMode ( int  rank)
virtual

get collecting mode of the Solver specified by rank

Returns
true if the Solver is in collecting mode, false otherwise
Parameters
rankrank 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().

◆ isTerminated()

virtual bool isTerminated ( int  rank)
virtual

check if the Solver specified by rank is terminated or not

Returns
return true if the Solver is terminated, false otherwise
Parameters
rankrank of the Solver

Implements ParaSolverPool.

Definition at line 1606 of file bbParaSolverPool.h.

References BbParaSolverPool::pool, SOLVER_POOL_INDEX, and UG::Terminated.

◆ isTerminateRequested()

virtual bool isTerminateRequested ( int  rank)
virtual

check if the Solver specified by rank is terminate requested or not

Returns
return true if the Solver is terminate requested, false otherwise
Parameters
rankrank 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().

◆ makeSubtreeRootNodeCurrent()

void makeSubtreeRootNodeCurrent ( int  rank,
BbParaNode node 
)
virtual

make subtree root node as current task for the specified rank

Parameters
rankthe active solver rank
nodesubtree 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.

◆ reinitToRestart()

◆ removeSubtreeRootNode()

void removeSubtreeRootNode ( int  rank,
BbParaNode node 
)
virtual

remove subtree root node from the active solver with the specified rank

Parameters
rankthe active solver rank
nodesubtree 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.

◆ resetCountersInSolver()

void resetCountersInSolver ( int  rank,
long long  numOfNodesSolved,
int  numOfSelfSplitNodesLeft,
BbParaNodePool paraNodePool 
)
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()

Parameters
rankrank of the Solver to reset counters
numOfNodesSolvednumber of nodes solved
numOfSelfSplitNodesLeftnumber of self-split nodes left
paraNodePoolpointer 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().

◆ sendSwitchOutCollectingModeIfNecessary()

◆ setCollectingIsAllowed()

virtual void setCollectingIsAllowed ( int  rank)
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.

◆ setSwichOutTime()

virtual void setSwichOutTime ( double  time)
virtual

set time of switching out collecting mode

Parameters
timetime of switching out collecting mode

Definition at line 2267 of file bbParaSolverPool.h.

References BbParaSolverPool::switchOutTime.

Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().

◆ setTermState()

virtual void setTermState ( int  rank,
ParaSolverTerminationState inTermState 
)
virtual

set SolverTerminationState to the Solver specified

Parameters
rankrank of the Solver
inTermStatepointer to ParaSolverTerminationState object

Definition at line 1937 of file bbParaSolverPool.h.

References BbParaSolverPool::pool, BbParaSolverPoolElement::setTermState(), and SOLVER_POOL_INDEX.

◆ solverDied()

◆ switchInCollectingMode()

virtual void switchInCollectingMode ( BbParaNodePool paraNodePool)
pure virtual

switch in collecting mode

Parameters
paraNodePoolpointer to BbParaNodePool object

Implemented in BbParaSolverPoolForMinimization.

Referenced by BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().

◆ switchInCollectingToSolver()

◆ switchOutCollectingMode()

◆ terminated()

virtual void terminated ( int  rank)
virtual

◆ terminateRequested()

virtual void terminateRequested ( int  rank)
virtual

set the Solver specified by rank is terminate requested

Parameters
rankrank of the Solver

Implements ParaSolverPool.

Definition at line 1544 of file bbParaSolverPool.h.

References BbParaSolverPool::pool, SOLVER_POOL_INDEX, and BbParaSolverPoolElement::terminateRequested().

◆ updateDualBoundsForSavingNodes()

virtual void updateDualBoundsForSavingNodes ( )
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.

◆ updateSolverStatus()

virtual void updateSolverStatus ( int  rank,
long long  numNodesSolved,
int  numNodesLeft,
double  solverLocalBestBound,
BbParaNodePool paraNodePool 
)
pure virtual

update Solver status

Parameters
rankrank of the Solver
numNodesSolvednumber of nodes solved
numNodesLeftnumber of nodes left
solverLocalBestBoundbest bound value in the Solver
paraNodePoolpointer to BbParaNodePool object

Implemented in BbParaSolverPoolForMinimization.

◆ writeParaNodesToCheckpointFile()

virtual int writeParaNodesToCheckpointFile ( gzstream::ogzstream &  out)
virtual

write BbParaNodes to checkpoint file

Returns
the number of BbParaNodes saved
Parameters
outogzstream to output

Definition at line 1977 of file bbParaSolverPool.h.

References BbParaNode::getAncestor(), BbParaSolverPool::getCurrentTask(), ParaComm::getSize(), BbParaNode::next, ParaSolverPool::paraComm, and BbParaNode::write().

◆ writeSolverStatisticsToCheckpointFile()

virtual int writeSolverStatisticsToCheckpointFile ( gzstream::ogzstream &  out)
virtual

write Solver statistics to checkpoint file

Returns
the number of Solvers whose statistics were written
Parameters
outogzstream 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().

Member Data Documentation

◆ absoluteGap

double absoluteGap
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().

◆ active

bool active
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().

◆ activeSolvers

◆ beforeFinishingFirstCollect

bool beforeFinishingFirstCollect
protected

before finishing first collecting mode

Definition at line 1366 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolForMinimization::switchInCollectingMode().

◆ beforeInitialCollect

bool beforeInitialCollect
protected

before initial collecting mode

Definition at line 1365 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolForMinimization::switchInCollectingMode().

◆ bgap

double bgap
protected

◆ breakingFirstSubtree

◆ candidatesOfCollectingModeSolvers

◆ collectingMode

◆ collectingModeSolverHeap

◆ deadSolvers

std::map< int, BbParaSolverPoolElementPtr > deadSolvers
protected

pointers to dead Solvers

Definition at line 1369 of file bbParaSolverPool.h.

Referenced by BbParaSolverPool::solverDied().

◆ inactiveSolvers

◆ mBgap

double mBgap
protected

◆ mCollectingNodes

◆ mMaxCollectingNodes

int mMaxCollectingNodes
protected

maximum multiplier for the number of collecting BbParaNodes

Definition at line 1377 of file bbParaSolverPool.h.

Referenced by BbParaSolverPool::getMMaxCollectingNodes(), and BbParaSolverPoolForMinimization::switchInCollectingMode().

◆ mp

double mp
protected

multiplier of the threshold value p

Definition at line 1353 of file bbParaSolverPool.h.

◆ nCollectingModeSolvers

◆ nDualBoundGainTesting

int nDualBoundGainTesting
protected

◆ nGenerator

std::size_t nGenerator
protected

number of generators

Definition at line 1356 of file bbParaSolverPool.h.

Referenced by BbParaSolverPool::BbParaSolverPool().

◆ nLimitCollectingModeSolvers

◆ nMaxCollectingModeSolvers

std::size_t nMaxCollectingModeSolvers
protected

◆ nNodesInSolvers

◆ nNodesSolvedInSolvers

◆ nTotalNodesSolved

unsigned long long nTotalNodesSolved
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().

◆ pool

BbParaSolverPoolElementPtr* pool
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().

◆ selectionHeap

◆ switchOutTime