46 const int nBlocks = 15;
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++ ){
70 displacements[1] = address - startAddress;
75 displacements[2] = address - startAddress;
80 displacements[3] = address - startAddress;
84 types[3] = MPI_LONG_LONG;
90 displacements[4] = address - startAddress;
95 displacements[5] = address - startAddress;
100 displacements[6] = address - startAddress;
105 displacements[7] = address - startAddress;
109 types[7] = MPI_LONG_LONG;
113 MPI_Get_address( &
depth, &address )
115 displacements[8] = address - startAddress;
120 displacements[9] = address - startAddress;
121 types[9] = MPI_DOUBLE;
126 displacements[10] = address - startAddress;
127 types[10] = MPI_DOUBLE;
132 displacements[11] = address - startAddress;
133 types[11] = MPI_DOUBLE;
138 displacements[12] = address - startAddress;
143 displacements[13] = address - startAddress;
148 displacements[14] = address - startAddress;
151 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
161 const int nBlocks = 8;
163 MPI_Datatype datatype;
165 MPI_Aint startAddress = 0;
166 MPI_Aint address = 0;
168 int blockLengths[nBlocks];
169 MPI_Aint displacements[nBlocks];
170 MPI_Datatype types[nBlocks];
172 for(
int i = 0; i < nBlocks; i++ ){
180 displacements[0] = 0;
185 displacements[1] = address - startAddress;
190 displacements[2] = address - startAddress;
195 displacements[3] = address - startAddress;
199 types[3] = MPI_LONG_LONG;
205 displacements[4] = address - startAddress;
210 displacements[5] = address - startAddress;
215 displacements[6] = address - startAddress;
220 displacements[7] = address - startAddress;
224 types[7] = MPI_LONG_LONG;
228 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
243 MPI_Datatype datatype;
246 MPI_Type_commit( &datatype )
252 MPI_Type_free( &datatype )
258 if( commMpi->getRank() != root )
275 MPI_Datatype datatype;
278 MPI_Type_commit( &datatype )
284 MPI_Type_free( &datatype )
299 MPI_Datatype datatype;
302 MPI_Type_commit( &datatype )
308 MPI_Type_free( &datatype )
324 MPI_Datatype datatype;
327 MPI_Type_commit( &datatype )
333 MPI_Type_free( &datatype )
364 MPI_Datatype datatype;
367 MPI_Type_commit( &datatype )
373 MPI_Type_free( &datatype )
393 MPI_Datatype datatype;
396 MPI_Type_commit( &datatype )
402 MPI_Type_free( &datatype )
423 MPI_Datatype datatype;
426 MPI_Type_commit( &datatype )
432 MPI_Type_free( &datatype )
double estimatedValue
estimate value
double dualBoundValue
dual bound value
int basisInfo
indicate if basis information is including or not
static const int TagNewSubtreeRootNode
int bcast(ParaComm *comm, int root)
broadcast this object
static ScipParaCommTh * comm
int send(ParaComm *comm, int destination)
send this object
SubtaskId subtaskId
subtree id
int lcId
LoadCoordinator ID.
int receiveSubtreeRootNodeId(ParaComm *comm, int source, int tag)
receive this object
int diffSubproblemInfo
1: with diffSubproblem, 0: no diffSubproblem
double initialDualBoundValue
dual bound value when this node is created This value is updated to precise one when there is guarant...
int sendNewSubtreeRoot(ParaComm *comm, int destination)
send new subtree root node
#define PARA_COMM_CALL(paracommcall)
TaskId generatorTaskId
subtree root task id of generator
int globalSubtaskIdInLc
Global Subtask ID in Solvers managed by LoadCoordinator.
ParaDiffSubproblem * diffSubproblem
difference between solving instance data and subproblem data
int mergingStatus
merging status: -1 - no merging node, 0 - checking, 1 - merged (representative) 2 - merged to the oth...
#define DEF_PARA_COMM(para_comm, comm)
int receiveNewSubtreeRoot(ParaComm *comm, int source)
receive this object
MPI_Datatype createDatatypeForNodeId()
create BbParaNode datatype
virtual int send(ParaComm *comm, int dest)=0
send function for ParaDiffSubproblem object
int sendSubtreeRootNodeId(ParaComm *comm, int destination, int tag)
send subtree root to be removed
MPI_Datatype createDatatype()
create BbParaNode datatype
virtual int receive(ParaComm *comm, int source)=0
receive function for ParaDiffSubproblem object
long long seqNum
sequential number in the subtree
int receive(ParaComm *comm, int source)
receive this object
int depth
depth from the root node of original tree
virtual int bcast(ParaComm *comm, int root)=0
broadcast function for ParaDiffSubproblem object
TaskId taskId
solving task information
#define MPI_CALL(mpicall)
Base class of communicator object.