53 : nParaParams(nInParaParams)
64 "# Set log output to minimal information [Default value: TRUE]",
68 "# Control log output of communication tags [Default value: FALSE]",
72 "# Control of solving status log [Default value: FALSE]",
76 "# Control output of tasks transfer log [Default value: FALSE]",
80 "# Control checkpointing functionality [Default value: FALSE]",
84 "# Control deterministic mode [Default value: FALSE]",
88 "# Control output of statistics to stdout [Default value: FALSE]",
91 "DynamicAdjustNotificationInterval",
92 "# Control dynamic adjustment of notification interval time [Default value: FALSE]",
98 "# Control output of ParaParams: 0 - no output, 1 - output only non-default values, 2 - output non-default values with comments, 3 - output all values, 4 - output all values with comments [Default value: 4]",
103 "NotificationSynchronization",
104 "# Set notification synchronization strategy: 0 - always synchronize, 1 - collect in every iteration, 2 - no synchronization [Default value: 0]",
113 "NotificationInterval",
114 "# Set interval between notifications from active solver of its solvers status to LoadCoordinator. [Default: 1.0][0.0, DBL_MAX]",
120 "# Time limit for computation. -1.0 means no time limit. [Default: -1.0] [-1.0, DBL_MAX]",
125 "CheckpointInterval",
126 "# Time interval between checkpoints. [Default: 3600.0] [5.0, DBL_MAX]",
131 "FinalCheckpointGeneratingTime",
132 "# Time until start of generation of final checkpointing files. When this parameter is specified, TimeLimit is ignored. -1.0 means no specification. [Default: -1.0] [-1.0, DBL_MAX]",
142 "# Path for temporary files [Default: /tmp/]",
146 "# Filename for tag trace log [Default: std::cout]",
149 "LogSolvingStatusFilePath",
150 "# Path to solving statuses log [Default: ./]",
153 "LogTasksTransferFilePath",
154 "# Path to tasks transfer log [Default: ./]",
158 "# Path to output solution [Default: ./]",
161 "CheckpointFilePath",
162 "# Path to checkpoint files [Default: ./]",
165 "RacingParamsDirPath",
166 "# Path racing parameter configuration files. \"\" means to use default racing set. [Default: \"\"]",
191 return paraParamBool->
setValue(value);
245 return paraParamInt->
setValue(value);
288 return paraParamLongint->
getValue();
461 char *str =
new char[std::strlen(value) + 1];
462 std::strcpy(str, value);
503 assert(valuestr != NULL);
504 if( std::string(valuestr) == std::string(
"TRUE") )
508 else if( std::string(valuestr) == std::string(
"FALSE") )
514 std::cout <<
"Invalid parameter value <" << valuestr
515 <<
"> for ParaParam_Bool parameter <" 530 assert(valuestr != NULL);
531 if( std::sscanf(valuestr,
"%d", &value) == 1 )
544 std::cout <<
"Invalid parameter value <" << valuestr
545 <<
"> for int parameter <" 560 assert(valuestr != NULL);
561 if( std::sscanf(valuestr,
"%lld", &value) == 1 )
574 std::cout <<
"Invalid parameter value <" << valuestr
575 <<
"> for longint parameter <" 576 << paraParamLongint->
getParamName() <<
">" << std::endl;
590 assert(valuestr != NULL);
591 if( std::sscanf(valuestr,
"%lf", &value) == 1 )
604 std::cout <<
"Invalid parameter value <" << valuestr
605 <<
"> for real parameter <" 620 assert(valuestr != NULL);
621 if( std::sscanf(valuestr,
"%c", &value) == 1 )
624 char cString[2]; cString[0] = value; cString[1] =
'\0';
625 if( allowedString.find(cString) != std::string::npos )
636 std::cout <<
"Invalid parameter value <" << valuestr
637 <<
"> for char parameter <" 651 assert(valuestr != NULL);
654 size_t len = std::strlen(valuestr);
655 if( len <= 1 || valuestr[0] !=
'"' || valuestr[len-1] !=
'"' )
657 std::cout <<
"Invalid parameter value <" << valuestr
658 <<
"> for string parameter <" 663 valuestr[len-1] =
'\0';
665 char *paramValue =
new char[strlen(valuestr) + 1 ];
666 strcpy(paramValue, valuestr);
667 paraParamString->
setValue(paramValue);
676 std::map<std::string, int> &mapStringToId
685 while( *line ==
' ' || *line ==
'\t' || *line ==
'\r' )
687 if( *line ==
'\0' || *line ==
'\n' || *line ==
'#' )
692 while( *line !=
' ' && *line !=
'\t' && *line !=
'\r' && *line !=
'\n' && *line !=
'#' && *line !=
'\0' && *line !=
'=' )
705 while( *line ==
' ' || *line ==
'\t' || *line ==
'\r' )
709 std::cout <<
"Character '=' was expected after the parameter name" << std::endl;
716 while( *line ==
' ' || *line ==
'\t' || *line ==
'\r' )
718 if( *line ==
'\0' || *line ==
'\n' || *line ==
'#' )
720 std::cout <<
"Parameter value is missing" << std::endl;
723 paramvaluestr = line;
726 quoted = (*paramvaluestr ==
'"');
728 while( (quoted || (*line !=
' ' && *line !=
'\t' && *line !=
'\r' && *line !=
'\n' && *line !=
'#')) && *line !=
'\0' )
734 if( lastquote != NULL )
738 else if( *line !=
'\0' )
743 while( *line ==
' ' || *line ==
'\t' || *line ==
'\r' )
745 if( *line !=
'\0' && *line !=
'\n' && *line !=
'#' )
747 std::cout <<
"Additional characters after parameter value" << std::endl;
752 std::map<std::string, int>::iterator pos;
753 pos = mapStringToId.find(paramname);
754 if( pos == mapStringToId.end() )
756 std::cout <<
"Unknown parameter <" << paramname <<
">" << std::endl;
759 int paramId = pos->second;
775 std::cout <<
"Unknown parameter type" << std::endl;
786 const int MaxLineSize = 1024;
787 char line[MaxLineSize];
792 std::cout <<
"Cannot open ParaParams read file: file name = " << filename << std::endl;
796 std::map<std::string, int> mapStringToId;
801 mapStringToId.insert(std::make_pair(
paraParams[i]->getParamName(),i));
805 while( ifs.getline(line, MaxLineSize) )
811 std::cout <<
"Input error in file <" << filename <<
"> line " << lineNo << std::endl;
820 std::cout <<
"Cannot compile checkpointing without zlib. Checkpoint must be FALSE." << std::endl;
831 bool comments =
false;
832 bool onlyChanged =
false;
862 *os << paraParamBool->
getComment() << std::endl;
864 *os << paraParamBool->
getParamName() <<
" = " << ( ( paraParamBool->
getValue() == true ) ?
"TRUE" :
"FALSE" ) << std::endl << std::endl;
869 *os << paraParamBool->
getComment() << std::endl;
871 *os << paraParamBool->
getParamName() <<
" = " << ( ( paraParamBool->
getValue() == true ) ?
"TRUE" :
"FALSE" ) << std::endl << std::endl;
883 *os << paraParamInt->
getComment() << std::endl;
885 *os << paraParamInt->
getParamName() <<
" = " << paraParamInt->
getValue() << std::endl<< std::endl;
892 *os << paraParamInt->
getComment() << std::endl;
894 *os << paraParamInt->
getParamName() <<
" = " << paraParamInt->
getValue() << std::endl << std::endl;
906 *os << paraParamLongint->
getComment() << std::endl;
908 *os << paraParamLongint->
getParamName() <<
" = " << paraParamLongint->
getValue() << std::endl << std::endl;
915 *os << paraParamLongint->
getComment() << std::endl;
917 *os << paraParamLongint->
getParamName() <<
" = " << paraParamLongint->
getValue() << std::endl << std::endl;
929 *os << paraParamReal->
getComment() << std::endl;
931 *os << paraParamReal->
getParamName() <<
" = " << paraParamReal->
getValue() << std::endl << std::endl;
938 *os << paraParamReal->
getComment() << std::endl;
940 *os << paraParamReal->
getParamName() <<
" = " << paraParamReal->
getValue() << std::endl << std::endl;
952 *os << paraParamChar->
getComment() << std::endl;
954 *os << paraParamChar->
getParamName() <<
" = " << paraParamChar->
getValue() << std::endl << std::endl;
961 *os << paraParamChar->
getComment() << std::endl;
963 *os << paraParamChar->
getParamName() <<
" = " << paraParamChar->
getValue() << std::endl << std::endl;
976 *os << paraParamString->
getComment() << std::endl;
978 *os << paraParamString->
getParamName() <<
" = \"" << paraParamString->
getValue() <<
"\"" << std::endl << std::endl;
985 *os << paraParamString->
getComment() << std::endl;
987 *os << paraParamString->
getParamName() <<
" = \"" << paraParamString->
getValue() <<
"\"" << std::endl << std::endl;
992 std::cout <<
"Unknown parameter type" << std::endl;
993 throw "Unknown parameter type";
const char * getAllowedValues() const
get all allowed char parameter values
void setCharParamDefaultValue(int param)
set char parameter default value
void setRealParamDefaultValue(int param)
set real parameter default value
static const int ParaParamTypeString
arrays of characters
void setValue(char value)
set current value of this char parameter
bool getBoolParamDefaultValue(int param)
get default value of bool parameter
void setStringParamValue(int param, const char *value)
set string parameter value
bool getValue() const
get current parameter value
long long getDefaultValue() const
get default value of this long int parameter
int getMinValue() const
get minimum value of this int parameter
void setDefaultValue()
set default value of this string parameter
bool isIntParamDefaultValue(int param)
check if int parameter is default value or not
void setValue(const char *value)
set current value of this sting parameter
static const int ParaParamTypeReal
real values
static const int LogSolvingStatusFilePath
static ScipParaCommTh * comm
void setValue(bool value)
set parameter value
long long getMaxValue() const
get maximum value of this long
bool isDefaultValue() const
check if current value is default value or not
static const int FinalCheckpointGeneratingTime
double getMinValue() const
get minimum value of this long int parameter
bool isRealParamDefaultValue(int param)
check if real parameter is default value or not
char getCharParamValue(int param)
for char parameters
void setBoolParamValue(int param, bool value)
set bool parameter value
static const int ParaParamTypeChar
characters
void setBoolParamDefaultValue(int param)
set bool parameter default value
bool isBoolParamDefaultValue(int param)
check if bool parameter is default value or not
static const int ParaParamTypeInt
integer values
int paramParaseChar(ParaParam *paraParam, char *valuestr)
parse real parameter
int paramParaseReal(ParaParam *paraParam, char *valuestr)
parse real parameter
static const int OutputParaParams
ParaParamSet()
constructor
static const int TempFilePath
static const int RacingParamsDirPath
void setCharParamValue(int param, char value)
set char parameter value
bool isLongintParamDefaultValue(int param)
check if long int parameter is default value or not
const char * getComment() const
getter of comments string
static const int Checkpoint
int paramParaseLongint(ParaParam *paraParam, char *valuestr)
parse long int parameter
bool isDefaultValue() const
check if current value is default value or not
int paramParaseString(ParaParam *paraParam, char *valuestr)
parse real parameter
bool getDefaultValue() const
get default parameter value
const char * getStringParamDefaultValue(int param)
get default value of string parameter
int getIntParamDefaultValue(int param)
get default value of int parameter
int parameterParse(char *line, std::map< std::string, int > &mapStringToId)
parse parameter (this routine is almost copy from paramset.c of SCIP code)
size_t getParaParamsSize()
get parameter table size
void setDefaultValue()
set default value
static const int Deterministic
const char * getDefaultValue() const
get default value of this string parameter
static const int ParaParamTypeBool
Types of parameters.
static const int TagTraceFileName
double getMaxValue() const
get maximum value of this long
const char * getValue() const
get current value of this string parameter
int getMaxValue() const
get maximum value of this int parameter
char getValue() const
get current value of this char parameter
void setValue(int value)
set current value
void setDefaultValue()
set default value of this char parameter
double getRealParamValue(int param)
for real parameters
double getValue() const
get current value of this real parameter
Parameter set for UG framework.
bool isDefaultValue() const
check if current value is default value or not
long long getMinValue() const
get minimum value of this long int parameter
long long getLongintParamValue(int param)
for long int parameters
static const int LogTasksTransfer
Base class of communicator for UG Framework.
static const int TagTrace
int getValue() const
get current value of this int parameter
int getDefaultValue() const
get default value of this int parameter
static const int SolutionFilePath
bool isStringParamDefaultValue(int param)
check if string parameter is default value or not
bool isDefaultValue() const
check if current value is default value or not
void setDefaultValue()
set default value of this long int parameter
void setLongintParamValue(int param, long long value)
set long int parameter value
const char * getParamName() const
getter of parameter name
bool isDefaultValue() const
check if current value is default value or not
void setDefaultValue()
set default parameter value
void setValue(long long value)
set current value of this long int parameter
#define OUTPUT_PARAM_VALUE_ERROR(msg1, msg2, msg3, msg4)
static const int NotificationSynchronization
void setStringParamDefaultValue(int param)
set string parameter default value
const char * getStringParamValue(int param)
for char parameters
bool isDefaultValue() const
check if current value is default value or not
double getDefaultValue() const
get default value of this real parameter
virtual void read(ParaComm *comm, const char *filename)
read ParaParams from file
static const int CheckpointInterval
void setDefaultValue()
set default value of this real parameter
static const int NotificationInterval
void setRealParamValue(int param, double value)
set real parameter value
char getCharParamDefaultValue(int param)
get default value of char parameter
void setLongintParamDefaultValue(int param)
set long int parameter default value
char getDefaultValue() const
get default value of this char parameter
size_t nParaParams
number of ParaParams
double getRealParamDefaultValue(int param)
get default value of real parameter
long long getLongintParamDefaultValue(int param)
get default value of long int parameter
static const int LogSolvingStatus
static const int TimeLimit
void setValue(double value)
set current value of this real parameter
long long getValue() const
get current value of this long int parameter
static const int DynamicAdjustNotificationInterval
void write(std::ostream *os)
write ParaParams to output stream
static const int StatisticsToStdout
int getIntParamValue(int param)
for int parameters
void setIntParamDefaultValue(int param)
set int parameter default value
int paramParaseInt(ParaParam *paraParam, char *valuestr)
parse int parameter
int paramParaseBool(ParaParam *paraParam, char *valuestr)
parse bool parameter
void setIntParamValue(int param, int value)
set int parameter value
static const int LogTasksTransferFilePath
Base class of communicator object.
ParaParam ** paraParams
array of ParaParams
static const int ParaParamTypeLongint
long integer values
bool isCharParamDefaultValue(int param)
check if char parameter is default value or not
bool getBoolParamValue(int param)
for bool parameters
static const int CheckpointFilePath