Scippy

UG

Ubiquity Generator framework

BbParaSolverPoolElement Class Reference

class BbParaSolverPoolElement (This class includes information about a Solver status) More...

#include <bbParaSolverPool.h>

Public Member Functions

 BbParaSolverPoolElement (int inRank)
 constructor More...
 
 ~BbParaSolverPoolElement ()
 destractor More...
 
int getRank ()
 get rank of the Solver More...
 
ParaTaskgetCurrentNode ()
 get current solving BbParaNode More...
 
BbParaNodegetSelfSplitNodes ()
 get a list of nodes which are generated by self-split ramp-up More...
 
BbParaNodeextractSelfSplitNodes ()
 extract a list of nodes which are generated by self-split ramp-up More...
 
void addSubtreeRoot (BbParaNode *inNode)
 add subtree root node More...
 
void makeSubtreeRootCurrent (BbParaNode *inNode)
 make subtree root node current More...
 
void removeSubtreeRoot (BbParaNode *inNode)
 remove subtree root node in self-split nodes list More...
 
BbParaNodeextractSubtreeRoot (BbParaNode *inNode)
 extract subtree root node More...
 
BbParaNodeextractCurrentNode ()
 extract current solving BbParaNode More...
 
void deleteCurrentNode ()
 delete current solving BbParaNode More...
 
BbParaSolverPoolElementPtrgetSelectionHeapElement ()
 extract current solving BbParaNode More...
 
void setSelectionHeapElement (BbParaSolverPoolElementPtr *inSelectionHeapElement)
 set selection heap element More...
 
BbParaSolverPoolElementPtrgetCollectingModeSolverHeapElement ()
 get collecting mode Solver heap element More...
 
void setCollectingModeSolverHeapElement (BbParaSolverPoolElementPtr *inCollectingModeSolverHeapElement)
 set collecting mode Solver heap element More...
 
long long getNumOfNodesSolved ()
 get number of nodes solved More...
 
int getNumOfNodesLeft ()
 get number of nodes left More...
 
void setNumOfNodesSolved (long long inNumOfNodesSolved)
 set number of nodes solved More...
 
int getNumOfDiffNodesSolved ()
 get number of nodes left difference between current number and that in the previous notification time More...
 
void setNumOfDiffNodesSolved (int inNumOfDiff)
 set number of nodes left difference between current number and that in the previous notification time More...
 
void setNumOfNodesLeft (int inNumOfNodesLeft)
 set number of nodes left More...
 
void setDualBoundValue (double dualBoundValue)
 set dual bound value on paraNode More...
 
int getNumOfDiffNodesLeft ()
 get number of nodes left difference between current number and that in the previous notification time More...
 
void setNumOfDiffNodesLeft (int inNumOfDiff)
 set number of nodes left difference between current number and that in the previous notification time More...
 
double getBestDualBoundValue ()
 get best dual bound value More...
 
void setBestDualBoundValue (double inBestDualBoundValue)
 set best dual bound value More...
 
void activate (BbParaNode *inNode)
 activate this Solver More...
 
void racingActivate ()
 activate this Solver as a racing Solver More...
 
void inactivate ()
 inactivate this Solver More...
 
BbParaNodedied ()
 kill this Solver More...
 
SolverStatus getStatus ()
 get Solver status More...
 
void interruptRequested ()
 set TerminateRequseted on Solver status More...
 
void terminateRequested ()
 set TerminateRequseted on Solver status More...
 
void terminated ()
 set Terminated on Solver status More...
 
bool isActive ()
 check if this Solver is active or not More...
 
bool isOutCollectingMode ()
 check if this Solver is out of collecting mode or not More...
 
bool isInCollectingMode ()
 check if this Solver is in collecting mode or not More...
 
void setCollectingMode (bool b)
 set collecting mode More...
 
bool isCandidateOfCollecting ()
 check if this Solver is candidate of collecting mode Solver More...
 
void setCandidateOfCollecting (bool b)
 set candidate of collecting mode Solver More...
 
void setTermState (ParaSolverTerminationState *inTermState)
 set termination state More...
 
ParaSolverTerminationStategetTermState ()
 get termination state More...
 
void switchIntoEvaluation ()
 switch into evaluation stage More...
 
void switchOutEvaluation ()
 switch out of evaluation stage More...
 
bool isRacingStage ()
 check if this Solver is in racing stage More...
 
bool isEvaluationStage ()
 check if this Solver is in evaluation stage More...
 
void setNoGenerator ()
 make this Solver No generator More...
 
