47 ScipParaRacingRampUpParamSetMpi::createDatatype(
50 const int nBlocks = 7;
52 MPI_Datatype datatype;
54 int blockLengths[nBlocks];
55 MPI_Aint displacements[nBlocks];
56 MPI_Datatype types[nBlocks];
58 MPI_Aint startAddress = 0;
61 for(
int i = 0; i < nBlocks; i++ )
67 MPI_Get_address( &terminationCriteria, &startAddress )
71 MPI_Get_address( &nNodesLeft, &address )
73 displacements[1] = address - startAddress;
75 MPI_Get_address( &timeLimit, &address )
77 displacements[2] = address - startAddress;
79 MPI_Get_address( &scipRacingParamSeed, &address )
81 displacements[3] = address - startAddress;
83 MPI_Get_address( &permuteProbSeed, &address )
85 displacements[4] = address - startAddress;
87 MPI_Get_address( &generateBranchOrderSeed, &address )
89 displacements[5] = address - startAddress;
91 MPI_Get_address( &scipDiffParamSetInfo, &address )
93 displacements[6] = address - startAddress;
95 types[2] = MPI_DOUBLE;
98 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
106 ScipParaRacingRampUpParamSetMpi::send(
113 MPI_Datatype datatype;
114 datatype = createDatatype();
116 MPI_Type_commit( &datatype )
122 MPI_Type_free( &datatype )
125 if( scipDiffParamSetInfo )
127 scipDiffParamSet->send(commMpi, dest);
135 ScipParaRacingRampUpParamSetMpi::receive(
142 MPI_Datatype datatype;
143 datatype = createDatatype();
145 MPI_Type_commit( &datatype )
151 MPI_Type_free( &datatype )
154 if( scipDiffParamSetInfo )
157 scipDiffParamSet = scipParaComm->createScipDiffParamSet();
158 scipDiffParamSet->receive(commMpi, source);
static ScipParaCommTh * comm
SCIP ParaComm extension for MPI communication.
ScipParaRacingRampUpParamSet extension for MPI communication.
#define PARA_COMM_CALL(paracommcall)
#define DEF_PARA_COMM(para_comm, comm)
static const int TagRacingRampUpParamSet
#define MPI_CALL(mpicall)
Base class of communicator object.
ScipDiffParamSet extension for MPI communication.
#define DEF_SCIP_PARA_COMM(scip_para_comm, comm)