42BbParaSolverStateMpi::createDatatype(
46 const int nBlocks = 10;
48 MPI_Datatype datatype;
50 MPI_Aint startAddress = 0;
53 int blockLengths[nBlocks];
54 MPI_Aint displacements[nBlocks];
55 MPI_Datatype types[nBlocks];
57 for(
int i = 0; i < nBlocks; i++ )
71 displacements[1] = address - startAddress;
72 types[1] = MPI_UNSIGNED;
75 MPI_Get_address( &
lcId, &address )
77 displacements[2] = address - startAddress;
82 displacements[3] = address - startAddress;
87 displacements[4] = address - startAddress;
91 types[4] = MPI_LONG_LONG;
97 displacements[5] = address - startAddress;
102 displacements[6] = address - startAddress;
103 types[6] = MPI_DOUBLE;
108 displacements[7] = address - startAddress;
109 types[7] = MPI_DOUBLE;
112 MPI_Get_address( &
detTime, &address )
114 displacements[8] = address - startAddress;
115 types[8] = MPI_DOUBLE;
120 displacements[9] = address - startAddress;
121 types[9] = MPI_DOUBLE;
124 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
141 MPI_Datatype datatype;
144 MPI_Type_commit( &datatype )
147 commMpi->usend(&
racingStage, 1, datatype, destination, tag)
150 MPI_Type_free( &datatype )
163 MPI_Datatype datatype;
166 MPI_Type_commit( &datatype )
169 commMpi->ureceive(&
racingStage, 1, datatype, source, tag)
172 MPI_Type_free( &datatype )
BbParaSolverState extension for MPI communication.
void send(ParaComm *comm, int destination, int tag)
send this object
MPI_Datatype createDatatype()
create BbParaSolverStateMpi datatype
void receive(ParaComm *comm, int source, int tag)
receive this object
double globalBestPrimalBoundValue
global best primal bound value
double bestDualBoundValue
best dual bound value in that of remaining nodes
double averageDualBoundGain
average dual bound gain received
int nNodesLeft
number of remaining nodes
long long nNodesSolved
number of nodes solved
Base class of communicator object.
double detTime
deterministic time, -1: should be non-deterministic
int lcId
lc id of current ParaTask
int globalSubtreeIdInLc
global subtree id of current ParaTask
unsigned int notificationId
id for this notification
int racingStage
if this value is 1, solver is in racing stage
static ScipParaCommTh * comm
#define DEF_PARA_COMM(para_comm, comm)
#define MPI_CALL(mpicall)
#define PARA_COMM_CALL(paracommcall)