bool isGenerator ()
 check if this Solver is generator or not */ More...
 
void prohibitCollectingMode ()
 prohibits to be in collecting mode More...
 
void setCollectingIsAllowed ()
 allows to be in collecting mode More...
 
bool isCollectingProhibited ()
 check if this Solver cannot be allowed in collecting mode More...
 
bool isDualBoundGainTesting ()
 check if dual bound gain is testing in this Solver or not More...
 
void setDualBoundGainTesting (bool value)
 set dual bound gain is testing value More...
 

Private Attributes

int rank
 rank of the Solver More...
 
SolverStatus status
 status of the Solver More...
 
bool collectingMode
 indicate if current Solver is in collecting mode or not More...
 
bool candidateOfCollecting
 indicate that this Solver is a candidate of collecting mode Solver More...
 
bool generator
 this Solver can generate subproblems More...
 
bool collectingIsProhibited
 collecting is temporary prohibited More...
 
bool dualBoundGainTesting
 indicate that dual bound gain is testing or not More...
 
BbParaNodecurrentNode
 solving node More...
 
BbParaNodeselfSplitNodes
 list of nodes generated by self-split ramp-up More...
 
BbParaSolverPoolElementPtrselectionHeapElement
 pointer to selection heap element More...
 
BbParaSolverPoolElementPtrcollectingModeSolverHeapElement
 

pointer to collecting mode heap element

the following values are used to make decision for load balancing

More...
 
long long numOfNodesSolved
 number of nodes solved. -1 is the special value which means never updated in racing More...
 
int numOfDiffNodesSolved
 number of nodes solved difference between current number and that in the previous notification time More...
 
int numOfNodesLeft
 number of nodes left More...
 
int numOfDiffNodesLeft
 number of nodes left difference between current number and that in the previous notification time More...
 
double bestDualBoundValue
 best dual bound value of the Solver More...
 
ParaSolverTerminationStatetermState
 Solver termination statistics: for checkpoint. More...
 

Detailed Description

class BbParaSolverPoolElement (This class includes information about a Solver status)

Definition at line 63 of file bbParaSolverPool.h.

Constructor & Destructor Documentation

◆ BbParaSolverPoolElement()

◆ ~BbParaSolverPoolElement()

Member Function Documentation

◆ activate()

void activate ( BbParaNode inNode)

activate this Solver

Parameters
inNodepointer to BbParaNode object to activate Solver

Definition at line 562 of file bbParaSolverPool.h.

References UG::Active, and BbParaNode::getDualBoundValue().

◆ addSubtreeRoot()

void addSubtreeRoot ( BbParaNode inNode)

add subtree root node

add the end, since it would be most like to be solved in this order

Parameters
inNodeBbParaNode to be added

Definition at line 219 of file bbParaSolverPool.h.

References ParaTask::isRootTask(), BbParaNode::next, and BbParaSolverPoolElement::selfSplitNodes.

◆ deleteCurrentNode()

void deleteCurrentNode ( )

delete current solving BbParaNode

Definition at line 385 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::currentNode, and BbParaNode::next.

◆ died()

BbParaNode* died ( )

kill this Solver

Returns
pointer to BbParaNode object assigned to this Solver

Definition at line 616 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::currentNode, and UG::Dead.

◆ extractCurrentNode()

BbParaNode* extractCurrentNode ( )

extract current solving BbParaNode

Returns
pointer to BbParaNode object

Definition at line 373 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::currentNode, and BbParaNode::next.

Referenced by BbParaSolverPool::extractCurrentNodeAndInactivate().

◆ extractSelfSplitNodes()

BbParaNode* extractSelfSplitNodes ( )

extract a list of nodes which are generated by self-split ramp-up

Returns
pointer to BbParaNode object

Definition at line 172 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::selfSplitNodes.

◆ extractSubtreeRoot()

BbParaNode* extractSubtreeRoot ( BbParaNode inNode)

extract subtree root node

Parameters
inNodeBbParaNode to be removed

Definition at line 327 of file bbParaSolverPool.h.

References BbParaNode::isSameNodeIdAs(), BbParaNode::next, BbParaSolverPoolElement::selfSplitNodes, and THROW_LOGICAL_ERROR1.

◆ getBestDualBoundValue()

◆ getCollectingModeSolverHeapElement()

◆ getCurrentNode()

ParaTask* getCurrentNode ( )

get current solving BbParaNode

Returns
pointer to BbParaNode object

Definition at line 152 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::currentNode.

Referenced by BbParaSolverPool::currentSolvingNodehaeDescendant(), and BbParaSolverPool::getCurrentTask().

