in astra-sim-alibabacloud/astra-sim/system/Sys.cc [703:807]
bool Sys::parse_var(std::string var, std::string value) {
var = trim(var);
value = trim(value);
if (id == 0) {
std::cout << "Var is: " << var << " ,val is: " << value << std::endl;
}
if (var == "scheduling-policy:") {
inp_scheduling_policy = value;
} else if (var == "all-reduce-implementation:") {
std::stringstream mval(value);
mval >> inp_all_reduce_implementation;
} else if (var == "reduce-scatter-implementation:") {
std::stringstream mval(value);
mval >> inp_reduce_scatter_implementation;
} else if (var == "all-gather-implementation:") {
std::stringstream mval(value);
mval >> inp_all_gather_implementation;
} else if (var == "all-to-all-implementation:") {
std::stringstream mval(value);
mval >> inp_all_to_all_implementation;
} else if (var == "collective-optimization:") {
std::stringstream mval(value);
mval >> inp_collective_optimization;
} else if (var == "endpoint-delay:") {
std::stringstream mval(value);
mval >> communication_delay;
communication_delay = communication_delay * injection_scale;
} else if (var == "local-reduction-delay:") {
std::stringstream mval(value);
mval >> local_reduction_delay;
} else if (var == "active-chunks-per-dimension:") {
std::stringstream mval(value);
mval >> active_chunks_per_dimension;
} else if (var == "L:") {
std::stringstream mval(value);
mval >> inp_L;
} else if (var == "o:") {
std::stringstream mval(value);
mval >> inp_o;
} else if (var == "g:") {
std::stringstream mval(value);
mval >> inp_g;
} else if (var == "G:") {
std::stringstream mval(value);
mval >> inp_G;
} else if (var == "model-shared-bus:") {
std::stringstream mval(value);
mval >> inp_model_shared_bus;
} else if (var == "preferred-dataset-splits:") {
std::stringstream mval(value);
mval >> preferred_dataset_splits;
} else if (var == "boost-mode:") {
std::stringstream mval(value);
mval >> inp_boost_mode;
} else if (var == "intra-dimension-scheduling:") {
std::stringstream mval(value);
std::string tmp;
mval >> tmp;
if (tmp == "FIFO") {
intra_dimension_scheduling = IntraDimensionScheduling::FIFO;
} else if (tmp == "RG") {
intra_dimension_scheduling = IntraDimensionScheduling::RG;
} else if (tmp == "smallestFirst") {
intra_dimension_scheduling = IntraDimensionScheduling::SmallestFirst;
} else if (tmp == "lessRemainingPhaseFirst") {
intra_dimension_scheduling =
IntraDimensionScheduling::LessRemainingPhaseFirst;
} else {
sys_panic(
"unknown value for intra-dimension-scheduling in sys input file");
}
} else if (var == "inter-dimension-scheduling:") {
std::stringstream mval(value);
std::string tmp;
mval >> tmp;
if (tmp == "ascending") {
inter_dimension_scheduling = InterDimensionScheduling::Ascending;
} else if (tmp == "offlineGreedy") {
inter_dimension_scheduling = InterDimensionScheduling::OfflineGreedy;
} else if (tmp == "offlineGreedyFlex") {
inter_dimension_scheduling = InterDimensionScheduling::OfflineGreedyFlex;
} else if (tmp == "roundRobin") {
inter_dimension_scheduling = InterDimensionScheduling::RoundRobin;
} else {
sys_panic(
"unknown value for inter-dimension-scheduling in sys input file");
}
} else if (var == "seprate-log:") {
std::stringstream mval(value);
int int_to_bool;
mval >> int_to_bool;
if (int_to_bool == 0) {
this->seprate_log = false;
} else {
this->seprate_log = true;
}
} else if (var != "") {
std::cerr
<< "######### Exiting because " << var
<< " is an unknown variable. Check your system input file. #########"
<< std::endl;
exit(1);
}
return true;
}