55BbParaSolver::BbParaSolver(
64 :
ParaSolver(argc, argv, inNHandlers,
comm, inParaParamSet, inParaInstance, inParaDetTimer),
65 globalBestDualBoundValueAtWarmStart(-DBL_MAX),
66 globalBestCutOffValue(DBL_MAX),
67 lcBestDualBoundValue(-DBL_MAX),
68 collectingMode(false),
69 aggressiveCollecting(false),
70 nSendInCollectingMode(0),
72 collectingManyNodes(false),
73 collectingInterrupt(false),
74 anotherNodeIsRequested(false),
75 lightWeightRootNodeComputation(false),
78 totalRootNodeTime(0.0),
79 minRootNodeTime(DBL_MAX),
80 maxRootNodeTime(-DBL_MAX),
83 nSolvedWithNoPreprocesses(0),
87 nTransferredLocalCutsFromSolver(0),
88 minTransferredLocalCutsFromSolver(INT_MAX),
89 maxTransferredLocalCutsFromSolver(INT_MIN),
90 nTransferredBendersCutsFromSolver(0),
91 minTransferredBendersCutsFromSolver(INT_MAX),
92 maxTransferredBendersCutsFromSolver(INT_MIN),
97 totalNImprovedIncumbent(0),
98 nParaNodesSolvedAtRoot(0),
99 nParaNodesSolvedAtPreCheck(0),
101 nTransferredLocalCuts(0),
102 minTransferredLocalCuts(INT_MAX),
103 maxTransferredLocalCuts(INT_MIN),
104 nTransferredBendersCuts(0),
105 minTransferredBendersCuts(INT_MAX),
106 maxTransferredBendersCuts(INT_MIN),
113 targetBound(-DBL_MAX),
115 nTransferredNodes(-1),
116 solverDualBound(-DBL_MAX),
117 averageDualBoundGain(0.0),
118 enoughGainObtained(true),
119 givenGapIsReached(false),
120 testDualBoundGain(false),
121 noWaitModeSend(false),
123 restartingRacing(false),
124 localIncumbentIsChecked(false),
183 double detTime = -1.0;
223 delete paraSolverTerminationState;
254 newTask = bbParaComm->createParaTask();
308#ifdef _DEBUG_CHECK_RECEIVE
398 unsigned int notificationId;
442#ifdef _DEBUG_CHECK_RECEIVE
616 int exitSolverRequest;
626 if( exitSolverRequest == 1 )
635 if( exitSolverRequest == 2 )
1158 std::ostringstream s;
1159 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
1160 << __func__ <<
", line = " << __LINE__ <<
" - "
1161 <<
"process tag = " << tag << std::endl;
1191#ifdef _DEBUG_CHECK_RECEIVE
1192 static double previousRreceiveCheckTime = DBL_MAX;
1194 if( ( currentTime - previousRreceiveCheckTime ) < -1.0 )
1196 std::cout << currentTime <<
" Solver" <<
paraComm->
getRank() <<
" No check receiving message over 500 (sec.) is logging." << std::endl;
1198 if( ( currentTime - previousRreceiveCheckTime ) > 500.0 )
1200 std::cout << currentTime <<
" Solver" <<
paraComm->
getRank() <<
" did not check receiving message over 500 (sec.)" << std::endl;
1203 previousRreceiveCheckTime = currentTime;
1221 std::ostringstream s;
1222 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
1223 << __func__ <<
", line = " << __LINE__ <<
" - "
1224 <<
"process tag = " << tag << std::endl;
1264 int nSelfSplitNodesLeft
1321 std::ostringstream s;
1322 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
1323 << __func__ <<
", line = " << __LINE__ <<
" - "
1324 <<
"process tag = " << ttag << std::endl;
1379 double averageSimplexIter = 0.0;
1418 delete paraCalculationState;
1492 double detTime = -1.0;
1546 delete paraSolverTerminationState;
1623 delete paraSolverTerminationState;
1635 int nSelfSplitNodesLeft
1641 double dualBound = DBL_MAX;
1651 compTime, 0, 0 , 0, 0, terminationState, 0,
1655 0, 0, 0, 0, 0, dualBound, nSelfSplitNodesLeft ));
1657 delete paraCalculationState;
1663 double detTime = -1.0;
1707 delete paraSolverTerminationState;
1866 long long nNodesSolved,
1868 double bestDualBoundValue,
1874 int racingStage = 0;
1879 double tempGlobalBestPrimalBound = DBL_MAX;
1896 nNodesSolved, nNodesLeft, dualBound,
1897 tempGlobalBestPrimalBound,
1927 double meanNodeTime = -1.0;
1929 && meanRootNodeTime > 0.0001 )
1933 if( meanNodeTime < 0.0 ) meanNodeTime = 0.0;
1937 if( meanNodeTime < 0.000001 )
1943 if( ( meanRootNodeTime / meanNodeTime ) > 5.0 )
1947 * ( meanRootNodeTime / meanNodeTime ) );
1950 if( meanNodeTime > 1.0 )
1975 double estimateValue,
2012 std::ostringstream s;
2013 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
2014 << __func__ <<
", line = " << __LINE__ <<
" - "
2015 <<
"process tag = " << tag << std::endl;
2027 std::ostringstream s;
2028 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
2029 << __func__ <<
", line = " << __LINE__ <<
" - "
2030 <<
"process tag = " << tag << std::endl;
2048 double estimateValue,
2073 double bestDualBoundValue
2295 std::ostringstream s;
2296 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
2297 << __func__ <<
", line = " << __LINE__ <<
" - "
2298 <<
"process tag = " << tag << std::endl;
2311 std::ostringstream s;
2312 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
2313 << __func__ <<
", line = " << __LINE__ <<
" - "
2314 <<
"process tag = " << tag << std::endl;
2339 std::ostringstream s;
2340 s <<
"[ERROR RETURN form Message Hander]:" << __FILE__ <<
"] func = "
2341 << __func__ <<
", line = " << __LINE__ <<
" - "
2342 <<
"process tag = " << tag << std::endl;
2349 double idleTime = current - inIdleTime;
Base class for calculation state.
#define DEF_BB_PARA_COMM(para_comm, comm)
Base class of communicator for UG Framework.
This class has solver state to be transferred.
This class contains solver termination state which is transferred form Solver to LC.
Base class for solver: Generic parallelized solver.
Base class of Calculation state in a ParaSolver.
virtual void insert(BbParaNodePtr node)=0
insert BbParaNode to this pool
virtual BbParaNodePtr extractNode()=0
extract a BbParaNode object from this pool
virtual double getBestDualBoundValue()=0
get best dual bound value of BbParaNode object in this pool
virtual bool isEmpty()=0
check if this pool is empty or not
virtual size_t getNumOfNodes()=0
get number of BbParaNodes in this pool
int getMergingStatus()
get merging status
virtual int sendSubtreeRootNodeId(ParaComm *comm, int destination, int tag)=0
send subtree root to be removed
int getDepth()
getter of depth
virtual int send(ParaComm *comm, int destination)=0
send this object
virtual int sendNewSubtreeRoot(ParaComm *comm, int destination)=0
send new subtree root node
double getDualBoundValue()
getter of dual bound value
class BbParaSolverState (ParaSolver state object for notification message)
class BbParaSolverTerminationState (Solver termination state in a ParaSolver)
virtual void sendSolverState(long long nNodesSolved, int nNodesLeft, double bestDualBoundValue, double detTime)
send Solver state to LoadCoordinator
int minTransferredLocalCuts
minimum number of local cuts (including conflict cuts) transferred from a ParaNode
virtual bool wasTerminatedNormally()=0
check if Solver was terminated normally or not
virtual void sendCompletionOfCalculation(double stopTime)
send completion of calculation
bool givenGapIsReached
indicate that the given gap is reached or not
virtual void setOriginalNodeSelectionStrategy()=0
set original node selection strategy
virtual void restartRacing()
restart racing
bool keepRacing
indicate if Solver needs to do racing ramp-up repeatedly in case of warm start
int minNSolved
minimum number of subtree nodes rooted from ParaNode
virtual int processTagSolution(int source, int tag)
process TagSolution
bool restartingRacing
indicate that this solver is restarting racing
int nSendInCollectingMode
number of nodes need to send in collecting mode
virtual long long getNNodesSolved()=0
get number of nodes solved
double globalBestCutOffValue
global best cut off value
virtual int processTagTerminateSolvingToRestart(int source, int tag)
process TagTerminateSolvingToRestart
virtual int processTagLCBestBoundValue(int source, int tag)
process TagLCBestBoundValue
virtual void waitAckCompletion()
wait ack completion to synchronized with LoadCoordinator
virtual bool sendIfImprovedSolutionWasFound(ParaSolution *sol)
send improved solution if it was found in this Solver
virtual int processTagWinner(int source, int tag)
process TagWinner
int nTransferredBendersCuts
number of benders cuts transferred from a ParaNode
bool aggressiveCollecting
indicate that if this solver has two nodes, this solver sends one to LC
virtual void createSubproblem()=0
create subproblem
double globalBestDualBoundValueAtWarmStart
global best dual bound value which is set when system warm starts
int nSolved
Counters related to the current ParaNode.
int maxNSolved
maximum number of subtree nodes rooted from ParaNode
virtual bool updateGlobalBestCutOffValue(double newValue)
update global best cutoff value
bool collectingManyNodes
indicate that many nodes collecting is requested by LC
bool localIncumbentIsChecked
indicate if a local incumbent solution is checked or not
virtual bool updateGlobalBestIncumbentSolution(ParaSolution *sol)
update global best incumbent solution
virtual int processTagGivenGapIsReached(int source, int tag)
process TagGivenGapIsReached
int nTransferredLocalCutsFromSolver
number of local cuts transferred from this Solver
int nTightened
the number of tightened variable bounds in racing
virtual void sendSolverTerminationState()
send Solver termination state
int maxRestarts
maximum number of restarts
virtual int processTagBreaking(int source, int tag)
process TagBreaking
virtual int processTagTaskReceived(int source, int tag)
process TagTaskReceived
bool collectingInterrupt
when the solver is interrupted, all nodes are collected to LC
int maxTransferredLocalCuts
maximum number of local cuts (including conflict cuts) transferred from a ParaNode
virtual void solveToCheckEffectOfRootNodePreprocesses()
solve to check effect of root node preprocesses
int maxTransferredBendersCuts
maximum number of benders cuts transferred from a ParaNode
bool onceBreak
indicate that the sub-MIP is broken down once
virtual int processTagNoTestDualBoundGain(int source, int tag)
process TagNoTestDualBoundGain
virtual int processTagInterruptRequest(int source, int tag)
process TagInterruptRequest
int totalNSolved
Counters related to this BbParaSolver.
virtual int processTagKeepRacing(int source, int tag)
process TagKeepRacing
virtual int processTagCollectAllNodes(int source, int tag)
process TagCollectAllNodes
virtual int getNRestarts()
get number of restarts (Derived class for SCIP should override this function)
bool enoughGainObtained
indicate that the root node process improved dual bound enough or not
virtual bool updateGlobalBestIncumbentValue(double newValue)
update global best incumbent value
virtual void issueInterruptSolve()
issue interrupt to solve
virtual int processTagTerminateRequest(int source, int tag)
process TagTerminateRequest
virtual void waitMessageIfNecessary()
wait a notification id message if it is needed to synchronize with LoadCoordinaor
int nParaNodesSolvedAtRoot
number of ParaNodes solved at root node
void setRootNodeSimplexIter(int iter)
set number of simplex iteration at root node
bool lightWeightRootNodeComputation
indicate that fast root node computation is required
virtual int processTagWinnerRacingRampUpParamSet(int source, int tag)
process TagWinnerRacingRampUpParamSet
int nSimplexIterRoot
number of simplex iteration at root node
void resetBreakingInfo()
reset breaking information
int maxNii
maximum number of integer infeasibility
int minTransferredBendersCuts
minimum number of benders cuts transferred from a ParaNode
virtual void waitNotificationIdMessage()
wait notification id message to synchronized with LoadCoordinator
virtual void notifySelfSplitFinished()
notify Self-Split finished
void setSendBackAllNodes()
set counter and flag to indicate that all nodes are sent to LoadCooordinator
double maxRootNodeTime
maximum time consumed by root node process
virtual int processTagUbBoundTightened(int source, int tag)
process TagUbBoundTightened
int nCollectOnce
number of nodes need to collect once
void passToken(int rank)
pass token to the next process
virtual int processTagInCollectingMode(int source, int tag)
process TagInCollectingMode
virtual bool receiveNewTaskAndReactivate()
wait for receiving a new node and reactivate solver
virtual void sendLocalSolution()
send solution found in this Solver
int(BbParaSolver::* BbMessageHandlerFunctionPointer)(int, int)
virtual int processTagLbBoundTightened(int source, int tag)
process TagLbBoundTightened
virtual void setOriginalRootNodeProcess()
set original root node process
virtual int processTagRampUp(int source, int tag)
process TagRampUp
virtual int processTagRestart(int source, int tag)
process TagRestart
virtual void iReceiveMessages()
non-blocking receive messages
virtual int processTagNoNodes(int source, int tag)
process TagNoNodes
virtual void sendCompletionOfCalculationWithoutSolving(double stopTime, int tag, int nSelfSplitNodesLeft)
send completion of calculation with arguments
double rootNodeTime
Times.
virtual void keepParaNode(long long n, int depth, double dualBound, double estimateValue, ParaDiffSubproblem *diffSubproblem)
keep a branch-and-bound node as ParaNode to LoadCoordinator
int nSolvedWithNoPreprocesses
number of nodes solved when it is solved with no preprocesses
bool collectingMode
indicate whether if this solver is in collecting mode or not
virtual int processTagGlobalBestDualBoundValueAtWarmStart(int source, int tag)
process TagGlobalBestDualBoundValueAtWarmStart
double lcBestDualBoundValue
LoadCoordinator best dual bound value.
virtual int processTagLightWeightRootNodeProcess(int source, int tag)
process TagLightWeightRootNodeProcess
virtual void sendParaNode(long long n, int depth, double dualBound, double estimateValue, ParaDiffSubproblem *diffSubproblem)
send a branch-and-bound node as ParaNode to LoadCoordinator
virtual void sendAnotherNodeRequest(double bestDualBoundValue)
send another node request
double maxIisum
maximum sum of integer infeasibility
virtual void solve()=0
solve (sub)problem
int totalNSent
accumulated number of nodes sent from this BbParaSolver
bool isBreaking()
check if Solver is in racing stage or not
int minRestarts
minimum number of restarts
BbParaNodePool * selfSplitNodePool
Pool in Solver.
virtual int processTagTask(int source, int tag)
process TagNode
double solverDualBound
dual bound value achieved for a subproblem
int nTightenedInt
the number of tightened integral variable bounds in racing
virtual int processTagCutOffValue(int source, int tag)
process TagCutOffValue
int nTransferredNodes
keep track number of transferred nodes for breaking
virtual void setLightWeightRootNodeProcess()
set light weight root node process
int nTransferredBendersCutsFromSolver
number of benders cuts transferred from this Solver
virtual int getNTightenedInt()
get number of tightened integral variables during racing
double targetBound
target bound value for breaking
virtual void writeSubproblem()=0
write subproblem
virtual double getDualBoundValue()=0
get dual bound value
virtual int getNTightened()
get number of tightened variables during racing
bool isRacingStage()
check if Solver is in racing stage or not
double minRootNodeTime
minimum time consumed by root node process
virtual void setRootNodeTime()
set root node computing time
bool anotherNodeIsRequested
indicate that another node is requested or not
bool testDualBoundGain
indicate that the dual bound gain needs to test or not
virtual int ubBoundTightened(int source, int tag)
upper bound of variable tightened
int minTransferredLocalCutsFromSolver
minimum number of local cuts transferred from this Solver
virtual int lbBoundTightened(int source, int tag)
lower bound of variable tightened
virtual int getNNodesLeft()=0
get number of nodes left
virtual int processTagToken(int source, int tag)
process TagToken
virtual void setWinnerRacingParams(ParaRacingRampUpParamSet *racingParms)=0
set winner racing parameters
virtual long long getSimplexIter()=0
get number of simplex iterations
double averageDualBoundGain
average dual bound gain
virtual int processTagIncumbentValue(int source, int tag)
process TagIncumbentValue
int minTransferredBendersCutsFromSolver
minimum number of benders cuts transferred from this Solver
int nParaNodesSolvedAtPreCheck
number of ParaNodes solved at pre-checking of root node solvability
virtual int processTagRetryRampUp(int source, int tag)
process TagRetryRampUp
double minIisum
minimum sum of integer infeasibility
virtual int processTagTestDualBoundGain(int source, int tag)
process TagTestDualBoundGain
virtual int processTagNoWaitModeSend(int source, int tag)
process TagNoWaitModeSend
virtual void tryNewSolution(ParaSolution *sol)=0
try to enter solution to base solver environment
int minNii
minimum number of integer infeasibility
int maxTransferredBendersCutsFromSolver
maximum number of benders cuts transferred from this Solver
int nTransferLimit
limit number of transferring nodes for breaking
virtual void freeSubproblem()=0
free subproblem
virtual bool saveIfImprovedSolutionWasFound(ParaSolution *sol)
save improved solution if it was found in this Solver
virtual int getThresholdValue(int nNodes)
get threshold value to send ParaNodes to LoadCoordinator
int nSent
number of ParaNodes sent from this subtree rooted from the current ParaNode
int maxTransferredLocalCutsFromSolver
maximum number of local cuts transferred from this Solver
int nTransferredLocalCuts
number of local cuts (including conflict cuts) transferred from a ParaNode
double totalRootNodeTime
accumulated root node process time solved by this solver so far
virtual int processTagOutCollectingMode(int source, int tag)
process TagOutCollectingMode
int totalNImprovedIncumbent
accumulated number of improvements of incumbent value in this BbParaSolver
virtual bool notificationIsNecessary()
check if a notification message needs to send or not
int nTotalRestarts
number of total restarts
virtual int processTagNotificationId(int source, int tag)
process TagNotificationId
bool noWaitModeSend
indicate that no wait mode sending is applied
bool waitToken(int rank)
wait token for deterministic mode
virtual void send(ParaComm *comm, int destination, int tag)=0
send this object to destination
Base class of communicator object.
virtual ParaRacingRampUpParamSet * createParaRacingRampUpParamSet()=0
create ParaRacingRampUpParamSet object
virtual void setToken(int rank, int *token)
set received token to this communicator
virtual ParaSolution * createParaSolution()=0
create ParaSolution object by default constructor
virtual bool probe(int *source, int *tag)=0
No need to take action for fault tolerant, when the functions return. So, they do not rerun status va...
virtual ParaTask * createParaTask()=0
create ParaTask object by default constructor
virtual int send(void *bufer, int count, const int datatypeId, int dest, const int tag)=0
send function for standard ParaData types
virtual int receive(void *bufer, int count, const int datatypeId, int source, const int tag)=0
receive function for standard ParaData types
virtual bool iProbe(int *source, int *tag)=0
iProbe function which checks if a new message is arrived or not
virtual int getRank()=0
get rank of this process or this thread depending on run-time environment
virtual void waitSpecTagFromSpecSource(const int source, const int tag, int *receivedTag)=0
wait function for a specific tag from a specific source coming from
class for deterministic timer
virtual void update(double value)=0
update function of the deterministic time. the deterministic time is a kind of counter
virtual double getElapsedTime()=0
getter of the deterministic time
Class for the difference between instance and subproblem.
bool getBoolParamValue(int param)
get bool parameter value
void setIntParamValue(int param, int value)
set int parameter value
double getRealParamValue(int param)
get real parameter value
int getIntParamValue(int param)
get int parameter value
void setRealParamValue(int param, double value)
set real parameter value
virtual int receive(ParaComm *comm, int source)=0
receive ParaRacingRampUpParamSet
virtual double getObjectiveFunctionValue()=0
get objective function value
virtual void send(ParaComm *comm, int destination)=0
send solution data
virtual void receive(ParaComm *comm, int source)=0
receive solution data
virtual void send(ParaComm *comm, int destination, int tag)=0
send this object
virtual void send(ParaComm *comm, int destination, int tag)=0
send this object
double idleTimeToWaitNotificationId
idle time to wait a message within collecting mode
bool rampUp
indicate whether if ramp-up phase is finished or not: true - finish
virtual void updatePendingSolution()
update pending solution
ParaParamSet * paraParams
ParaParamSet object.
ParaComm * paraComm
ParaCommunicator object.
bool stayAliveAfterInterrupt
indicate that stay alive this solver after interrupt request
double paraTaskStartTime
start time of current ParaTask
ParaTask * currentTask
solving task
bool notificationProcessed
if true, notification is issued but not receive the corresponding LCB
bool racingInterruptIsRequested
indicate a racing interrupt is requested
int nParaTasksReceived
Counters related to this ParaSolver.
double idleTimeBetweenParaTasks
idle time between ParaTasks processing
bool waitingSpecificMessage
indicate that this solver is waiting for a specific message
double previousNotificationTime
previous notification time
bool racingIsInterrupted
indicate whether if racing phases is interrupted or not: true - interrupted
double pendingIncumbentValue
incumbent value which is pending to update in case of deterministic runs
ParaSolution * globalBestIncumbentSolution
global best solution. However, this is not always feasible for the current sub-MIP
double previousIdleTimeToWaitToken
previous idle time to wait token
virtual void reinitialize()
re-initialized instance
bool memoryLimitIsReached
indicate if memory limit is reached or not, when base solver has memory management feature
unsigned int notificationIdGenerator
ParaRacingRampUpParamSet * winnerRacingParams
Winner ParaRacingRampUpParamSet object.
double eps
absolute values smaller than this are considered zero esp should be set in the constructor of the der...
ParaSolution * localIncumbentSolution
incumbent solution generated in local solver
ParaSolution * pendingSolution
solution which is pending to update in case of deterministic runs
double idleTimeToWaitToken
idle time to wait token
ParaTimer * paraTimer
timer for this ParaSolver
void terminateRacing()
terminate racing stage
double idleTimeToWaitAckCompletion
idle time to wait acknowledgment of completion
ParaRacingRampUpParamSet * racingParams
ParaRacingRampUpParamSet object. This is also a flag to indicate running with racing ramp-up.
int nImprovedIncumbent
Counters related to the current ParaTask.
bool isWarmStarted()
check if current execution is warm start (restart) or not
double previousStopTime
Idle Times.
double idleTimeAfterLastParaTask
idle time after the last ParaTask was solved
ParaTask * newTask
new task to solve
double globalBestIncumbentValue
global best incumbent value
bool racingWinner
indicate racing ramp-up winner or not: true - winner
bool globalIncumbnetValueUpdateFlag
indicate that global incumbent value is updated in iReceiveMessages() routine
double previousCommTime
previous communication time for deterministic execution
bool subproblemFreed
indicate that subproblem is already freed or not
ParaDeterministicTimer * paraDetTimer
deterministic timer for this ParaSolver
double idleTimeToFirstParaTask
idle time to start solving the first ParaTask
int nParaTasksSolved
number of ParaTasks solved ( received ) in this ParaSolver
MessageHandlerFunctionPointer * messageHandler
table for message handlers
int terminationMode
indicate that termination mode 0: no termination mode 1: normal termination mode 2: interrupted termi...
ParaInstance * paraInstance
root problem instance
virtual int bcast(ParaComm *comm, int root)=0
broadcast this object
TaskId taskId
solving task information
virtual int receive(ParaComm *comm, int source)=0
receive this object
int getGlobalSubtaskIdInLc()
getter of global subtask id in Solvers managed by LoadCoordinator
int getLcId()
getter of LoadCoordinator id
virtual double getElapsedTime()=0
get elapsed time
int globalSubtaskIdInLc
Global Subtask ID in Solvers managed by LoadCoordinator.
int lcId
LoadCoordinator ID.
SubtaskId subtaskId
subtree id
static ScipParaCommTh * comm
static const int TagLCBestBoundValue
static const int TagAckCompletion
static const int TagAnotherNodeRequest
static const int TagCompletionOfCalculation
static const int CompTerminatedByInterruptRequest
static const int TagCutOffValue
static const int TagWinner
static const int TagLightWeightRootNodeProcess
static const int CompInterruptedInRacingStage
static const int CompTerminatedByAnotherTask
static const int TagTerminateSolvingToRestart
static const int CheckpointInterval
static const int FinalCheckpointGeneratingTime
static const int TagToken
static const int TagTaskReceived
static const int CompTerminatedByMemoryLimit
static const int TagInterruptRequest
static const int TagSelfSplitFinished
static const int NotificationInterval
static const int TagNotificationId
static const int NotificationSynchronization
static const int NoTerminationMode
termination mode
static const int EnhancedCheckpointStartTime
static const int TagIncumbentValue
static const int TagLbBoundTightenedIndex
static const int TagCollectAllNodes
static const int TagRestart
static const int TagGivenGapIsReached
static const int TagTerminated
static const int TagGlobalBestDualBoundValueAtWarmStart
static const int TagUbBoundTightenedIndex
static const int TagNoWaitModeSend
static const int CheckEffectOfRootNodePreprocesses
static const int TagTerminateRequest
static const int NormalTerminationMode
static const int TimeLimit
static const int CompTerminatedByTimeLimit
static const int TimeLimitTerminationMode
static const int ParaBYTE
static const int ParaUNSIGNED
static const int TagRampUp
static const int TagSolverState
static const int TagTermStateForInterruption
static const int Deterministic
static const int RampUpPhaseProcess
static const int TagReassignSelfSplitSubtreeRootNode
static const int BgapCollectingMode
static const int TagNoTestDualBoundGain
static const int CompTerminatedNormally
static const int CompInterruptedInMerging
static const int InterruptedTerminationMode
static const int TagBreaking
static const int TagSelfSplitTermStateForInterruption
static const int MultiplierToDetermineThresholdValue
static const int NoTransferThresholdReductionRatio
static const int CompTerminatedInRacingStage
static const int TagRetryRampUp
static const int TagKeepRacing
static const int TagOutCollectingMode
static const int EnhancedFinalCheckpoint
static const int TagSubtreeRootNodeStartComputation
static const int DynamicAdjustNotificationInterval
static const int TagInCollectingMode
static const int TagSelfSlpitNodeCalcuationState
static const int TagTestDualBoundGain
static const int TagNoNodes
static const int ParaDOUBLE
static const int SetAllDefaultsAfterRacing
static const int CommunicateTighterBoundsInRacing
Base class of communicator for UG Framework.
#define PARA_COMM_CALL(paracommcall)
#define DEFAULT_NUM_EPSILON
#define THROW_LOGICAL_ERROR4(msg1, msg2, msg3, msg4)
#define THROW_LOGICAL_ERROR3(msg1, msg2, msg3)
Base class for instance data.