◆ getNumOfDiffNodesLeft()

int getNumOfDiffNodesLeft ( )

get number of nodes left difference between current number and that in the previous notification time

Returns
number of nodes left difference between current number and that in the previous notification time

Definition at line 522 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::numOfDiffNodesLeft.

Referenced by CollectingModeSolverHeap::toString().

◆ getNumOfDiffNodesSolved()

int getNumOfDiffNodesSolved ( )

get number of nodes left difference between current number and that in the previous notification time

Returns
number of nodes left difference between current number and that in the previous notification time

Definition at line 481 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::numOfDiffNodesSolved.

◆ getNumOfNodesLeft()

int getNumOfNodesLeft ( )

◆ getNumOfNodesSolved()

long long getNumOfNodesSolved ( )

get number of nodes solved

Returns
number of nodes solved

Definition at line 451 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::numOfNodesSolved.

Referenced by BbParaSolverPool::getNumOfNodesSolved(), and BbParaRacingSolverPool::getNumOfNodesSolved().

◆ getRank()

◆ getSelectionHeapElement()

BbParaSolverPoolElementPtr* getSelectionHeapElement ( )

extract current solving BbParaNode

Returns
pointer to BbParaNode object get selection heap element
pointer to BbParaSolverPoolElementPtr

Definition at line 411 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::selectionHeapElement.

Referenced by DescendingSelectionHeap::deleteElement(), AscendingSelectionHeap::deleteElement(), DescendingSelectionHeap::updateDualBoundValue(), and AscendingSelectionHeap::updateDualBoundValue().

◆ getSelfSplitNodes()

BbParaNode* getSelfSplitNodes ( )

get a list of nodes which are generated by self-split ramp-up

Returns
pointer to BbParaNode object

Definition at line 162 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::selfSplitNodes.

◆ getStatus()

◆ getTermState()

ParaSolverTerminationState* getTermState ( )

get termination state

Returns
pointer to ParaSolverTerminationState object

Definition at line 748 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::termState.

Referenced by BbParaSolverPool::getTermState(), and BbParaSolverPool::updateDualBoundsForSavingNodes().

◆ inactivate()

void inactivate ( )

inactivate this Solver

do not touch "generator"

Definition at line 592 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::currentNode, and UG::Inactive.

Referenced by BbParaRacingSolverPool::inactivateSolver().

◆ interruptRequested()

void interruptRequested ( )

set TerminateRequseted on Solver status

Definition at line 646 of file bbParaSolverPool.h.

References UG::InterruptRequested.

Referenced by BbParaSolverPool::interruptRequested(), and BbParaRacingSolverPool::interruptRequested().

◆ isActive()

bool isActive ( )

check if this Solver is active or not

Returns
true if this Solver is active, false otherwise

Definition at line 677 of file bbParaSolverPool.h.

References UG::Active.

Referenced by BbParaSolverPool::isSolverActive().

◆ isCandidateOfCollecting()

bool isCandidateOfCollecting ( )

check if this Solver is candidate of collecting mode Solver

Returns
true if this Solver is candidate, false otherwise

Definition at line 717 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::candidateOfCollecting.

◆ isCollectingProhibited()

bool isCollectingProhibited ( )

check if this Solver cannot be allowed in collecting mode

Returns
true if this Solver cannot be allowed in collecting mode, false otherwise

Definition at line 835 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::collectingIsProhibited.

◆ isDualBoundGainTesting()

bool isDualBoundGainTesting ( )

check if dual bound gain is testing in this Solver or not

Returns
true if dual bound gain is testing, false otherwise

Definition at line 845 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::dualBoundGainTesting.

Referenced by BbParaSolverPool::isDualBounGainTesting().

◆ isEvaluationStage()

bool isEvaluationStage ( )

check if this Solver is in evaluation stage

Returns
true if this Solver is in evaluation stage, false otherwise

Definition at line 788 of file bbParaSolverPool.h.

References UG::RacingEvaluation.

Referenced by BbParaRacingSolverPool::inactivateSolver(), BbParaRacingSolverPool::isEvaluationStage(), and BbParaRacingSolverPool::isSolverActive().

◆ isGenerator()

bool isGenerator ( )

check if this Solver is generator or not */

Returns
true if this Solver is generator, false otherwise

Definition at line 807 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::generator.

◆ isInCollectingMode()

bool isInCollectingMode ( )

check if this Solver is in collecting mode or not

Returns
true if this Solver is in collecting mode, false otherwise

Definition at line 697 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::collectingMode.

