class ParaSolver More...
#include <paraSolver.h>
Public Member Functions | |
ParaSolver () | |
constructor More... | |
ParaSolver (int argc, char **argv, int nHandlers, ParaComm *comm, ParaParamSet *inParaParamSet, ParaInstance *paraInstance, ParaDeterministicTimer *detTimer) | |
constructor More... | |
virtual | ~ParaSolver () |
destructor More... | |
ParaComm * | getParaComm () |
get paraParaComm More... | |
bool | isWarmStarted () |
check if current execution is warm start (restart) or not More... | |
virtual void | run ()=0 |
run this Solver More... | |
virtual void | run (ParaTask *paraTask) |
run this Solver with ParaTask object More... | |
virtual void | run (ParaRacingRampUpParamSet *inRacingRampUpParamSet) |
run this solver with racing parameters More... | |
double | getElapsedTimeOfTaskSolving () |
the following functions may be called from callback routines of the target Solver More... | |
virtual void | iReceiveMessages ()=0 |
non-blocking receive messages More... | |
bool | isRampUp () |
check if this solver is ramp-up or not More... | |
bool | isRacingWinner () |
check if this solver is in racing ramp-up or not More... | |
virtual bool | sendIfImprovedSolutionWasFound (ParaSolution *sol) |
send improved solution if it was found in this Solver More... | |
virtual bool | saveIfImprovedSolutionWasFound (ParaSolution *sol) |
save improved solution if it was found in this Solver More... | |
virtual void | sendLocalSolution () |
send solution found in this Solver More... | |
virtual bool | notificationIsNecessary ()=0 |
check if a notification message needs to send or not TODO: function name should be isNotificationNecessary More... | |
bool | isInterrupting () |
check if Solver is in interrupting phase or not More... | |
bool | isTerminationRequested () |
check if termination was requested or not More... | |
bool | newParaTaskExists () |
check if a new ParaTask was received or not More... | |
bool | getNotificaionProcessed () |
check if Solver is in notification process or not TODO: function name should be changed More... | |
ParaTask * | getCurrentTask () |
get current ParaTask object More... | |
ParaInstance * | getParaInstance () |
get ParaInstance object More... | |
ParaParamSet * | getParaParamSet () |
get ParaParamSet object More... | |
virtual int | getRank () |
get rank of this Solver More... | |
virtual void | waitMessageIfNecessary ()=0 |
wait a notification id message if it is needed to synchronize with LoadCoordinaor More... | |
void | terminateRacing () |
terminate racing stage More... | |
ParaSolution * | getGlobalBestIncumbentSolution () |
get global best incumbent solution More... | |
bool | isWaitingForSpecificMessage () |
check if Solver is waiting for a specific message or not More... | |
virtual bool | waitToken (int rank) |
wait token for deterministic mode More... | |
virtual void | passToken (int rank) |
pass token to the next process More... | |
ParaDeterministicTimer * | getDeterministicTimer () |
get deterministic timer object More... | |
double | getOffsetTimeToWaitToken () |
get offset time to wait token More... | |
virtual void | updatePendingSolution () |
update pending solution More... | |
virtual bool | wasTerminatedNormally ()=0 |
check if Solver was terminated normally or not More... | |
virtual void | writeCurrentTaskProblem (const std::string &filename)=0 |
write current task problem (this method is always useful for debugging, so we should implement this method) More... | |
virtual void | tryNewSolution (ParaSolution *sol)=0 |
try to enter solution to base solver environment More... | |
virtual void | writeSubproblem ()=0 |
write subproblem More... | |
void | setPreviousCommTime (double detTime) |
set previous communication time for deterministic execution More... | |
double | getPreviousCommTime () |
get previous communication time for deterministic execution More... | |
void | setTerminationMode (int tm) |
set termination mode More... | |
int | getTerminationMode () |
get termination mode More... | |
Protected Types | |
typedef int(ParaSolver::* | MessageHandlerFunctionPointer) (int, int) |
Protected Member Functions | |
virtual int | processTagTask (int source, int tag)=0 |
process TagTask More... | |
virtual int | processTagTaskReceived (int source, int tag)=0 |
process TagTaskReceived More... | |
virtual int | processTagRampUp (int source, int tag) |
process TagRampUp More... | |
virtual int | processTagSolution (int source, int tag)=0 |
process TagSolution More... | |
virtual int | processTagIncumbentValue (int source, int tag) |
process TagIncumbentValue More... | |
virtual int | processTagNotificationId (int source, int tag)=0 |
process TagNotificationId More... | |
virtual int | processTagTerminateRequest (int source, int tag)=0 |
process TagTerminateRequest More... | |
virtual int | processTagInterruptRequest (int source, int tag)=0 |
process TagInterruptRequest More... | |
virtual int | processTagWinnerRacingRampUpParamSet (int source, int tag) |
process TagWinnerRacingRampUpParamSet More... | |
virtual int | processTagWinner (int source, int tag) |
process TagWinner More... | |
virtual int | processTagToken (int source, int tag) |
process TagToken More... | |
virtual bool | receiveNewTaskAndReactivate ()=0 |
wait for receiving a new task and reactivate solver More... | |
virtual void | waitNotificationIdMessage ()=0 |
wait notification id message to synchronized with LoadCoordinator More... | |
virtual void | waitAckCompletion ()=0 |
wait ack completion to synchronized with LoadCoordinator More... | |
virtual void | sendCompletionOfCalculation (double stopTime)=0 |
restart racing More... | |
virtual bool | updateGlobalBestIncumbentSolution (ParaSolution *sol) |
update global best incumbent solution More... | |
virtual bool | updateGlobalBestIncumbentValue (double newValue) |
update global best incumbent value More... | |
virtual void | setRacingParams (ParaRacingRampUpParamSet *racingParms, bool winnerParam) |
set racing parameters More... | |
virtual void | setWinnerRacingParams (ParaRacingRampUpParamSet *racingParms) |
set winner racing parameters More... | |
virtual void | createSubproblem () |
create subproblem More... | |
virtual void | freeSubproblem () |
free subproblem More... | |
virtual void | solve ()=0 |
solve (sub)problem More... | |
virtual void | reinitialize () |
re-initialized instance More... | |
Protected Attributes | |
int | nHandlers |
number of valid message handlers More... | |
MessageHandlerFunctionPointer * | messageHandler |
table for message handlers More... | |
unsigned int | notificationIdGenerator |
ParaComm * | paraComm |
ParaCommunicator object. More... | |
ParaParamSet * | paraParams |
ParaParamSet object. More... | |
ParaRacingRampUpParamSet * | racingParams |
ParaRacingRampUpParamSet object. This is also a flag to indicate running with racing ramp-up. More... | |
ParaRacingRampUpParamSet * | winnerRacingParams |
Winner ParaRacingRampUpParamSet object. More... | |
ParaTimer * | paraTimer |
timer for this ParaSolver More... | |
ParaDeterministicTimer * | paraDetTimer |
deterministic timer for this ParaSolver More... | |
double | globalBestIncumbentValue |
global best incumbent value More... | |
ParaSolution * | globalBestIncumbentSolution |
global best solution. However, this is not always feasible for the current sub-MIP More... | |
ParaSolution * | localIncumbentSolution |
incumbent solution generated in local solver More... | |
ParaSolution * | pendingSolution |
solution which is pending to update in case of deterministic runs More... | |
double | pendingIncumbentValue |
incumbent value which is pending to update in case of deterministic runs More... | |
ParaInstance * | paraInstance |
root problem instance More... | |
ParaTask * | currentTask |
solving task More... | |
ParaTask * | newTask |
new task to solve More... | |
int | terminationMode |
indicate that termination mode 0: no termination mode 1: normal termination mode 2: interrupted termination More... | |
bool | warmStarted |
indicate whether if system is warm started or not More... | |
bool | rampUp |
indicate whether if ramp-up phase is finished or not: true - finish More... | |
bool | racingInterruptIsRequested |
indicate a racing interrupt is requested More... | |
bool | racingIsInterrupted |
indicate whether if racing phases is interrupted or not: true - interrupted More... | |
bool | racingWinner |
indicate racing ramp-up winner or not: true - winner More... | |
bool | waitingSpecificMessage |
indicate that this solver is waiting for a specific message More... | |
bool | memoryLimitIsReached |
indicate if memory limit is reached or not, when base solver has memory management feature More... | |
double | previousNotificationTime |
previous notification time More... | |
double | paraTaskStartTime |
start time of current ParaTask More... | |
double | previousStopTime |
Idle Times. More... | |
double | idleTimeToFirstParaTask |
idle time to start solving the first ParaTask More... | |
double | idleTimeBetweenParaTasks |
idle time between ParaTasks processing More... | |
double | idleTimeAfterLastParaTask |
idle time after the last ParaTask was solved More... | |
double | idleTimeToWaitNotificationId |
idle time to wait a message within collecting mode More... | |
double | idleTimeToWaitAckCompletion |
idle time to wait acknowledgment of completion More... | |
double | idleTimeToWaitToken |
idle time to wait token More... | |
double | previousIdleTimeToWaitToken |
previous idle time to wait token More... | |
double | offsetTimeToWaitToken |
offset time to wait token More... | |
int | nImprovedIncumbent |
Counters related to the current ParaTask. More... | |
int | nParaTasksReceived |
Counters related to this ParaSolver. More... | |
int | nParaTasksSolved |
number of ParaTasks solved ( received ) in this ParaSolver More... | |
bool | updatePendingSolutionIsProceeding |
update pending solution process is proceeding More... | |
bool | globalIncumbnetValueUpdateFlag |
indicate that global incumbent value is updated in iReceiveMessages() routine More... | |
bool | notificationProcessed |
if true, notification is issued but not receive the corresponding LCB More... | |
double | eps |
absolute values smaller than this are considered zero esp should be set in the constructor of the derived class of ParaSolver More... | |
double | previousCommTime |
previous communication time for deterministic execution More... | |
bool | subproblemFreed |
indicate that subproblem is already freed or not More... | |
bool | stayAliveAfterInterrupt |
indicate that stay alive this solver after interrupt request More... | |
class ParaSolver
Definition at line 70 of file paraSolver.h.
|
protected |
Definition at line 75 of file paraSolver.h.
ParaSolver | ( | ) |
ParaSolver | ( | int | argc, |
char ** | argv, | ||
int | nHandlers, | ||
ParaComm * | comm, | ||
ParaParamSet * | inParaParamSet, | ||
ParaInstance * | paraInstance, | ||
ParaDeterministicTimer * | detTimer | ||
) |
constructor
create timer for this ParaSolver
register message handlers
argc | number of arguments |
argv | array of arguments |
nHandlers | number of valid message handlers |
comm | communicator used |
inParaParamSet | pointer to ParaParamSet object |
paraInstance | pointer to ParaInstance object |
detTimer | pointer to deterministic timer object |
Definition at line 60 of file paraSolver.cpp.
References ParaComm::createParaTimer(), UG::Deterministic, ParaParamSet::getBoolParamValue(), ParaComm::getRank(), ParaParamSet::getRealParamValue(), ParaComm::getSize(), ParaTimer::init(), ParaSolver::messageHandler, ParaSolver::nHandlers, UG::NotificationInterval, ParaSolver::offsetTimeToWaitToken, ParaSolver::paraComm, ParaSolver::paraDetTimer, ParaSolver::paraParams, ParaSolver::paraTimer, ParaSolver::processTagIncumbentValue(), ParaSolver::processTagNotificationId(), ParaSolver::processTagRampUp(), ParaSolver::processTagSolution(), ParaSolver::processTagTaskReceived(), ParaSolver::processTagTerminateRequest(), ParaSolver::processTagToken(), ParaSolver::processTagWinner(), ParaSolver::processTagWinnerRacingRampUpParamSet(), UG::TagIncumbentValue, UG::TagNotificationId, UG::TagRacingRampUpParamSet, UG::TagRampUp, UG::TagSolution, UG::TagTaskReceived, UG::TagTerminateRequest, UG::TagToken, UG::TagWinner, and ParaSolver::warmStarted.
|
virtual |
destructor
Definition at line 153 of file paraSolver.cpp.
References ParaSolver::currentTask, ParaSolver::globalBestIncumbentSolution, ParaSolver::localIncumbentSolution, ParaSolver::messageHandler, ParaSolver::newTask, ParaSolver::paraInstance, ParaSolver::paraTimer, ParaSolver::racingParams, and ParaSolver::winnerRacingParams.
|
protectedvirtual |
create subproblem
Reimplemented in ScipParaSolver, and BbParaSolver.
Definition at line 354 of file paraSolver.h.
|
protectedvirtual |
free subproblem
Reimplemented in ScipParaSolver, and BbParaSolver.
Definition at line 363 of file paraSolver.h.
ParaTask * getCurrentTask | ( | ) |
get current ParaTask object
Definition at line 620 of file paraSolver.h.
References ParaSolver::currentTask.
ParaDeterministicTimer * getDeterministicTimer | ( | ) |
get deterministic timer object
Definition at line 739 of file paraSolver.h.
References ParaSolver::paraDetTimer.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
double getElapsedTimeOfTaskSolving | ( | ) |
the following functions may be called from callback routines of the target Solver
get elapsed time of task solving
Definition at line 493 of file paraSolver.h.
References ParaTimer::getElapsedTime(), ParaSolver::paraTaskStartTime, and ParaSolver::paraTimer.
ParaSolution * getGlobalBestIncumbentSolution | ( | ) |
get global best incumbent solution
Definition at line 691 of file paraSolver.h.
References ParaSolver::globalBestIncumbentSolution.
bool getNotificaionProcessed | ( | ) |
check if Solver is in notification process or not TODO: function name should be changed
Definition at line 610 of file paraSolver.h.
References ParaSolver::notificationProcessed.
double getOffsetTimeToWaitToken | ( | ) |
get offset time to wait token
Definition at line 749 of file paraSolver.h.
References ParaSolver::offsetTimeToWaitToken.
ParaComm * getParaComm | ( | ) |
get paraParaComm
Definition at line 418 of file paraSolver.h.
References ParaSolver::paraComm.
ParaInstance * getParaInstance | ( | ) |
get ParaInstance object
Definition at line 630 of file paraSolver.h.
References ParaSolver::paraInstance.
ParaParamSet * getParaParamSet | ( | ) |
get ParaParamSet object
Definition at line 640 of file paraSolver.h.
References ParaSolver::paraParams.
double getPreviousCommTime | ( | ) |
get previous communication time for deterministic execution
Definition at line 828 of file paraSolver.h.
References ParaSolver::previousCommTime.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
virtual |
get rank of this Solver
Reimplemented in BbParaSolver.
Definition at line 650 of file paraSolver.h.
References ParaComm::getRank(), and ParaSolver::paraComm.
int getTerminationMode | ( | ) |
get termination mode
Definition at line 848 of file paraSolver.h.
References ParaSolver::terminationMode.
|
pure virtual |
non-blocking receive messages
Implemented in BbParaSolver.
bool isInterrupting | ( | ) |
check if Solver is in interrupting phase or not
Definition at line 579 of file paraSolver.h.
References UG::InterruptedTerminationMode, and ParaSolver::terminationMode.
bool isRacingWinner | ( | ) |
check if this solver is in racing ramp-up or not
Definition at line 530 of file paraSolver.h.
References ParaSolver::racingWinner.
Referenced by ScipParaObjCommPointHdlr::scip_exec(), and ScipParaSolver::solve().
bool isRampUp | ( | ) |
check if this solver is ramp-up or not
Definition at line 509 of file paraSolver.h.
References ParaSolver::rampUp.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
bool isTerminationRequested | ( | ) |
check if termination was requested or not
Definition at line 589 of file paraSolver.h.
References UG::NormalTerminationMode, and ParaSolver::terminationMode.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
bool isWaitingForSpecificMessage | ( | ) |
check if Solver is waiting for a specific message or not
Definition at line 701 of file paraSolver.h.
References ParaSolver::waitingSpecificMessage.
bool isWarmStarted | ( | ) |
check if current execution is warm start (restart) or not
Definition at line 428 of file paraSolver.h.
References ParaSolver::warmStarted.
Referenced by BbParaSolver::BbParaSolver().
bool newParaTaskExists | ( | ) |
check if a new ParaTask was received or not
Definition at line 599 of file paraSolver.h.
References ParaSolver::newTask.
|
pure virtual |
check if a notification message needs to send or not TODO: function name should be isNotificationNecessary
Implemented in BbParaSolver.
|
virtual |
pass token to the next process
rank | rank of this Solver |
Reimplemented in BbParaSolver.
Definition at line 727 of file paraSolver.h.
|
protectedvirtual |
process TagIncumbentValue
source | source rank |
tag | TagIncumbentValue |
Reimplemented in BbParaSolver.
Definition at line 199 of file paraSolver.h.
Referenced by ParaSolver::ParaSolver().
|
protectedpure virtual |
process TagInterruptRequest
source | source rank |
tag | TagInterruptRequest |
Implemented in BbParaSolver, and ScipParaSolver.
|
protectedpure virtual |
process TagNotificationId
source | source rank |
tag | TagNotificationId |
Implemented in BbParaSolver.
Referenced by ParaSolver::ParaSolver().
|
protectedvirtual |
process TagRampUp
source | source rank |
tag | TagRampUp |
Reimplemented in BbParaSolver.
Definition at line 177 of file paraSolver.h.
Referenced by ParaSolver::ParaSolver().
|
protectedpure virtual |
process TagSolution
source | source rank |
tag | TagSolution |
Implemented in BbParaSolver.
Referenced by ParaSolver::ParaSolver().
|
protectedpure virtual |
process TagTask
source | source rank |
tag | TagTask |
Implemented in BbParaSolver.
|
protectedpure virtual |
process TagTaskReceived
source | source rank |
tag | TagTaskReceived |
Implemented in BbParaSolver.
Referenced by ParaSolver::ParaSolver().
|
protectedpure virtual |
process TagTerminateRequest
source | source rank |
tag | TagTerminateRequest |
Implemented in BbParaSolver.
Referenced by ParaSolver::ParaSolver().
|
protectedvirtual |
process TagToken
source | source rank |
tag | TagToken |
Reimplemented in BbParaSolver.
Definition at line 265 of file paraSolver.h.
Referenced by ParaSolver::ParaSolver().
|
protectedvirtual |
process TagWinner
source | source rank |
tag | TagWinner |
Reimplemented in BbParaSolver.
Definition at line 252 of file paraSolver.h.
Referenced by ParaSolver::ParaSolver().
|
protectedvirtual |
process TagWinnerRacingRampUpParamSet
source | source rank |
tag | TagWinnerRacingRampUpParamSet |
Reimplemented in BbParaSolver.
Definition at line 239 of file paraSolver.h.
Referenced by ParaSolver::ParaSolver().
|
protectedpure virtual |
wait for receiving a new task and reactivate solver
Implemented in BbParaSolver.
|
protectedvirtual |
re-initialized instance
Reimplemented in ScipParaSolver.
Definition at line 378 of file paraSolver.h.
Referenced by BbParaSolver::restartRacing().
|
pure virtual |
run this Solver
Implemented in BbParaSolver, and BbParaSolver.
Referenced by main(), BbParaSolver::run(), and ParaSolver::run().
|
virtual |
run this solver with racing parameters
inRacingRampUpParamSet | pointer to ParaRacingRampUpParamSet object |
Reimplemented in BbParaSolver, and BbParaSolver.
Definition at line 454 of file paraSolver.h.
|
virtual |
run this Solver with ParaTask object
paraTask | pointer to ParaTask object |
Reimplemented in BbParaSolver.
Definition at line 443 of file paraSolver.h.
References ParaSolver::currentTask, and ParaSolver::run().
|
virtual |
save improved solution if it was found in this Solver
sol | solution found in this Solver |
Reimplemented in BbParaSolver.
Definition at line 550 of file paraSolver.h.
|
protectedpure virtual |
restart racing
send completion of calculation
stopTime | stopping time |
Implemented in BbParaSolver.
|
virtual |
send improved solution if it was found in this Solver
sol | solution found in this Solver |
Reimplemented in BbParaSolver.
Definition at line 539 of file paraSolver.h.
|
virtual |
send solution found in this Solver
Reimplemented in BbParaSolver.
Definition at line 561 of file paraSolver.h.
void setPreviousCommTime | ( | double | detTime | ) |
set previous communication time for deterministic execution
detTime | deterministic time |
Definition at line 817 of file paraSolver.h.
References ParaSolver::previousCommTime.
Referenced by ScipParaObjCommPointHdlr::scip_exec().
|
protectedvirtual |
set racing parameters
racingParms | pointer to racing parameter set object |
winnerParam | indicate if the parameter set is winner one |
Reimplemented in BbParaSolver, and ScipParaSolver.
Definition at line 333 of file paraSolver.h.
void setTerminationMode | ( | int | tm | ) |
set termination mode
tm | terminiation mode to be set |
Definition at line 837 of file paraSolver.h.
References ParaSolver::terminationMode.
Referenced by ScipParaSolver::solve().
|
protectedvirtual |
set winner racing parameters
racingParms | pointer to winner racing parameter set object |
Reimplemented in BbParaSolver, and ScipParaSolver.
Definition at line 344 of file paraSolver.h.
|
protectedpure virtual |
solve (sub)problem
Implemented in ScipParaSolver, and BbParaSolver.
void terminateRacing | ( | ) |
terminate racing stage
Definition at line 677 of file paraSolver.h.
References ParaSolver::racingInterruptIsRequested, ParaSolver::racingIsInterrupted, and ParaSolver::racingParams.
Referenced by BbParaSolver::sendCompletionOfCalculation().
|
pure virtual |
try to enter solution to base solver environment
sol | solution to be enterred |
Implemented in BbParaSolver, and ScipParaSolver.
Referenced by ParaSolver::updatePendingSolution().
|
protectedvirtual |
update global best incumbent solution
sol | pointer to new solution object |
Reimplemented in BbParaSolver.
Definition at line 310 of file paraSolver.h.
Referenced by ParaSolver::updatePendingSolution().
|
protectedvirtual |
update global best incumbent value
newValue | new incumbent value |
Reimplemented in BbParaSolver.
Definition at line 322 of file paraSolver.h.
Referenced by ParaSolver::updatePendingSolution().
|
virtual |
update pending solution
Definition at line 759 of file paraSolver.h.
References ParaSolver::pendingIncumbentValue, ParaSolver::pendingSolution, ParaSolver::tryNewSolution(), ParaSolver::updateGlobalBestIncumbentSolution(), ParaSolver::updateGlobalBestIncumbentValue(), and ParaSolver::updatePendingSolutionIsProceeding.
Referenced by BbParaSolver::run(), and ScipParaObjCommPointHdlr::scip_exec().
|
protectedpure virtual |
wait ack completion to synchronized with LoadCoordinator
Implemented in BbParaSolver.
|
pure virtual |
wait a notification id message if it is needed to synchronize with LoadCoordinaor
Implemented in BbParaSolver.
|
protectedpure virtual |
wait notification id message to synchronized with LoadCoordinator
Implemented in BbParaSolver.
|
virtual |
wait token for deterministic mode
rank | rank of this Solver |
Reimplemented in BbParaSolver.
Definition at line 711 of file paraSolver.h.
|
pure virtual |
check if Solver was terminated normally or not
Implemented in ScipParaSolver, and BbParaSolver.
|
pure virtual |
write current task problem (this method is always useful for debugging, so we should implement this method)
filename | file name to write |
Implemented in ScipParaSolver, and BbParaSolver.
|
pure virtual |
write subproblem
Implemented in ScipParaSolver, and BbParaSolver.
|
protected |
solving task
Definition at line 97 of file paraSolver.h.
Referenced by ScipParaSolver::createSubproblem(), ScipParaSolver::freeSubproblem(), BbParaSolver::getCurrentNode(), BbParaSolver::getCurrentSolivingNodeMergingStatus(), BbParaSolver::getCurrentSolvingNodeInitialDualBound(), ParaSolver::getCurrentTask(), ScipParaSolver::getDualBoundValue(), ScipParaSolver::getOffsetDepth(), ScipParaSolver::getParentDiffSubproblem(), BbParaSolver::getSubMipDepth(), BbParaSolver::keepParaNode(), BbParaSolver::processTagTask(), BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::run(), ParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendParaNode(), BbParaSolver::sendSolverState(), ScipParaSolver::setBakSettings(), ScipParaSolver::setOriginalNodeSelectionStrategy(), ScipParaSolver::solve(), ScipParaSolver::writeSubproblem(), and ParaSolver::~ParaSolver().
|
protected |
absolute values smaller than this are considered zero esp should be set in the constructor of the derived class of ParaSolver
Definition at line 142 of file paraSolver.h.
Referenced by BbParaSolver::saveIfImprovedSolutionWasFound(), ScipParaSolver::ScipParaSolver(), BbParaSolver::sendIfImprovedSolutionWasFound(), BbParaSolver::sendLocalSolution(), and ScipParaSolver::solve().
|
protected |
global best solution. However, this is not always feasible for the current sub-MIP
Definition at line 92 of file paraSolver.h.
Referenced by ParaSolver::getGlobalBestIncumbentSolution(), BbParaSolver::run(), ScipParaSolver::ScipParaSolver(), BbParaSolver::sendIfImprovedSolutionWasFound(), BbParaSolver::sendLocalSolution(), BbParaSolver::sendSolverState(), BbParaSolver::updateGlobalBestIncumbentSolution(), and ParaSolver::~ParaSolver().
|
protected |
global best incumbent value
Definition at line 91 of file paraSolver.h.
Referenced by BbParaSolver::getGlobalBestIncumbentValue(), BbParaSolver::processTagIncumbentValue(), BbParaSolver::processTagSolution(), BbParaSolver::run(), BbParaSolver::saveIfImprovedSolutionWasFound(), ScipParaSolver::ScipParaSolver(), BbParaSolver::sendIfImprovedSolutionWasFound(), ScipParaSolver::solve(), ScipParaSolver::solveToCheckEffectOfRootNodePreprocesses(), BbParaSolver::updateGlobalBestIncumbentSolution(), and BbParaSolver::updateGlobalBestIncumbentValue().
|
protected |
indicate that global incumbent value is updated in iReceiveMessages() routine
Definition at line 139 of file paraSolver.h.
Referenced by BbParaSolver::globalIncumbnetValueIsReflected(), BbParaSolver::isGlobalIncumbentUpdated(), BbParaSolver::run(), BbParaSolver::sendIfImprovedSolutionWasFound(), BbParaSolver::updateGlobalBestIncumbentSolution(), and BbParaSolver::updateGlobalBestIncumbentValue().
|
protected |
idle time after the last ParaTask was solved
Definition at line 120 of file paraSolver.h.
Referenced by BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
idle time between ParaTasks processing
Definition at line 119 of file paraSolver.h.
Referenced by BbParaSolver::getThresholdValue(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
idle time to start solving the first ParaTask
Definition at line 118 of file paraSolver.h.
Referenced by BbParaSolver::getThresholdValue(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
idle time to wait acknowledgment of completion
Definition at line 122 of file paraSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), BbParaSolver::waitAckCompletion(), and ScipParaSolver::~ScipParaSolver().
|
protected |
idle time to wait a message within collecting mode
Definition at line 121 of file paraSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendParaNode(), BbParaSolver::sendSolverTerminationState(), BbParaSolver::waitNotificationIdMessage(), and ScipParaSolver::~ScipParaSolver().
|
protected |
idle time to wait token
Definition at line 123 of file paraSolver.h.
Referenced by BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), BbParaSolver::waitToken(), and ScipParaSolver::~ScipParaSolver().
|
protected |
incumbent solution generated in local solver
Definition at line 93 of file paraSolver.h.
Referenced by BbParaSolver::saveIfImprovedSolutionWasFound(), BbParaSolver::sendIfImprovedSolutionWasFound(), BbParaSolver::sendLocalSolution(), and ParaSolver::~ParaSolver().
|
protected |
indicate if memory limit is reached or not, when base solver has memory management feature
Definition at line 109 of file paraSolver.h.
Referenced by BbParaSolver::sendCompletionOfCalculation(), and ScipParaSolver::solve().
|
protected |
table for message handlers
Definition at line 78 of file paraSolver.h.
Referenced by BbParaSolver::BbParaSolver(), BbParaSolver::iReceiveMessages(), ParaSolver::ParaSolver(), BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendParaNode(), BbParaSolver::waitAckCompletion(), BbParaSolver::waitNotificationIdMessage(), and ParaSolver::~ParaSolver().
|
protected |
new task to solve
Definition at line 98 of file paraSolver.h.
Referenced by BbParaSolver::newParaNodeExists(), ParaSolver::newParaTaskExists(), BbParaSolver::processTagTask(), BbParaSolver::restartRacing(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), and ParaSolver::~ParaSolver().
|
protected |
number of valid message handlers
Definition at line 77 of file paraSolver.h.
Referenced by ParaSolver::ParaSolver().
|
protected |
Counters related to the current ParaTask.
number of improvements of incumbent value
Definition at line 130 of file paraSolver.h.
Referenced by BbParaSolver::saveIfImprovedSolutionWasFound(), BbParaSolver::sendCompletionOfCalculation(), and BbParaSolver::sendIfImprovedSolutionWasFound().
|
protected |
Definition at line 80 of file paraSolver.h.
Referenced by BbParaSolver::processTagNotificationId(), and BbParaSolver::sendSolverState().
|
protected |
if true, notification is issued but not receive the corresponding LCB
Definition at line 140 of file paraSolver.h.
Referenced by ParaSolver::getNotificaionProcessed(), BbParaSolver::getNotificaionProcessed(), BbParaSolver::processTagNotificationId(), BbParaSolver::sendLocalSolution(), BbParaSolver::sendSolverState(), and ScipParaSolver::solve().
|
protected |
Counters related to this ParaSolver.
number of ParaTasks received in this ParaSolver
Definition at line 135 of file paraSolver.h.
Referenced by BbParaSolver::processTagTask(), BbParaSolver::restartRacing(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
number of ParaTasks solved ( received ) in this ParaSolver
Definition at line 136 of file paraSolver.h.
Referenced by BbParaSolver::getThresholdValue(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
offset time to wait token
Definition at line 125 of file paraSolver.h.
Referenced by ParaSolver::getOffsetTimeToWaitToken(), and ParaSolver::ParaSolver().
|
protected |
ParaCommunicator object.
Definition at line 82 of file paraSolver.h.
Referenced by ScipParaSolver::checkVarsAndIndex(), ScipParaSolver::createSubproblem(), ScipParaSolver::dropSettingsForVariableBoundsExchnage(), ScipParaSolver::freeSubproblem(), ParaSolver::getParaComm(), BbParaSolver::getParaComm(), ParaSolver::getRank(), BbParaSolver::getRank(), BbParaSolver::iReceiveMessages(), BbParaSolver::keepParaNode(), ScipParaSolver::lbBoundTightened(), BbParaSolver::notifySelfSplitFinished(), ParaSolver::ParaSolver(), BbParaSolver::passToken(), BbParaSolver::processTagBreaking(), BbParaSolver::processTagCollectAllNodes(), BbParaSolver::processTagCutOffValue(), BbParaSolver::processTagGivenGapIsReached(), BbParaSolver::processTagGlobalBestDualBoundValueAtWarmStart(), BbParaSolver::processTagInCollectingMode(), BbParaSolver::processTagIncumbentValue(), BbParaSolver::processTagInterruptRequest(), BbParaSolver::processTagKeepRacing(), BbParaSolver::processTagLCBestBoundValue(), BbParaSolver::processTagLightWeightRootNodeProcess(), BbParaSolver::processTagNoNodes(), BbParaSolver::processTagNoTestDualBoundGain(), BbParaSolver::processTagNotificationId(), BbParaSolver::processTagNoWaitModeSend(), BbParaSolver::processTagOutCollectingMode(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagRestart(), BbParaSolver::processTagRetryRampUp(), BbParaSolver::processTagSolution(), BbParaSolver::processTagTask(), BbParaSolver::processTagTaskReceived(), BbParaSolver::processTagTerminateRequest(), BbParaSolver::processTagTerminateSolvingToRestart(), BbParaSolver::processTagTestDualBoundGain(), BbParaSolver::processTagToken(), BbParaSolver::processTagWinner(), BbParaSolver::processTagWinnerRacingRampUpParamSet(), BbParaSolver::receiveNewTaskAndReactivate(), ScipParaSolver::recoverOriginalSettings(), ScipParaSolver::reinitialize(), BbParaSolver::restartRacing(), BbParaSolver::run(), ScipParaSolver::saveImprovedSolution(), ScipParaSolver::saveOriginalSettings(), ScipParaSolver::ScipParaSolver(), BbParaSolver::sendAnotherNodeRequest(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendIfImprovedSolutionWasFound(), BbParaSolver::sendLocalSolution(), BbParaSolver::sendParaNode(), BbParaSolver::sendSolverState(), BbParaSolver::sendSolverTerminationState(), ScipParaSolver::setBakSettings(), ScipParaSolver::setLightWeightRootNodeProcess(), ScipParaSolver::solve(), ScipParaSolver::ubBoundTightened(), BbParaSolver::waitAckCompletion(), BbParaSolver::waitNotificationIdMessage(), BbParaSolver::waitToken(), ScipParaSolver::writeSubproblem(), and ScipParaSolver::~ScipParaSolver().
|
protected |
deterministic timer for this ParaSolver
Definition at line 89 of file paraSolver.h.
Referenced by ParaSolver::getDeterministicTimer(), BbParaSolver::notificationIsNecessary(), ParaSolver::ParaSolver(), BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
root problem instance
Definition at line 96 of file paraSolver.h.
Referenced by ParaSolver::getParaInstance(), BbParaSolver::getParaInstance(), ScipParaSolver::reinitialize(), BbParaSolver::restartRacing(), ScipParaSolver::saveOrgProblemBounds(), ScipParaSolver::ScipParaSolver(), and ParaSolver::~ParaSolver().
|
protected |
ParaParamSet object.
Definition at line 83 of file paraSolver.h.
Referenced by BbParaSolver::BbParaSolver(), ScipParaSolver::createSubproblem(), ScipParaSolver::freeSubproblem(), BbParaSolver::getAggresivePresolvingDepth(), BbParaSolver::getAggresivePresolvingStopDepth(), BbParaSolver::getBigDualGapSubtreeHandlingStrategy(), BbParaSolver::getBoundGapForCollectingMode(), BbParaSolver::getBoundGapForStopSolving(), ScipParaSolver::getChangeNodeSelName(), BbParaSolver::getNStopSolvingMode(), ParaSolver::getParaParamSet(), BbParaSolver::getParaParamSet(), BbParaSolver::getThresholdValue(), BbParaSolver::getTimeStopSolvingMode(), BbParaSolver::isAggressivePresolvingSpecified(), BbParaSolver::isIterativeBreakDownApplied(), BbParaSolver::isRacingRampUp(), BbParaSolver::isRacingStage(), BbParaSolver::notificationIsNecessary(), ParaSolver::ParaSolver(), BbParaSolver::processTagIncumbentValue(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagToken(), BbParaSolver::receiveNewTaskAndReactivate(), ScipParaSolver::recoverOriginalSettings(), ScipParaSolver::reinitialize(), BbParaSolver::run(), ScipParaSolver::saveOrgProblemBounds(), ScipParaSolver::ScipParaSolver(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendSolverState(), ScipParaSolver::setOriginalNodeSelectionStrategy(), ScipParaSolver::setRacingParams(), ScipParaSolver::setWinnerRacingParams(), ScipParaSolver::solve(), BbParaSolver::waitAckCompletion(), BbParaSolver::waitMessageIfNecessary(), and ScipParaSolver::~ScipParaSolver().
|
protected |
start time of current ParaTask
Definition at line 112 of file paraSolver.h.
Referenced by BbParaSolver::getElapsedTimeOfNodeSolving(), ParaSolver::getElapsedTimeOfTaskSolving(), BbParaSolver::run(), and BbParaSolver::setRootNodeTime().
|
protected |
timer for this ParaSolver
Definition at line 88 of file paraSolver.h.
Referenced by BbParaSolver::getElapsedTimeOfNodeSolving(), ParaSolver::getElapsedTimeOfTaskSolving(), BbParaSolver::getThresholdValue(), BbParaSolver::iReceiveMessages(), BbParaSolver::notificationIsNecessary(), ParaSolver::ParaSolver(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagWinnerRacingRampUpParamSet(), BbParaSolver::receiveNewTaskAndReactivate(), ScipParaSolver::reinitialize(), BbParaSolver::run(), ScipParaSolver::ScipParaSolver(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), BbParaSolver::sendParaNode(), BbParaSolver::sendSolverState(), BbParaSolver::sendSolverTerminationState(), ScipParaSolver::setBakSettings(), BbParaSolver::setRootNodeTime(), ScipParaSolver::solve(), BbParaSolver::waitAckCompletion(), BbParaSolver::waitNotificationIdMessage(), BbParaSolver::waitToken(), ParaSolver::~ParaSolver(), and ScipParaSolver::~ScipParaSolver().
|
protected |
incumbent value which is pending to update in case of deterministic runs
Definition at line 95 of file paraSolver.h.
Referenced by BbParaSolver::getPendingIncumbentValue(), BbParaSolver::processTagIncumbentValue(), BbParaSolver::processTagSolution(), and ParaSolver::updatePendingSolution().
|
protected |
solution which is pending to update in case of deterministic runs
Definition at line 94 of file paraSolver.h.
Referenced by BbParaSolver::processTagSolution(), and ParaSolver::updatePendingSolution().
|
protected |
previous communication time for deterministic execution
Definition at line 145 of file paraSolver.h.
Referenced by ParaSolver::getPreviousCommTime(), BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::run(), and ParaSolver::setPreviousCommTime().
|
protected |
previous idle time to wait token
Definition at line 124 of file paraSolver.h.
Referenced by BbParaSolver::run(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
previous notification time
Definition at line 111 of file paraSolver.h.
Referenced by BbParaSolver::notificationIsNecessary(), BbParaSolver::receiveNewTaskAndReactivate(), and BbParaSolver::sendSolverState().
|
protected |
Idle Times.
previous stop solving time of this Solver: For measurement
Definition at line 117 of file paraSolver.h.
Referenced by BbParaSolver::run(), BbParaSolver::sendSolverTerminationState(), and ScipParaSolver::~ScipParaSolver().
|
protected |
indicate a racing interrupt is requested
Definition at line 105 of file paraSolver.h.
Referenced by BbParaSolver::isRacingInterruptRequested(), BbParaSolver::processTagWinnerRacingRampUpParamSet(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), and ParaSolver::terminateRacing().
|
protected |
indicate whether if racing phases is interrupted or not: true - interrupted
Definition at line 106 of file paraSolver.h.
Referenced by BbParaSolver::processTagTerminateSolvingToRestart(), BbParaSolver::processTagWinnerRacingRampUpParamSet(), BbParaSolver::restartRacing(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendCompletionOfCalculationWithoutSolving(), ScipParaSolver::solve(), and ParaSolver::terminateRacing().
|
protected |
ParaRacingRampUpParamSet object. This is also a flag to indicate running with racing ramp-up.
Definition at line 84 of file paraSolver.h.
Referenced by BbParaSolver::isRacingStage(), BbParaSolver::processTagWinner(), BbParaSolver::run(), ParaSolver::terminateRacing(), and ParaSolver::~ParaSolver().
|
protected |
indicate racing ramp-up winner or not: true - winner
Definition at line 107 of file paraSolver.h.
Referenced by ScipParaSolver::freeSubproblem(), ParaSolver::isRacingWinner(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagWinner(), BbParaSolver::processTagWinnerRacingRampUpParamSet(), BbParaSolver::run(), and BbParaSolver::sendCompletionOfCalculation().
|
protected |
indicate whether if ramp-up phase is finished or not: true - finish
Definition at line 104 of file paraSolver.h.
Referenced by ParaSolver::isRampUp(), BbParaSolver::notificationIsNecessary(), BbParaSolver::processTagRampUp(), BbParaSolver::processTagRestart(), BbParaSolver::processTagRetryRampUp(), and BbParaSolver::waitMessageIfNecessary().
|
protected |
indicate that stay alive this solver after interrupt request
Definition at line 149 of file paraSolver.h.
Referenced by BbParaSolver::processTagGivenGapIsReached(), BbParaSolver::processTagInterruptRequest(), BbParaSolver::processTagRestart(), BbParaSolver::processTagTerminateRequest(), BbParaSolver::receiveNewTaskAndReactivate(), and BbParaSolver::run().
|
protected |
indicate that subproblem is already freed or not
Definition at line 147 of file paraSolver.h.
Referenced by BbParaSolver::restartRacing(), and BbParaSolver::run().
|
protected |
indicate that termination mode 0: no termination mode 1: normal termination mode 2: interrupted termination
Definition at line 99 of file paraSolver.h.
Referenced by ParaSolver::getTerminationMode(), BbParaSolver::iReceiveMessages(), ParaSolver::isInterrupting(), ParaSolver::isTerminationRequested(), ScipParaSolver::lbBoundTightened(), BbParaSolver::processTagInterruptRequest(), BbParaSolver::processTagOutCollectingMode(), BbParaSolver::processTagRestart(), BbParaSolver::processTagTerminateRequest(), BbParaSolver::receiveNewTaskAndReactivate(), BbParaSolver::restartRacing(), BbParaSolver::run(), BbParaSolver::sendCompletionOfCalculation(), BbParaSolver::sendSolverTerminationState(), ParaSolver::setTerminationMode(), ScipParaSolver::solve(), ScipParaSolver::ubBoundTightened(), BbParaSolver::waitAckCompletion(), and ScipParaSolver::~ScipParaSolver().
|
protected |
update pending solution process is proceeding
Definition at line 138 of file paraSolver.h.
Referenced by ParaSolver::updatePendingSolution().
|
protected |
indicate that this solver is waiting for a specific message
Definition at line 108 of file paraSolver.h.
Referenced by ParaSolver::isWaitingForSpecificMessage(), BbParaSolver::sendParaNode(), BbParaSolver::waitAckCompletion(), and BbParaSolver::waitNotificationIdMessage().
|
protected |
indicate whether if system is warm started or not
Definition at line 103 of file paraSolver.h.
Referenced by ParaSolver::isWarmStarted(), ParaSolver::ParaSolver(), and ScipParaSolver::ScipParaSolver().
|
protected |
Winner ParaRacingRampUpParamSet object.
Definition at line 86 of file paraSolver.h.
Referenced by ScipParaSolver::createSubproblem(), BbParaSolver::processTagTask(), BbParaSolver::processTagWinner(), BbParaSolver::processTagWinnerRacingRampUpParamSet(), BbParaSolver::run(), ScipParaSolver::setOriginalNodeSelectionStrategy(), and ParaSolver::~ParaSolver().