49ScipDiffParamSetMpi::createDatatype1(
52 MPI_Datatype datatype;
54 int blockLengthsPre[13];
55 MPI_Aint displacementsPre[13];
56 MPI_Datatype typesPre[13];
58 MPI_Aint startAddress = 0;
61 for(
int i = 0; i < 13; i++ ){
62 blockLengthsPre[i] = 1;
63 typesPre[i] = MPI_INT;
69 displacementsPre[0] = 0;
73 displacementsPre[1] = address - startAddress;
77 displacementsPre[2] = address - startAddress;
81 displacementsPre[3] = address - startAddress;
85 displacementsPre[4] = address - startAddress;
89 displacementsPre[5] = address - startAddress;
93 displacementsPre[6] = address - startAddress;
97 displacementsPre[7] = address - startAddress;
101 displacementsPre[8] = address - startAddress;
105 displacementsPre[9] = address - startAddress;
109 displacementsPre[10] = address - startAddress;
113 displacementsPre[11] = address - startAddress;
117 displacementsPre[12] = address - startAddress;
120 MPI_Type_create_struct(13, blockLengthsPre, displacementsPre, typesPre, &datatype)
130 bool memAllocNecessary
133 MPI_Datatype datatype;
135 int blockLengths[13];
136 MPI_Aint displacements[13];
137 MPI_Datatype types[13];
139 MPI_Aint startAddress = 0;
140 MPI_Aint address = 0;
142 if( memAllocNecessary ){
152 blockLengths[nBlocks] = 1;
153 displacements[nBlocks] = 0;
154 types[nBlocks++] = MPI_INT;
162 displacements[nBlocks] = address - startAddress;
163 types[nBlocks++] = MPI_CHAR;
172 displacements[nBlocks] = address - startAddress;
173 types[nBlocks++] = MPI_UNSIGNED;
183 displacements[nBlocks] = address - startAddress;
184 types[nBlocks++] = MPI_CHAR;
194 displacements[nBlocks] = address - startAddress;
195 types[nBlocks++] = MPI_INT;
204 displacements[nBlocks] = address - startAddress;
205 types[nBlocks++] = MPI_CHAR;
214 displacements[nBlocks] = address - startAddress;
216 types[nBlocks++] = MPI_LONG;
218 types[nBlocks++] = MPI_LONG_LONG;
228 displacements[nBlocks] = address - startAddress;
229 types[nBlocks++] = MPI_CHAR;
238 displacements[nBlocks] = address - startAddress;
239 types[nBlocks++] = MPI_DOUBLE;
248 displacements[nBlocks] = address - startAddress;
249 types[nBlocks++] = MPI_CHAR;
258 displacements[nBlocks] = address - startAddress;
259 types[nBlocks++] = MPI_CHAR;
268 displacements[nBlocks] = address - startAddress;
269 types[nBlocks++] = MPI_CHAR;
278 displacements[nBlocks] = address - startAddress;
279 types[nBlocks++] = MPI_CHAR;
284 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
301 MPI_Type_commit( &datatype )
307 MPI_Type_free( &datatype )
319 MPI_Type_commit( &datatype )
325 MPI_Type_free( &datatype )
340 MPI_Type_commit( &datatype )
346 MPI_Type_free( &datatype )
351 MPI_Type_commit( &datatype )
357 MPI_Type_free( &datatype )
373 MPI_Type_commit( &datatype )
379 MPI_Type_free( &datatype )
384 MPI_Type_commit( &datatype )
390 MPI_Type_free( &datatype )
int receive(UG::ParaComm *comm, int source)
int bcast(UG::ParaComm *comm, int root)
int send(UG::ParaComm *comm, int destination)
MPI_Datatype createDatatype2(bool memAllocNecessary)
MPI_Datatype createDatatype1()
size_t charParamNamesSize
size_t longintParamNamesSize
size_t boolParamNamesSize
size_t stringParamNamesSize
size_t stringParamValuesSize
unsigned int * boolParamValues
size_t realParamNamesSize
long long * longintParamValues
int getRank()
get rank of caller's thread
Base class of communicator object.
static ScipParaCommTh * comm
static const int TagSolverDiffParamSet1
static const int TagSolverDiffParamSet
#define DEF_PARA_COMM(para_comm, comm)
ParaComm extension for MPI communication.
#define MPI_CALL(mpicall)
#define PARA_COMM_CALL(paracommcall)
ScipDiffParamSet extension for MPI communication.