Referenced by BbParaSolverPool::isSolverInCollectingMode(), and CollectingModeSolverHeap::toString().

◆ isOutCollectingMode()

bool isOutCollectingMode ( )

check if this Solver is out of collecting mode or not

Returns
true if this Solver is out of collecting mode, false otherwise

Definition at line 687 of file bbParaSolverPool.h.

◆ isRacingStage()

bool isRacingStage ( )

check if this Solver is in racing stage

Returns
true if this Solver is in racing stage, false otherwise

Definition at line 778 of file bbParaSolverPool.h.

References UG::Racing.

Referenced by BbParaRacingSolverPool::getStrActiveSolerNumbers(), BbParaRacingSolverPool::inactivateSolver(), and BbParaRacingSolverPool::isSolverActive().

◆ makeSubtreeRootCurrent()

void makeSubtreeRootCurrent ( BbParaNode inNode)

make subtree root node current

Returns
if the node is removed or not (The last node is not removed)
Parameters
inNodeBbParaNode to become current

Definition at line 244 of file bbParaSolverPool.h.

References BbParaNode::isSameNodeIdAs(), BbParaNode::next, BbParaSolverPoolElement::selfSplitNodes, and THROW_LOGICAL_ERROR1.

◆ prohibitCollectingMode()

void prohibitCollectingMode ( )

prohibits to be in collecting mode

Definition at line 816 of file bbParaSolverPool.h.

◆ racingActivate()

void racingActivate ( )

activate this Solver as a racing Solver

Definition at line 579 of file bbParaSolverPool.h.

References UG::Racing.

Referenced by BbParaRacingSolverPool::activate().

◆ removeSubtreeRoot()

void removeSubtreeRoot ( BbParaNode inNode)

remove subtree root node in self-split nodes list

Parameters
inNodeBbParaNode to be removed

Definition at line 288 of file bbParaSolverPool.h.

References BbParaNode::isSameNodeIdAs(), BbParaNode::next, BbParaSolverPoolElement::selfSplitNodes, and THROW_LOGICAL_ERROR1.

◆ setBestDualBoundValue()

void setBestDualBoundValue ( double  inBestDualBoundValue)

◆ setCandidateOfCollecting()

void setCandidateOfCollecting ( bool  b)

set candidate of collecting mode Solver

Parameters
btrue or false to be set on candidate flag

Definition at line 726 of file bbParaSolverPool.h.

◆ setCollectingIsAllowed()

void setCollectingIsAllowed ( )

allows to be in collecting mode

Definition at line 825 of file bbParaSolverPool.h.

Referenced by BbParaSolverPool::setCollectingIsAllowed().

◆ setCollectingMode()

void setCollectingMode ( bool  b)

set collecting mode

Parameters
btrue or false to be set on collecting mode

Definition at line 706 of file bbParaSolverPool.h.

◆ setCollectingModeSolverHeapElement()

void setCollectingModeSolverHeapElement ( BbParaSolverPoolElementPtr inCollectingModeSolverHeapElement)

◆ setDualBoundGainTesting()

void setDualBoundGainTesting ( bool  value)

set dual bound gain is testing value

Parameters
valuedual bound gain

Definition at line 854 of file bbParaSolverPool.h.

◆ setDualBoundValue()

void setDualBoundValue ( double  dualBoundValue)

set dual bound value on paraNode

Parameters
dualBoundValuedual bound value

Definition at line 511 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::currentNode.

◆ setNoGenerator()

void setNoGenerator ( )

make this Solver No generator

Definition at line 797 of file bbParaSolverPool.h.

Referenced by BbParaSolverPool::BbParaSolverPool().

◆ setNumOfDiffNodesLeft()

void setNumOfDiffNodesLeft ( int  inNumOfDiff)

set number of nodes left difference between current number and that in the previous notification time

Parameters
inNumOfDiffset number of nodes left difference between current number and that in the previous notification time

Definition at line 531 of file bbParaSolverPool.h.

◆ setNumOfDiffNodesSolved()

void setNumOfDiffNodesSolved ( int  inNumOfDiff)

set number of nodes left difference between current number and that in the previous notification time

Parameters
inNumOfDiffnumber of nodes left difference between current number and that in the previous notification time

Definition at line 490 of file bbParaSolverPool.h.

◆ setNumOfNodesLeft()

void setNumOfNodesLeft ( int  inNumOfNodesLeft)

set number of nodes left

Parameters
inNumOfNodesLeftnumber of nodes left

Definition at line 501 of file bbParaSolverPool.h.

