37#ifndef __BB_PARA_COMM_MPI_H__
38#define __BB_PARA_COMM_MPI_H__
67#include "ugs/ugsParaCommMpi.h"
89 UGS::UgsParaCommMpi *commUgs;
163 int nImprovedIncumbent,
164 int terminationState,
165 int nSolvedWithNoPreprocesses,
166 int nSimplexIterRoot,
167 double averageSimplexIter,
168 int nTransferredLocalCuts,
169 int minTransferredLocalCuts,
170 int maxTransferredLocalCuts,
171 int nTransferredBendersCuts,
172 int minTransferredBendersCuts,
173 int maxTransferredBendersCuts,
180 int nSelfSplitNodesLeft
198 double inDualBoundValue,
199 double inOriginalDualBoundValue,
200 double inEstimatedValue,
217 unsigned int notificationId,
220 long long nodesSolved,
222 double bestDualBoundValue,
223 double globalBestPrimalBoundValue,
225 double averageDualBoundGain
247 int totalNImprovedIncumbent,
248 int nParaNodesReceived,
249 int nParaNodesSolved,
250 int nParaNodesSolvedAtRoot,
251 int nParaNodesSolvedAtPreCheck,
252 int nTransferredLocalCutsFromSolver,
253 int minTransferredLocalCutsFromSolver,
254 int maxTransferredLocalCutsFromSolver,
255 int nTransferredBendersCutsFromSolver,
256 int minTransferredBendersCutsFromSolver,
257 int maxTransferredBendersCutsFromSolver,
263 int calcTerminationState,
265 double idleTimeToFirstParaNode,
266 double idleTimeBetweenParaNodes,
267 double iddleTimeAfterLastParaNode,
268 double idleTimeToWaitNotificationId,
269 double idleTimeToWaitAckCompletion,
270 double idleTimeToWaitToken,
271 double totalRootNodeTime,
272 double minRootNodeTime,
273 double maxRootNodeTime,
289#define DEF_BB_PARA_COMM( para_comm, comm ) UG::BbParaCommMpi *para_comm = dynamic_cast< UG::BbParaCommMpi* >(comm)
CalcutationStte object extension for MPI communication.
BbParaNode extension for MIP communication.
BbParaSolverState extension for MPI communication.
BbParaSolverTerminationState extension for MIP communication.
Communicator object for MPI communications.
virtual ParaCalculationState * createParaCalculationState()
create ParaCalculationState object by default constructor
virtual ParaSolverState * createParaSolverState()
create ParaSolverState object by default constructor
virtual ParaTask * createParaTask()
create ParaNode object by default constructor
static MPI_Datatype datatypes[TYPE_LIST_SIZE]
data type mapping table to MPI data type
virtual bool tagStringTableIsSetUpCoorectly()
check if tag string table (for debugging) set up correctly
virtual ParaSolverTerminationState * createParaSolverTerminationState()
create ParaSolverTerminationState object by default constructor
virtual ParaRacingRampUpParamSet * createParaRacingRampUpParamSet()
create ParaRacingRampUpParamSet object by default constructor
virtual ParaTask * createParaNode(TaskId inNodeId, TaskId inGeneratorNodeId, int inDepth, double inDualBoundValue, double inOriginalDualBoundValue, double inEstimatedValue, ParaDiffSubproblem *inDiffSubproblem)
create ParaNode object
virtual const char * getTagString(int tag)
get Tag string for debugging
virtual ~BbParaCommMpi()
destructor of this communicator
static const char * tagStringTable[]
table for tag name string
pthread_mutex_t tokenAccessLock
mutex for pthread thread
BbParaCommMpi()
default constructor of ParaCommMpi
BbParaCommMpi(MPI_Comm comm)
constructor of ParaCommMpi with MPI communicator
Base class of Calculation state in a ParaSolver.
Communicator object for MPI communications.
int token[2]
index 0: token index 1: token color -1: green > 0: yellow ( termination origin solver number ) -2: re...
Class for the difference between instance and subproblem.
class ParaRacingRampUpParamSet (parameter set for racing ramp-up)
class ParaSolverState (ParaSolver state object for notification message)
class ParaSolverTerminationState (Solver termination state in a ParaSolver)
static ScipParaCommTh * comm
static const int TYPE_LIST_SIZE
ParaComm extension for MPI communication.
Defines for UG Framework.
#define THROW_LOGICAL_ERROR1(msg1)
Base class for a container which has difference between instance and subproblem.
Base class for instance data.
ParaParamSet extension for MPI communication.
ParaTimer extension for MPI timer.