diff --git a/Readme.md b/Readme.md index 8991fe2..835654e 100644 --- a/Readme.md +++ b/Readme.md @@ -6,11 +6,11 @@ This repository contains input data from POET simulations used in the NAAICE project and is simulated with the latest version of tug with heterogeneous alphas. -Benchmarks (grids, timestep, file paths, etc) are defined in the -header file `eval/bench_defs.hpp.in`. The data used by the three -benchmarks `barite_200`, `barite_large` and `surfex` are in the -corresponding subdirectories of `eval`, as `tar.gz`. Remember to -unpack them before running the executable! +Benchmarks (grids, timestep, file paths, etc) are defined in the header file +`eval/bench_defs.hpp.in`. The data used by the three benchmarks `barite_200`, +`barite_large` and `surfex` are in the corresponding subdirectories of `eval`, +as `tar.gz`. Remember to unpack them before running the executable into the +same directory of the executable. Or just let CMake do it for you. To write the results to file, set the `BENCH_OUTPUT` environmental variable, e.g. `BENCH_OUTPUT=1 ./bench`. The resulting fields are diff --git a/eval/CMakeLists.txt b/eval/CMakeLists.txt index a00b5b0..f5d12ef 100644 --- a/eval/CMakeLists.txt +++ b/eval/CMakeLists.txt @@ -1,5 +1,31 @@ -set(BARITE_200_BENCH "${CMAKE_CURRENT_SOURCE_DIR}/barite_200") -set(BARITE_LARGE_BENCH "${CMAKE_CURRENT_SOURCE_DIR}/barite_large") -set(SURFEX_BENCH "${CMAKE_CURRENT_SOURCE_DIR}/surfex") +set(benchmarks + "${CMAKE_CURRENT_SOURCE_DIR}/barite_200" + "${CMAKE_CURRENT_SOURCE_DIR}/barite_large" + "${CMAKE_CURRENT_SOURCE_DIR}/surfex" +) + +foreach(benchmark ${benchmarks}) + # find tar.gz files + file(GLOB_RECURSE tar_files "${benchmark}/*.tar.gz") + foreach(tar_file ${tar_files}) + # get the name of the tar file + get_filename_component(tar_name ${tar_file} NAME_WE) + # get the name of the directory + get_filename_component(dir_name ${tar_file} DIRECTORY) + get_filename_component(dir_name ${dir_name} NAME) + # create the directory +message("Extracting ${tar_name} to ${dir_name}") + file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${dir_name}") + # extract the tar file + execute_process( + COMMAND tar -xzf ${tar_file} + WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/${dir_name}" + ) + endforeach() +endforeach() + +set(BARITE_200_BENCH "${CMAKE_BINARY_DIR}/barite_200") +set(BARITE_LARGE_BENCH "${CMAKE_BINARY_DIR}/barite_large") +set(SURFEX_BENCH "${CMAKE_BINARY_DIR}/surfex") configure_file(bench_defs.hpp.in bench_defs.hpp) diff --git a/eval/bench_defs.hpp.in b/eval/bench_defs.hpp.in index 175030e..7f810e0 100644 --- a/eval/bench_defs.hpp.in +++ b/eval/bench_defs.hpp.in @@ -1,9 +1,9 @@ #ifndef _BENCH_DEFS_HPP #define _BENCH_DEFS_HPP +#include #include #include -#include struct init_boundary { const std::vector north_const; @@ -31,7 +31,6 @@ struct bench_input { const int iterations; }; - static const std::vector gen_vec(int elems) { std::vector vec(elems); for (int i = 0; i < elems; i++) { @@ -42,13 +41,13 @@ static const std::vector gen_vec(int elems) { } static const std::vector gen_vec_rev(int from, int to) { - int size = to - from+1; + int size = to - from + 1; std::vector vec(size); for (int i = from; i < to; i++) { vec[i] = i; std::cout << "i: " << i << "\n"; } - + return vec; } @@ -66,9 +65,8 @@ static bench_input barite_200_input = { .west_const = {0, 1, 2, 3, 4}, .values = {111.0124, 55.50622, -3.336970273297e-08, 0.1, 0.2, .0, .0}}, - .timestep = 1000, - .iterations = 50 -}; + .timestep = 500, + .iterations = 100}; static bench_input barite_large_input = { .csv_file_init = "@BARITE_LARGE_BENCH@/barite_large_init.csv", @@ -83,9 +81,8 @@ static bench_input barite_large_input = { .east_const = {}, .west_const = {}, .values = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}}, - .timestep = 100, - .iterations = 5 -}; + .timestep = 50, + .iterations = 10}; static bench_input surfex_input = { .csv_file_init = "@SURFEX_BENCH@/surfex_init.csv", @@ -96,58 +93,31 @@ static bench_input surfex_input = { .s_x = 0.02, .s_y = 0.01, .boundary = {.north_const = gen_vec(200), - .south_const = gen_vec(200), + .south_const = gen_vec(200), .east_const = gen_vec(100), .west_const = gen_vec(100), - .values = {120.0, // H - 55.1, // O - 8.0e-17, // Charge - 2.0e-15, // CH4 - 0.2, // C - 0.03, // Ca - 0.5, // Cl - 0.0002, // Fe2 - 2.0e-08, // Fe3 - 2.0e-11, // H0 - 1.0e-05, // K - 0.2, // Mg - 0.3, // Na - 0, // HS2 - 8.3e-12, // S2 - 5.1e-14, // S4 - 0.026, // S6 - 0.045, // Sr - 2.5e-08, // U4 - 1.6e-10, // U5 - 1.0e-05}}, // U6 - .timestep = 3600, - .iterations = 20 -}; + .values = {120.0, // H + 55.1, // O + 8.0e-17, // Charge + 2.0e-15, // CH4 + 0.2, // C + 0.03, // Ca + 0.5, // Cl + 0.0002, // Fe2 + 2.0e-08, // Fe3 + 2.0e-11, // H0 + 1.0e-05, // K + 0.2, // Mg + 0.3, // Na + 0, // HS2 + 8.3e-12, // S2 + 5.1e-14, // S4 + 0.026, // S6 + 0.045, // Sr + 2.5e-08, // U4 + 1.6e-10, // U5 + 1.0e-05}}, // U6 + .timestep = 1800, + .iterations = 40}; #endif // _BENCH_DEFS_HPP - - - - - - - - - - - - - - - - - - - - - - - - - -