◆ setNumOfNodesSolved()

void setNumOfNodesSolved ( long long  inNumOfNodesSolved)

set number of nodes solved

Parameters
inNumOfNodesSolvednumber of nodes solved

Definition at line 470 of file bbParaSolverPool.h.

◆ setSelectionHeapElement()

void setSelectionHeapElement ( BbParaSolverPoolElementPtr inSelectionHeapElement)

◆ setTermState()

void setTermState ( ParaSolverTerminationState inTermState)

set termination state

Parameters
inTermStatetermination state to be set

Definition at line 736 of file bbParaSolverPool.h.

References BbParaSolverPoolElement::termState.

Referenced by BbParaSolverPool::setTermState().

◆ switchIntoEvaluation()

void switchIntoEvaluation ( )

switch into evaluation stage

Definition at line 757 of file bbParaSolverPool.h.

References UG::Racing, and UG::RacingEvaluation.

◆ switchOutEvaluation()

void switchOutEvaluation ( )

switch out of evaluation stage

Definition at line 767 of file bbParaSolverPool.h.

References UG::Racing, and UG::RacingEvaluation.

◆ terminated()

void terminated ( )

set Terminated on Solver status

Definition at line 666 of file bbParaSolverPool.h.

References UG::Inactive, UG::InterruptRequested, UG::Terminated, and UG::TerminateRequested.

Referenced by BbParaSolverPool::terminated(), and BbParaRacingSolverPool::terminated().

◆ terminateRequested()

void terminateRequested ( )

set TerminateRequseted on Solver status

Definition at line 656 of file bbParaSolverPool.h.

References UG::TerminateRequested.

Referenced by BbParaSolverPool::terminateRequested(), and BbParaRacingSolverPool::terminateRequested().

Member Data Documentation

◆ bestDualBoundValue

double bestDualBoundValue
private

best dual bound value of the Solver

Definition at line 87 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getBestDualBoundValue().

◆ candidateOfCollecting

bool candidateOfCollecting
private

indicate that this Solver is a candidate of collecting mode Solver

Definition at line 69 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::isCandidateOfCollecting().

◆ collectingIsProhibited

bool collectingIsProhibited
private

collecting is temporary prohibited

Definition at line 71 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::isCollectingProhibited().

◆ collectingMode

bool collectingMode
private

indicate if current Solver is in collecting mode or not

Definition at line 68 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::isInCollectingMode(), and BbParaSolverPool::isInCollectingMode().

◆ collectingModeSolverHeapElement

BbParaSolverPoolElementPtr* collectingModeSolverHeapElement
private

pointer to collecting mode heap element

the following values are used to make decision for load balancing

Definition at line 76 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getCollectingModeSolverHeapElement().

◆ currentNode

◆ dualBoundGainTesting

bool dualBoundGainTesting
private

indicate that dual bound gain is testing or not

Definition at line 72 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::isDualBoundGainTesting().

◆ generator

bool generator
private

this Solver can generate subproblems

Definition at line 70 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::isGenerator().

◆ numOfDiffNodesLeft

int numOfDiffNodesLeft
private

number of nodes left difference between current number and that in the previous notification time

Definition at line 85 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getNumOfDiffNodesLeft().

◆ numOfDiffNodesSolved

int numOfDiffNodesSolved
private

number of nodes solved difference between current number and that in the previous notification time

Definition at line 82 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getNumOfDiffNodesSolved().

◆ numOfNodesLeft

int numOfNodesLeft
private

number of nodes left

Definition at line 84 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getNumOfNodesLeft().

◆ numOfNodesSolved

long long numOfNodesSolved
private

number of nodes solved. -1 is the special value which means never updated in racing

Definition at line 80 of file bbParaSolverPool.h.

Referenced by BbParaSolverPool::addNumNodesSolved(), BbParaSolverPool::getInactiveSolverRank(), and BbParaSolverPoolElement::getNumOfNodesSolved().

◆ rank

◆ selectionHeapElement

BbParaSolverPoolElementPtr* selectionHeapElement
private

pointer to selection heap element

Definition at line 75 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getSelectionHeapElement().

◆ selfSplitNodes

◆ status

SolverStatus status
private

status of the Solver

Definition at line 67 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getStatus().

◆ termState

ParaSolverTerminationState* termState
private

Solver termination statistics: for checkpoint.

Definition at line 88 of file bbParaSolverPool.h.

Referenced by BbParaSolverPoolElement::getTermState(), BbParaSolverPoolElement::setTermState(), and BbParaSolverPoolElement::~BbParaSolverPoolElement().