class BbParaNode More...
#include <bbParaNode.h>
Public Member Functions | |
| BbParaNode () | |
| default constructor More... | |
| BbParaNode (TaskId inNodeId, TaskId inGeneratorNodeId, int inDepth, double inDualBoundValue, double inOriginalDualBoundValue, double inEstimatedValue, ParaDiffSubproblem *inDiffSubproblem) | |
| constructor More... | |
| virtual | ~BbParaNode () |
| destructor More... | |
| int | getDepth () |
| getter of depth More... | |
| void | setDepth (int inDepth) |
| setter of depth More... | |
| double | getDualBoundValue () |
| getter of dual bound value More... | |
| double | getInitialDualBoundValue () |
| getter of initial dual bound value More... | |
| void | setDualBoundValue (double inDualBoundValue) |
| setter of dual bound value More... | |
| void | setInitialDualBoundValue (double inTrueDualBoundValue) |
| setter of initial dual bound value More... | |
| void | resetDualBoundValue () |
| reset dual bound value More... | |
| BbParaDiffSubproblem * | getDiffSubproblem () |
| getter of diffSubproblem More... | |
| void | setDiffSubproblem (BbParaDiffSubproblem *inDiffSubproblem) |
| setter of diffSubproblem */ More... | |
| ParaTaskGenealogicalPtr * | getAncestor () |
| getter of ancestor More... | |
| void | setAncestor (ParaTaskGenealogicalPtr *inAncestor) |
| setter of ancestor More... | |
| void | removeDescendant (TaskId removeNodeId) |
| remove a descendant More... | |
| bool | hasDescendant () |
| check if this node has descendant or not More... | |
| void | addDescendant (ParaTaskGenealogicalPtr *inDescendant) |
| add a descendant More... | |
| void | updateInitialDualBoundToSubtreeDualBound () |
| update initial dual bound value by checking descendant dual bound values More... | |
| double | getMinimumDualBoundInDesendants (double value) |
| get minimum dual bound value in descendants More... | |
| virtual BbParaNode * | clone (ParaComm *comm)=0 |
| clone this BbParaNode More... | |
| virtual int | bcast (ParaComm *comm, int root)=0 |
| broadcast this object More... | |
| virtual int | send (ParaComm *comm, int destination)=0 |
| send this object More... | |
| virtual int | receive (ParaComm *comm, int source)=0 |
| receive this object More... | |
| virtual int | sendNewSubtreeRoot (ParaComm *comm, int destination)=0 |
| send new subtree root node More... | |
| virtual int | sendSubtreeRootNodeId (ParaComm *comm, int destination, int tag)=0 |
| send subtree root to be removed More... | |
| virtual int | receiveNewSubtreeRoot (ParaComm *comm, int source)=0 |
| receive this object More... | |
| virtual int | receiveSubtreeRootNodeId (ParaComm *comm, int source, int tag)=0 |
| receive this object node Id More... | |
| void | write (gzstream::ogzstream &out) |
| write to checkpoint file More... | |
| bool | read (ParaComm *comm, gzstream::igzstream &in, bool onlyBoundChanges) |
| read from checkpoint file More... | |
| const std::string | toString () |
| stringfy BbParaNode More... | |
| const std::string | toSimpleString () |
| stringfy BbParaNode as simple string More... | |
| void | setMergeNodeInfo (BbParaMergeNodeInfo *mNode) |
| set merge node information to this BbParaNode object More... | |
| BbParaMergeNodeInfo * | getMergeNodeInfo () |
| get merge node information struct More... | |
| void | setMergingStatus (int status) |
| set merging status More... | |
| int | getMergingStatus () |
| get merging status More... | |
| bool | areNodesCollected () |
| check if nodes are collected or not More... | |
| void | collectsNodes () |
| set all nodes are collected TODO: this function has to be investigated More... | |
| bool | isSameNodeIdAs (const BbParaNode &inNode) |
| check if this node's id is the same as that of argument ParaNode's task id More... | |
Public Member Functions inherited from ParaTask | |
| ParaTask () | |
| default constructor More... | |
| ParaTask (const ParaTask ¶Task) | |
| copy constructor More... | |
| ParaTask (TaskId inTaskId, TaskId inGeneratorTaskId, double inEstimatedValue, ParaDiffSubproblem *inDiffSubproblem) | |
| constructor More... | |
| virtual | ~ParaTask () |
| destructor More... | |
| bool | isRootTask () |
| check if root task or not More... | |
| bool | isSameTaskIdAs (const ParaTask &inTask) |
| check if this task id is the same as argument ParaTask's task id More... | |
| bool | isSameParetntTaskIdAs (const ParaTask &inTask) |
| check if this task's parent id is the same as that of argument ParaTask's task id More... | |
| bool | isSameParetntTaskSubtaskIdAs (const TaskId &inTaskId) |
| check if this task's parent subtree id is the same as that of argument ParaTask's task id More... | |
| bool | isSameSubtaskIdAs (const ParaTask &inTask) |
| check if this task's subtask id is the same as that of argument ParaTask's task id More... | |
| bool | isSameLcIdAs (const ParaTask &inTask) |
| check if this task's global subtask id in LC is the same as that of argument ParaTask's task id More... | |
| bool | isSameLcIdAs (const int lcId) |
| check if this task's global subtask LC id is the same as LC id of argument More... | |
| bool | isSameGlobalSubtaskIdInLcAs (const ParaTask &inTask) |
| check if this task's global subtask id in LC is the same as that of argument ParaTask's task id More... | |
| bool | isSameGlobalSubtaskIdInLcAs (const int globalSubtaskIdInLc) |
| check if this task's global subtask id in LC is the same as that of argument More... | |
| int | getLcId () |
| getter of LoadCoordinator id More... | |
| int | getGlobalSubtaskIdInLc () |
| getter of global subtask id in Solvers managed by LoadCoordinator More... | |
| void | setGlobalSubtaskId (int lcId, int subtaskId) |
| setter of global subtask id More... | |
| int | getSolverId () |
| getter of Solver id More... | |
| void | setSolverId (int id) |
| setter of Solver id More... | |
| TaskId | getTaskId () |
| getter of task id More... | |
| void | setTaskId (TaskId inTaskId) |
| setter of task id More... | |
| TaskId | getGeneratorTaskId () |
| getter of generator task id More... | |
| void | setGeneratorTaskId (TaskId inGeneratorTaskId) |
| setter of generator task id More... | |
| double | getEstimatedValue () |
| getter of estimated value More... | |
| void | setEstimatedValue (double inEstimatedValue) |
| setter of estimated value More... | |
| ParaDiffSubproblem * | getDiffSubproblem () |
| getter of diffSubproblem More... | |
| void | setDiffSubproblem (ParaDiffSubproblem *inDiffSubproblem) |
| setter of diffSubproblem */ More... | |
| ParaTaskGenealogicalPtr * | getAncestor () |
| getter of ancestor More... | |
| void | setAncestor (ParaTaskGenealogicalPtr *inAncestor) |
| setter of ancestor More... | |
| void | removeDescendant (TaskId removeTaskId) |
| remove a descendant More... | |
| bool | hasDescendant () |
| check if this task has descendant or not More... | |
| void | addDescendant (ParaTaskGenealogicalPtr *inDescendant) |
| add a descendant More... | |
| virtual ParaTask * | clone (ParaComm *comm)=0 |
| clone this ParaTask More... | |
| virtual int | bcast (ParaComm *comm, int root)=0 |
| broadcast this object More... | |
| virtual int | send (ParaComm *comm, int destination)=0 |
| send this object More... | |
| virtual int | receive (ParaComm *comm, int source)=0 |
| receive this object More... | |
| virtual void | write (gzstream::ogzstream &out)=0 |
| write to checkpoint file More... | |
| virtual const std::string | toString () |
| stringfy ParaTask More... | |
| virtual const std::string | toSimpleString () |
| stringfy ParaTask as simple string More... | |
Public Attributes | |
| BbParaNode * | next |
| this pointer is used in case of self-split ramp-up in LC this field is not transferred More... | |
Public Attributes inherited from ParaTask | |
| TaskId | taskId |
| solving task information More... | |
| TaskId | generatorTaskId |
| subtree root task id of generator More... | |
| ParaTaskGenealogicalPtr * | ancestor |
| pointer to ancestor ParaTask : This field is not transferred More... | |
| std::map< TaskId, ParaTaskGenealogicalPtrPtr > | descendants |
| collection of pointers to descendants : This filed is not transferred More... | |
Protected Attributes | |
| int | depth |
| depth from the root node of original tree More... | |
| double | dualBoundValue |
| dual bound value More... | |
| double | initialDualBoundValue |
| dual bound value when this node is created This value is updated to precise one when there is guarantee More... | |
| int | basisInfo |
| indicate if basis information is including or not More... | |
| int | mergingStatus |
| merging status: -1 - no merging node, 0 - checking, 1 - merged (representative) 2 - merged to the other node 3 - cannot be merged 4 - merging representative was deleted More... | |
| BbParaMergeNodeInfo * | mergeNodeInfo |
| pointer to mergeNodeInfo. Not zero means merging More... | |
| bool | nodesAreCollected |
| subproblems generated from this nodes are collected at interruption. this field is not transferred More... | |
Protected Attributes inherited from ParaTask | |
| double | estimatedValue |
| estimate value More... | |
| int | diffSubproblemInfo |
| 1: with diffSubproblem, 0: no diffSubproblem More... | |
| ParaDiffSubproblem * | diffSubproblem |
| difference between solving instance data and subproblem data More... | |
class BbParaNode
Definition at line 61 of file bbParaNode.h.
| BbParaNode | ( | ) |
default constructor
Definition at line 89 of file bbParaNode.h.
| BbParaNode | ( | TaskId | inNodeId, |
| TaskId | inGeneratorNodeId, | ||
| int | inDepth, | ||
| double | inDualBoundValue, | ||
| double | inOriginalDualBoundValue, | ||
| double | inEstimatedValue, | ||
| ParaDiffSubproblem * | inDiffSubproblem | ||
| ) |
constructor
| inNodeId | node id |
| inGeneratorNodeId | generator node id |
| inDepth | depth in global search tree |
| inDualBoundValue | dual bound value |
| inOriginalDualBoundValue | original dual bound value when the node is generated |
| inEstimatedValue | estimated value |
| inDiffSubproblem | pointer to BbParaDiffSubproblem object |
Definition at line 106 of file bbParaNode.h.
|
virtual |
destructor
not implemented yet
not implemented yet
not implemented yet
Definition at line 130 of file bbParaNode.h.
References ABORT_LOGICAL_ERROR1, ParaTask::addDescendant(), ParaTask::ancestor, ParaTask::descendants, ParaTask::diffSubproblem, BbParaMergeNodeInfo_::fixedVariables, BbParaNode::getDualBoundValue(), ParaTaskGenealogicalLocalPtr::getPointerValue(), ParaTaskGenealogicalPtr::getTaskId(), ParaTaskGenealogicalPtr::getType(), BbParaMergeNodeInfo_::keyIndex, BbParaMergeNodeInfo_::mergedTo, BbParaNode::mergeNodeInfo, BbParaNode::mergingStatus, BbParaFixedVariable_::next, BbParaMergeNodeInfo_::nFixedVariables, BbParaMergeNodeInfo_::nMergedNodes, BbParaMergeNodeInfo_::origDiffSubproblem, BbParaMergeNodeInfo_::PARA_DELETED, BbParaMergeNodeInfo_::PARA_MERGE_CHECKING_TO_OTHER_NODE, BbParaMergeNodeInfo_::PARA_MERGED_RPRESENTATIVE, BbParaMergeNodeInfo_::PARA_MERGING, BbParaMergeNodeInfo_::paraNode, UG::ParaTaskLocalPtr, BbParaFixedVariable_::prev, ParaTask::removeDescendant(), ParaTask::setAncestor(), BbParaMergeNodeInfo_::status, and ParaTask::taskId.
| void addDescendant | ( | ParaTaskGenealogicalPtr * | inDescendant | ) |
add a descendant
| inDescendant | descendant BbParaNodeGenealogicalPtr |
Definition at line 436 of file bbParaNode.h.
References ParaTask::descendants, and ParaTaskGenealogicalPtr::getTaskId().
| bool areNodesCollected | ( | ) |
check if nodes are collected or not
Definition at line 688 of file bbParaNode.h.
References BbParaNode::nodesAreCollected.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), and BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState().
|
pure virtual |
broadcast this object
| comm | communicator used |
| root | root rank of broadcast |
Implements ParaTask.
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaLoadCoordinator::restartRacing().
|
pure virtual |
clone this BbParaNode
| comm | communicator used |
Implements ParaTask.
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaRacingSolverPool::extractNode().
| void collectsNodes | ( | ) |
set all nodes are collected TODO: this function has to be investigated
Definition at line 698 of file bbParaNode.h.
References BbParaNode::nodesAreCollected.
Referenced by BbParaLoadCoordinator::sendInterruptRequest().
| ParaTaskGenealogicalPtr * getAncestor | ( | ) |
getter of ancestor
Definition at line 373 of file bbParaNode.h.
References ParaTask::ancestor.
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::sendInterruptRequest(), BbParaLoadCoordinator::warmStart(), and BbParaSolverPool::writeParaNodesToCheckpointFile().
| int getDepth | ( | ) |
getter of depth
Definition at line 283 of file bbParaNode.h.
References BbParaNode::depth.
Referenced by BbParaSolver::keepParaNode(), BbParaLoadCoordinator::processTagTask(), and BbParaSolver::sendParaNode().
| BbParaDiffSubproblem * getDiffSubproblem | ( | ) |
getter of diffSubproblem
Definition at line 353 of file bbParaNode.h.
References ParaTask::diffSubproblem.
Referenced by BbParaNodesMerger::addNodeToMergeNodeStructs(), BbParaNodesMerger::generateMergeNodesCandidates(), BbParaNodesMerger::mergeNodes(), BbParaNodeSortCriterion::operator()(), BbParaNodeSortCriterionForCleanUp::operator()(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), and BbParaLoadCoordinator::warmStart().
| double getDualBoundValue | ( | ) |
getter of dual bound value
Definition at line 303 of file bbParaNode.h.
References BbParaNode::dualBoundValue.
Referenced by BbParaSolverPoolElement::activate(), ScipParaSolver::createSubproblem(), BbParaNodesMerger::deleteMergeNodeInfo(), BbParaNode::getMinimumDualBoundInDesendants(), BbParaSolver::keepParaNode(), BbParaLoadCoordinator::newRacing(), BbParaNodeSortCriterion::operator()(), BbParaNodeSortCriterionForCleanUp::operator()(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::processTagTask(), BbParaLoadCoordinator::run(), ScipParaObjCommPointHdlr::scip_exec(), BbParaSolver::sendParaNode(), BbParaLoadCoordinator::sendParaTasksToIdleSolvers(), and BbParaNode::~BbParaNode().
| double getInitialDualBoundValue | ( | ) |
getter of initial dual bound value
Definition at line 314 of file bbParaNode.h.
References BbParaNode::initialDualBoundValue.
Referenced by ScipParaSolver::createSubproblem(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::restartInRampDownPhase(), and BbParaLoadCoordinator::warmStart().
| BbParaMergeNodeInfo * getMergeNodeInfo | ( | ) |
get merge node information struct
Definition at line 658 of file bbParaNode.h.
References BbParaNode::mergeNodeInfo.
Referenced by BbParaSolverPool::activateSolver(), BbParaNodesMerger::deleteMergeNodeInfo(), BbParaNodePoolForMinimization::extractNode(), BbParaNodePoolForMinimization::extractNodeRandomly(), BbParaNodesMerger::generateMergeNodesCandidates(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagSolverState(), BbParaNodePoolForMinimization::removeMergedNodes(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
| int getMergingStatus | ( | ) |
get merging status
Definition at line 678 of file bbParaNode.h.
References BbParaNode::mergingStatus.
Referenced by BbParaSolverPool::activateSolver(), BbParaNodesMerger::deleteMergeNodeInfo(), and BbParaSolver::processTagTask().
| double getMinimumDualBoundInDesendants | ( | double | value | ) |
get minimum dual bound value in descendants
not implemented yet
Definition at line 458 of file bbParaNode.h.
References ParaTask::descendants, BbParaNode::getDualBoundValue(), BbParaNode::getMinimumDualBoundInDesendants(), ParaTaskGenealogicalLocalPtr::getPointerValue(), and UG::ParaTaskLocalPtr.
Referenced by BbParaNode::getMinimumDualBoundInDesendants(), and BbParaNode::updateInitialDualBoundToSubtreeDualBound().
| bool hasDescendant | ( | ) |
check if this node has descendant or not
Definition at line 427 of file bbParaNode.h.
References ParaTask::descendants.
| bool isSameNodeIdAs | ( | const BbParaNode & | inNode | ) |
check if this node's id is the same as that of argument ParaNode's task id
| inNode | ParaNode |
Definition at line 708 of file bbParaNode.h.
References ParaTask::generatorTaskId, TaskId::subtaskId, and ParaTask::taskId.
Referenced by BbParaSolverPoolElement::extractSubtreeRoot(), BbParaSolverPoolElement::makeSubtreeRootCurrent(), and BbParaSolverPoolElement::removeSubtreeRoot().
| bool read | ( | ParaComm * | comm, |
| gzstream::igzstream & | in, | ||
| bool | onlyBoundChanges | ||
| ) |
read from checkpoint file
| comm | communicator used |
| in | gzstream for input |
| onlyBoundChanges | indicate if only bound changes are read or not |
Definition at line 78 of file bbParaNode.cpp.
References BbParaNode::basisInfo, comm, BbParaNode::depth, ParaTask::diffSubproblem, ParaTask::diffSubproblemInfo, BbParaNode::dualBoundValue, ParaTask::estimatedValue, ParaTask::generatorTaskId, SubtaskId::globalSubtaskIdInLc, BbParaNode::initialDualBoundValue, SubtaskId::lcId, BbParaNode::read(), TaskId::seqNum, SubtaskId::solverId, TaskId::subtaskId, and ParaTask::taskId.
Referenced by BbParaNode::read(), and BbParaInitiator::readParaNodeFromCheckpointFile().
|
pure virtual |
receive this object
| comm | communicator used |
| source | source rank |
Implements ParaTask.
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaLoadCoordinator::processTagTask().
|
pure virtual |
receive this object
| comm | communicator used |
| source | source rank |
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaLoadCoordinator::processTagNewSubtreeRootNode().
|
pure virtual |
receive this object node Id
| comm | communicator used |
| source | source rank |
| tag | tag of message |
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSubtreeRootNodeStartComputation(), and BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved().
| void removeDescendant | ( | TaskId | removeNodeId | ) |
remove a descendant
not implemented yet
| removeNodeId | node id to remove |
Definition at line 393 of file bbParaNode.h.
References ParaTask::descendants, ParaTaskGenealogicalPtr::getTaskId(), UG::ParaTaskLocalPtr, THROW_LOGICAL_ERROR1, and TaskId::toString().
| void resetDualBoundValue | ( | ) |
reset dual bound value
Definition at line 343 of file bbParaNode.h.
References BbParaNode::dualBoundValue, and BbParaNode::initialDualBoundValue.
|
pure virtual |
send this object
| comm | communicator used |
| destination | destination rank |
Implements ParaTask.
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaSolverPool::activateSolver(), BbParaLoadCoordinator::newRacing(), and BbParaSolver::sendParaNode().
|
pure virtual |
send new subtree root node
| comm | communicator used |
| destination | destination rank |
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaSolver::keepParaNode().
|
pure virtual |
send subtree root to be removed
| comm | communicator used |
| destination | destination rank |
| tag | tag of message |
Implemented in BbParaNodeMpi, and BbParaNodeTh.
Referenced by BbParaSolver::processTagInCollectingMode(), and BbParaSolver::run().
| void setAncestor | ( | ParaTaskGenealogicalPtr * | inAncestor | ) |
setter of ancestor
| inAncestor | ancestor BbParaNodeGenealogicalPtr |
Definition at line 382 of file bbParaNode.h.
References ParaTask::ancestor.
Referenced by BbParaLoadCoordinator::processTagTask().
| void setDepth | ( | int | inDepth | ) |
setter of depth
| inDepth | depth |
Definition at line 292 of file bbParaNode.h.
References BbParaNode::depth.
| void setDiffSubproblem | ( | BbParaDiffSubproblem * | inDiffSubproblem | ) |
setter of diffSubproblem */
| inDiffSubproblem | pointer to BbParaDiffSubproblem object |
Definition at line 362 of file bbParaNode.h.
References ParaTask::diffSubproblem.
Referenced by BbParaNodesMerger::deleteMergeNodeInfo(), BbParaNodesMerger::generateMergeNodesCandidates(), BbParaNodesMerger::mergeNodes(), BbParaNodesMerger::regenerateMergeNodesCandidates(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
| void setDualBoundValue | ( | double | inDualBoundValue | ) |
setter of dual bound value
| inDualBoundValue | dual bound value |
Definition at line 323 of file bbParaNode.h.
References BbParaNode::dualBoundValue.
Referenced by BbParaRacingSolverPool::extractNode(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::restartInRampDownPhase(), BbParaLoadCoordinator::restartRacing(), and BbParaLoadCoordinator::warmStart().
| void setInitialDualBoundValue | ( | double | inTrueDualBoundValue | ) |
setter of initial dual bound value
| inTrueDualBoundValue | inital dual bound value |
Definition at line 333 of file bbParaNode.h.
References BbParaNode::initialDualBoundValue.
Referenced by BbParaRacingSolverPool::extractNode(), BbParaLoadCoordinator::processTagAnotherNodeRequest(), and BbParaLoadCoordinator::restartRacing().
| void setMergeNodeInfo | ( | BbParaMergeNodeInfo * | mNode | ) |
set merge node information to this BbParaNode object
| mNode | pointer to merge node information struct |
Definition at line 646 of file bbParaNode.h.
References BbParaNode::mergeNodeInfo, and BbParaNode::mergingStatus.
Referenced by BbParaNodesMerger::addNodeToMergeNodeStructs(), BbParaNodesMerger::deleteMergeNodeInfo(), BbParaNodesMerger::generateMergeNodesCandidates(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
| void setMergingStatus | ( | int | status | ) |
set merging status
| status | merging status |
Definition at line 667 of file bbParaNode.h.
References BbParaNode::mergingStatus.
Referenced by BbParaNodesMerger::addNodeToMergeNodeStructs(), BbParaNodesMerger::deleteMergeNodeInfo(), BbParaNodesMerger::generateMergeNodesCandidates(), BbParaNodesMerger::regenerateMergeNodesCandidates(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
virtual |
stringfy BbParaNode as simple string
Reimplemented from ParaTask.
Definition at line 619 of file bbParaNode.h.
References BbParaNode::depth, ParaTask::diffSubproblem, BbParaNode::dualBoundValue, ParaTask::generatorTaskId, BbParaNode::initialDualBoundValue, ParaTask::taskId, and TaskId::toString().
Referenced by BbParaLoadCoordinator::processTagCompletionOfCalculation(), BbParaLoadCoordinator::processTagNewSubtreeRootNode(), BbParaLoadCoordinator::processTagReassignSelfSplitSubtreeRootNode(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaLoadCoordinator::processTagSubtreeRootNodeToBeRemoved(), BbParaLoadCoordinator::processTagTask(), and BbParaLoadCoordinator::sendParaTasksToIdleSolvers().
|
virtual |
stringfy BbParaNode
Reimplemented from ParaTask.
Definition at line 600 of file bbParaNode.h.
References BbParaNode::depth, ParaTask::diffSubproblem, BbParaNode::dualBoundValue, ParaTask::estimatedValue, ParaTask::generatorTaskId, BbParaNode::initialDualBoundValue, ParaTask::taskId, TaskId::toString(), and ParaDiffSubproblem::toString().
Referenced by BbParaLoadCoordinator::warmStart().
| void updateInitialDualBoundToSubtreeDualBound | ( | ) |
update initial dual bound value by checking descendant dual bound values
More accurate dual bound of this node is obtained
Definition at line 446 of file bbParaNode.h.
References BbParaNode::dualBoundValue, BbParaNode::getMinimumDualBoundInDesendants(), and BbParaNode::initialDualBoundValue.
|
virtual |
write to checkpoint file
| out | gzstream for output |
Implements ParaTask.
Definition at line 44 of file bbParaNode.cpp.
References BbParaNode::basisInfo, BbParaNode::depth, ParaTask::diffSubproblem, ParaTask::diffSubproblemInfo, BbParaNode::dualBoundValue, ParaTask::estimatedValue, ParaTask::generatorTaskId, SubtaskId::globalSubtaskIdInLc, BbParaNode::initialDualBoundValue, SubtaskId::lcId, BbParaNode::mergeNodeInfo, BbParaMergeNodeInfo_::origDiffSubproblem, TaskId::seqNum, SubtaskId::solverId, TaskId::subtaskId, ParaTask::taskId, and ParaDiffSubproblem::write().
Referenced by BbParaSolverPool::writeParaNodesToCheckpointFile().
|
protected |
indicate if basis information is including or not
Definition at line 70 of file bbParaNode.h.
Referenced by BbParaNodeTh::bcast(), BbParaNodeMpi::createDatatype(), BbParaNode::read(), BbParaNodeTh::receive(), BbParaNodeTh::receiveNewSubtreeRoot(), and BbParaNode::write().
|
protected |
depth from the root node of original tree
Definition at line 66 of file bbParaNode.h.
Referenced by BbParaNodeTh::bcast(), BbParaNodeMpi::clone(), BbParaNodeTh::clone(), BbParaNodeMpi::createDatatype(), BbParaNode::getDepth(), BbParaNode::read(), BbParaNodeTh::receive(), BbParaNodeTh::receiveNewSubtreeRoot(), BbParaNode::setDepth(), BbParaNode::toSimpleString(), BbParaNode::toString(), and BbParaNode::write().
|
protected |
dual bound value
Definition at line 67 of file bbParaNode.h.
Referenced by BbParaNodeTh::bcast(), BbParaNodeMpi::clone(), BbParaNodeTh::clone(), BbParaNodeMpi::createDatatype(), BbParaNode::getDualBoundValue(), BbParaNode::read(), BbParaNodeTh::receive(), BbParaNodeTh::receiveNewSubtreeRoot(), BbParaNode::resetDualBoundValue(), BbParaNode::setDualBoundValue(), BbParaNode::toSimpleString(), BbParaNode::toString(), BbParaNode::updateInitialDualBoundToSubtreeDualBound(), and BbParaNode::write().
|
protected |
dual bound value when this node is created This value is updated to precise one when there is guarantee
Definition at line 68 of file bbParaNode.h.
Referenced by BbParaNodeTh::bcast(), BbParaNodeMpi::clone(), BbParaNodeTh::clone(), BbParaNodeMpi::createDatatype(), BbParaNode::getInitialDualBoundValue(), BbParaNode::read(), BbParaNodeTh::receive(), BbParaNodeTh::receiveNewSubtreeRoot(), BbParaNode::resetDualBoundValue(), BbParaNode::setInitialDualBoundValue(), BbParaNode::toSimpleString(), BbParaNode::toString(), BbParaNode::updateInitialDualBoundToSubtreeDualBound(), and BbParaNode::write().
|
protected |
pointer to mergeNodeInfo. Not zero means merging
Definition at line 78 of file bbParaNode.h.
Referenced by BbParaNodeTh::bcast(), BbParaNode::getMergeNodeInfo(), BbParaNodeTh::send(), BbParaNodeTh::sendNewSubtreeRoot(), BbParaNodeTh::sendSubtreeRootNodeId(), BbParaNode::setMergeNodeInfo(), BbParaNode::write(), and BbParaNode::~BbParaNode().
|
protected |
merging status: -1 - no merging node, 0 - checking, 1 - merged (representative) 2 - merged to the other node 3 - cannot be merged 4 - merging representative was deleted
Definition at line 71 of file bbParaNode.h.
Referenced by BbParaNodeTh::bcast(), BbParaNodeMpi::createDatatype(), BbParaNode::getMergingStatus(), BbParaNodeTh::receive(), BbParaNodeTh::receiveNewSubtreeRoot(), BbParaNode::setMergeNodeInfo(), BbParaNode::setMergingStatus(), and BbParaNode::~BbParaNode().
| BbParaNode* next |
this pointer is used in case of self-split ramp-up in LC this field is not transferred
Definition at line 83 of file bbParaNode.h.
Referenced by BbParaSolverPoolElement::addSubtreeRoot(), BbParaSolverPoolElement::deleteCurrentNode(), BbParaSolverPoolElement::extractCurrentNode(), BbParaSolverPool::extractSelfSplitSubtreeRootNode(), BbParaSolverPoolElement::extractSubtreeRoot(), BbParaSolverPoolElement::makeSubtreeRootCurrent(), BbParaLoadCoordinator::processTagSelfSlpitNodeCalcuationState(), BbParaSolverPoolElement::removeSubtreeRoot(), BbParaSolverPool::writeParaNodesToCheckpointFile(), and BbParaSolverPoolElement::~BbParaSolverPoolElement().
|
protected |
subproblems generated from this nodes are collected at interruption. this field is not transferred
Definition at line 79 of file bbParaNode.h.
Referenced by BbParaNode::areNodesCollected(), and BbParaNode::collectsNodes().