81 int allStringParamValusesSize = 0;
90 allStringParamValusesSize += (std::strlen(paraParamString->
getValue()) + 1);
224 int len = (std::strlen(paraParamString->
getValue()) + 1);
310 const int nBlocks = 7;
312 MPI_Datatype datatype;
314 int blockLengths[nBlocks];
315 MPI_Aint displacements[nBlocks];
316 MPI_Datatype types[nBlocks];
318 MPI_Aint startAddress = 0;
319 MPI_Aint address = 0;
321 for(
int i = 0; i < nBlocks; i++ )
330 displacements[0] = 0;
334 displacements[1] = address - startAddress;
338 displacements[2] = address - startAddress;
342 displacements[3] = address - startAddress;
346 displacements[4] = address - startAddress;
350 displacements[5] = address - startAddress;
354 displacements[6] = address - startAddress;
357 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
367 bool reallocateStringParamValues
370 const int nMaxBlocks = 13;
372 MPI_Datatype datatype;
374 int blockLengths[nMaxBlocks];
375 MPI_Aint displacements[nMaxBlocks];
376 MPI_Datatype types[nMaxBlocks];
378 MPI_Aint startAddress = 0;
379 MPI_Aint address = 0;
386 blockLengths[nBlocks] = 1;
387 displacements[nBlocks] = 0;
388 types[nBlocks] = MPI_INT;
397 displacements[nBlocks] = address - startAddress;
398 types[nBlocks] = MPI_INT;
405 displacements[nBlocks] = address - startAddress;
406 types[nBlocks] = MPI_CHAR;
416 displacements[nBlocks] = address - startAddress;
417 types[nBlocks] = MPI_INT;
424 displacements[nBlocks] = address - startAddress;
425 types[nBlocks] = MPI_INT;
435 displacements[nBlocks] = address - startAddress;
437 types[nBlocks] = MPI_LONG;
439 types[nBlocks] = MPI_LONG_LONG;
446 displacements[nBlocks] = address - startAddress;
448 types[nBlocks] = MPI_LONG;
450 types[nBlocks] = MPI_LONG_LONG;
461 displacements[nBlocks] = address - startAddress;
462 types[nBlocks] = MPI_INT;
468 displacements[nBlocks] = address - startAddress;
469 types[nBlocks] = MPI_DOUBLE;
480 displacements[nBlocks] = address - startAddress;
481 types[nBlocks] = MPI_INT;
487 displacements[nBlocks] = address - startAddress;
488 types[nBlocks] = MPI_CHAR;
494 if( reallocateStringParamValues )
503 displacements[nBlocks] = address - startAddress;
504 types[nBlocks] = MPI_INT;
510 displacements[nBlocks] = address - startAddress;
511 types[nBlocks] = MPI_CHAR;
516 MPI_Type_create_struct(nBlocks, blockLengths, displacements, types, &datatype)
529 if( commMpi->getRank() == root )
534 MPI_Datatype datatype1;
537 MPI_Type_commit( &datatype1 )
543 MPI_Type_free( &datatype1 )
546 MPI_Datatype datatype2;
547 if( commMpi->getRank() == root )
556 MPI_Type_commit( &datatype2 )
562 MPI_Type_free( &datatype2 )
564 if( commMpi->getRank() != root )
virtual size_t getNumIntParams()=0
get number of int parameters
long long * longintParamValues
long int parameter values
void freeMemory()
free allocated temporary memory for transfer
char * stringParamValues
string parameter values: values are concatenated
static const int ParaParamTypeString
arrays of characters
virtual size_t getNumRealParams()=0
get number of real parameters
void setValue(char value)
set current value of this char parameter
int stringParamValuesSize
size of stringParameterValues area
bool getValue() const
get current parameter value
double * realParamValues
real parameter values
char * boolParamValues
boolean parameter values
void setValue(const char *value)
set current value of this sting parameter
static const int ParaParamTypeReal
real values
int * charParams
char parameter ids
int * intParams
int parameter ids
static ScipParaCommTh * comm
void setValue(bool value)
set parameter value
bool isDefaultValue() const
check if current value is default value or not
int nIntParams
the number of int parameters
int nBoolParams
the number of bool parameters
int bcast(ParaComm *comm, int root)
broadcast ParaParams
int * longintParams
long int parameter ids
static const int ParaParamTypeChar
characters
MPI_Datatype createDatatype1()
create ParaParamSetDatatype1
static const int ParaParamTypeInt
integer values
MPI_Datatype createDatatype2(bool reallocateStringPramsValue)
create ParaParamSetDatatype2
bool isDefaultValue() const
check if current value is default value or not
int nStringParams
the number of string parameters
#define PARA_COMM_CALL(paracommcall)
int nLongintParams
the number of long int parameters
static const int ParaParamTypeBool
Types of parameters.
const char * getValue() const
get current value of this string parameter
int * realParams
real parameter ids
int * stringParams
string parameter ids
char getValue() const
get current value of this char parameter
ParaComm extension for MPI communication.
void setValue(int value)
set current value
int * boolParams
boolean parameter ids
double getValue() const
get current value of this real parameter
#define DEF_PARA_COMM(para_comm, comm)
bool isDefaultValue() const
check if current value is default value or not
int nRealParams
the number of real parameters
virtual size_t getNumStringParams()=0
get number of string parameters
#define THROW_LOGICAL_ERROR1(msg1)
virtual size_t getNumLongintParams()=0
get number of longint parameters
static const int ParaParamsStringFirst
String parameters.
int getValue() const
get current value of this int parameter
bool isDefaultValue() const
check if current value is default value or not
bool isDefaultValue() const
check if current value is default value or not
void setValue(long long value)
set current value of this long int parameter
int nCharParams
the number of char parameters
bool isDefaultValue() const
check if current value is default value or not
char * charParamValues
char parameter values
int * intParamValues
int parameter values
size_t nParaParams
number of ParaParams
virtual size_t getNumCharParams()=0
get number of char parameters
virtual size_t getNumBoolParams()=0
get number of bool parameters
void setValue(double value)
set current value of this real parameter
void createDiffParams()
create non default parameters for transfer
long long getValue() const
get current value of this long int parameter
void allocateMemory()
allocate temporary memory for transfer
ParaParamSet extension for MPI communication.
void setDiffParams()
set non default parameters transferred
#define MPI_CALL(mpicall)
Base class of communicator object.
ParaParam ** paraParams
array of ParaParams
static const int ParaParamTypeLongint
long integer values