diff --git a/src/miniFE_sve/openmp-sve/src/YAML_Doc.cpp b/src/miniFE_sve/openmp-sve/src/YAML_Doc.cpp index 382c8cd1f49743b005729222cd79f99eb36227f8..78122a31f5d2b8c3c0ec748a8988bb73c7ae9f9e 100644 --- a/src/miniFE_sve/openmp-sve/src/YAML_Doc.cpp +++ b/src/miniFE_sve/openmp-sve/src/YAML_Doc.cpp @@ -81,13 +81,13 @@ string YAML_Doc::generateYAML(){ filename = destinationFileName; filename = filename + string(sdate) + ".yaml"; if (destinationDirectory!="" && destinationDirectory!=".") { - string mkdir_cmd = "mkdir " + destinationDirectory; + string mkdir_cmd = "mkdir -p " + destinationDirectory; #ifdef REDSTORM mkdir(destinationDirectory.c_str(),0755); #else system(mkdir_cmd.c_str()); #endif - filename = destinationDirectory + "/" + destinationFileName; + filename = destinationDirectory + "/" + filename; } else filename = "./" + filename; diff --git a/src/miniFE_sve/openmp-sve/src/main.cpp b/src/miniFE_sve/openmp-sve/src/main.cpp index 5a38b7f9c5551b6c020ea4c791745daebe151d01..a73fb0912b4a4ebd8527e3f287659c2754dd74b7 100644 --- a/src/miniFE_sve/openmp-sve/src/main.cpp +++ b/src/miniFE_sve/openmp-sve/src/main.cpp @@ -161,7 +161,7 @@ int main(int argc, char** argv) { osstr << "."; if (params.name != "") osstr << params.name << "."; - YAML_Doc doc("miniFE", MINIFE_VERSION, ".", osstr.str()); + YAML_Doc doc("miniFE", MINIFE_VERSION, params.output_dir, osstr.str()); if (myproc == 0) { add_params_to_yaml(doc, params); add_configuration_to_yaml(doc, numprocs, params.numthreads); diff --git a/src/miniFE_sve/openmp-sve/utils/Parameters.hpp b/src/miniFE_sve/openmp-sve/utils/Parameters.hpp index 44841cfc0dfe89335f3a9f1d512e7404b58e8985..574a923e02eb7cd400e23f5b69727a9be2e6d5e7 100644 --- a/src/miniFE_sve/openmp-sve/utils/Parameters.hpp +++ b/src/miniFE_sve/openmp-sve/utils/Parameters.hpp @@ -38,7 +38,7 @@ struct Parameters { mv_overlap_comm_comp(0), use_locking(0), load_imbalance(0), name(), elem_group_size(1), use_elem_mat_fields(1), verify_solution(0), - device(0),num_devices(2),skip_device(9999),numa(1) + device(0),num_devices(2),skip_device(9999),numa(1),output_dir() {} int nx; @@ -56,6 +56,7 @@ struct Parameters { int num_devices; int skip_device; int numa; + std::string output_dir; };//struct Parameters }//namespace miniFE diff --git a/src/miniFE_sve/openmp-sve/utils/utils.cpp b/src/miniFE_sve/openmp-sve/utils/utils.cpp index 29fcc8fe2efd4cd01e0f2a638cf9fcfa42b929d1..09ca7e179478020c4480500ce76d463edc2710eb 100644 --- a/src/miniFE_sve/openmp-sve/utils/utils.cpp +++ b/src/miniFE_sve/openmp-sve/utils/utils.cpp @@ -79,6 +79,7 @@ void get_parameters(int argc, char** argv, Parameters& params) params.num_devices = Mantevo::parse_parameter<int>(argstring, "num_devices", 2); params.skip_device = Mantevo::parse_parameter<int>(argstring, "skip_device", 9999); params.numa = Mantevo::parse_parameter<int>(argstring, "numa", 1); + params.output_dir = Mantevo::parse_parameter<std::string>(argstring, "output_dir",""); } //-------------------------------------------------------------