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