69 : nHandlers(inNHandlers),
71 notificationIdGenerator(0),
73 paraParams(inParaParamSet),
75 winnerRacingParams(0),
76 paraDetTimer(inParaDetTimer),
77 globalBestIncumbentValue(DBL_MAX),
78 globalBestIncumbentSolution(0),
79 localIncumbentSolution(0),
81 pendingIncumbentValue(DBL_MAX),
82 paraInstance(inParaInstance),
88 racingInterruptIsRequested(false),
89 racingIsInterrupted(false),
91 waitingSpecificMessage(false),
92 memoryLimitIsReached(false),
93 previousNotificationTime(0.0),
94 paraTaskStartTime(0.0),
95 previousStopTime(-DBL_MAX),
96 idleTimeToFirstParaTask(0.0),
97 idleTimeBetweenParaTasks(0.0),
98 idleTimeAfterLastParaTask(0.0),
99 idleTimeToWaitNotificationId(0.0),
100 idleTimeToWaitAckCompletion(0.0), idleTimeToWaitToken(0.0), previousIdleTimeToWaitToken(0.0), offsetTimeToWaitToken(0.0),
101 nImprovedIncumbent(0),
102 nParaTasksReceived(0),
104 updatePendingSolutionIsProceeding(false),
105 globalIncumbnetValueUpdateFlag(false),
106 notificationProcessed(false),
108 previousCommTime(0.0),
109 subproblemFreed(false),
110 stayAliveAfterInterrupt(false)
143 for(
int i = 0; i < argc; i++ )
145 if( strcmp(argv[i],
"-w") == 0 )
Base class for calculation state.
static const int TagNotificationId
This class has solver state to be transferred.
static const int TagIncumbentValue
virtual int processTagTaskReceived(int source, int tag)=0
process TagTaskReceived
static ScipParaCommTh * comm
ParaComm extension for Pthreads communication.
static const int TagTerminateRequest
ParaParamSet * paraParams
ParaParamSet object.
static const int TagRampUp
ParaRacingRampUpParamSet * racingParams
ParaRacingRampUpParamSet object. This is also a flag to indicate running with racing ramp-up...
ParaDeterministicTimer * paraDetTimer
deterministic timer for this ParaSolver
virtual int processTagNotificationId(int source, int tag)=0
process TagNotificationId
virtual int processTagWinnerRacingRampUpParamSet(int source, int tag)
process TagWinnerRacingRampUpParamSet
class for deterministic timer
ParaSolution * localIncumbentSolution
incumbent solution generated in local solver
static const int Deterministic
virtual int getRank()=0
get rank of this process or this thread depending on run-time environment
Base class for solver: Generic parallelized solver.
virtual ~ParaSolver()
destructor
virtual int processTagIncumbentValue(int source, int tag)
process TagIncumbentValue
int nHandlers
number of valid message handlers
static const int TagTaskReceived
double getRealParamValue(int param)
for real parameters
static const int TagSolution
virtual int processTagRampUp(int source, int tag)
process TagRampUp
static const int TagToken
Base class of communicator for UG Framework.
This class contains solver termination state which is transferred form Solver to LC.
ParaTimer * paraTimer
timer for this ParaSolver
Base class for instance data.
ParaSolution * globalBestIncumbentSolution
global best solution. However, this is not always feasible for the current sub-MIP ...
virtual void init(ParaComm *paraComm)=0
if you want to set original initial time, you can do it init()
virtual int processTagTerminateRequest(int source, int tag)=0
process TagTerminateRequest
ParaTask * currentTask
solving task
virtual int processTagSolution(int source, int tag)=0
process TagSolution
double offsetTimeToWaitToken
offset time to wait token
static const int NotificationInterval
static const int NoTerminationMode
termination mode
ParaRacingRampUpParamSet * winnerRacingParams
Winner ParaRacingRampUpParamSet object.
virtual int getSize()=0
get number of UG processes or UG threads depending on run-time environment
bool warmStarted
indicate whether if system is warm started or not
ParaTask * newTask
new task to solve
virtual ParaTimer * createParaTimer()=0
create ParaTimer object
ParaInstance * paraInstance
root problem instance
ParaComm * paraComm
ParaCommunicator object.
ParaComm extension for C++11 thread communication.
static const int TagRacingRampUpParamSet
int(ParaSolver::* MessageHandlerFunctionPointer)(int, int)
MessageHandlerFunctionPointer * messageHandler
table for message handlers
virtual int processTagToken(int source, int tag)
process TagToken
virtual int processTagWinner(int source, int tag)
process TagWinner
Base class of communicator object.
static const int TagWinner
bool getBoolParamValue(int param)
for bool parameters