mirror of
https://git.gfz-potsdam.de/naaice/poet.git
synced 2025-12-15 12:28:22 +01:00
Enabled time measurement
This commit is contained in:
parent
4ac8914175
commit
e479f666af
@ -115,18 +115,18 @@ setup <- list(
|
||||
Chemistry = chemistry_setup # Parameters related to the chemistry process
|
||||
)
|
||||
|
||||
iterations <- 100
|
||||
iterations <- 5000
|
||||
dt <- 200
|
||||
checkpoint_interval <- 20
|
||||
control_interval <- 20
|
||||
checkpoint_interval <- 100
|
||||
control_interval <- 100
|
||||
mape_threshold <- rep(3.5e-3, 13)
|
||||
#out_save <- seq(50, iterations, by = 50)
|
||||
out_save <- seq(1000, iterations, by = 1000)
|
||||
|
||||
|
||||
list(
|
||||
timesteps = rep(dt, iterations),
|
||||
store_result = FALSE,
|
||||
#out_save = out_save,
|
||||
store_result = TRUE,
|
||||
out_save = out_save,
|
||||
checkpoint_interval = checkpoint_interval,
|
||||
control_interval = control_interval,
|
||||
mape_threshold = mape_threshold
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
#!/bin/bash
|
||||
#SBATCH --job-name=dolo
|
||||
#SBATCH --output=dolo_%j.out
|
||||
#SBATCH --error=dolo_%j.err
|
||||
#SBATCH --job-name=dolo_5000
|
||||
#SBATCH --output=dolo_5000_%j.out
|
||||
#SBATCH --error=dolo_5000_%j.err
|
||||
#SBATCH --partition=long
|
||||
#SBATCH --nodes=4
|
||||
#SBATCH --ntasks=96
|
||||
#SBATCH --nodes=6
|
||||
#SBATCH --ntasks=144
|
||||
#SBATCH --ntasks-per-node=24
|
||||
#SBATCH --exclusive
|
||||
#SBATCH --time=12:00:00
|
||||
@ -14,5 +14,5 @@ source /etc/profile.d/modules.sh
|
||||
module purge
|
||||
module load cmake gcc openmpi
|
||||
|
||||
mpirun -n 96 ./poet --interp dolo_fgcs_3.R dolo_fgcs_3.qs2 dolo
|
||||
mpirun -n 144 ./poet --interp dolo_fgcs_3.R dolo_fgcs_3.qs2 dolo_5000
|
||||
#mpirun -n 96 ./poet --interp barite_fgcs_2.R barite_fgcs_2.qs2 bar_warmup
|
||||
Binary file not shown.
Binary file not shown.
@ -410,8 +410,6 @@ protected:
|
||||
ChemBCast(&type, 1, MPI_INT);
|
||||
}
|
||||
|
||||
void PropagateControlLogic(int type, int flag);
|
||||
|
||||
double simtime = 0.;
|
||||
double idle_t = 0.;
|
||||
double seq_t = 0.;
|
||||
|
||||
@ -232,37 +232,6 @@ inline void printProgressbar(int count_pkgs, int n_wp, int barWidth = 70) {
|
||||
/* end visual progress */
|
||||
}
|
||||
|
||||
void poet::ChemistryModule::PropagateControlLogic(int type, int flag) {
|
||||
/*
|
||||
PropagateFunctionType(type);
|
||||
|
||||
static int master_bcast_seq = 0;
|
||||
int tmp = flag ? 1 : 0;
|
||||
std::cerr << "[MASTER BCAST " << master_bcast_seq << "] ftype=" << type
|
||||
<< " flag=" << tmp << std::endl
|
||||
<< std::flush;
|
||||
master_bcast_seq++;
|
||||
ChemBCast(&tmp, 1, MPI_INT);
|
||||
|
||||
switch (type) {
|
||||
case CHEM_CTRL_ENABLE:
|
||||
this->control_enabled = (tmp == 1);
|
||||
break;
|
||||
case CHEM_WARMUP_PHASE:
|
||||
this->warmup_enabled = (tmp == 1);
|
||||
break;
|
||||
case CHEM_DHT_ENABLE:
|
||||
this->dht_enabled = (tmp == 1);
|
||||
break;
|
||||
case CHEM_IP_ENABLE:
|
||||
this->interp_enabled = (tmp == 1);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
inline void poet::ChemistryModule::MasterSendPkgs(
|
||||
worker_list_t &w_list, workpointer_t &work_pointer,
|
||||
workpointer_t &sur_pointer, int &pkg_to_send, int &count_pkgs,
|
||||
|
||||
@ -465,7 +465,7 @@ static Rcpp::List RunMasterLoop(RInsidePOET &R, RuntimeParameters ¶ms,
|
||||
profiling["simtime"] = dSimTime;
|
||||
profiling["chemistry"] = chem_profiling;
|
||||
profiling["diffusion"] = diffusion_profiling;
|
||||
//profiling["ctrl_logic"] = ctrl_profiling;
|
||||
profiling["control_loop"] = ctrl_profiling;
|
||||
|
||||
chem.MasterLoopBreak();
|
||||
|
||||
|
||||
@ -3,9 +3,9 @@
|
||||
#include <doctest/doctest.h>
|
||||
#include <vector>
|
||||
|
||||
#include <Chemistry/ChemistryModule.hpp>
|
||||
#include <Control/ControlModule.hpp>
|
||||
|
||||
TEST_CASE("Stats calculation")
|
||||
TEST_CASE("Metrics calculation")
|
||||
{
|
||||
std::vector<double> real =
|
||||
{
|
||||
@ -27,15 +27,15 @@ TEST_CASE("Stats calculation")
|
||||
2.8, 0.02, 0.7, 0.5
|
||||
};
|
||||
|
||||
poet::ChemistryModule::error_stats stats(6, 5);
|
||||
poet::ChemistryModule::computeStats(real, pred, /*size_per_prop*/ 4, /*species_count*/ 6, stats);
|
||||
poet::ControlModule::metricsHistory metrics(6, 5);
|
||||
poet::ControlModule::computeSpeciesErrorMetrics(real, pred, /*size_per_prop*/ 4);
|
||||
|
||||
SUBCASE("Non-zero values")
|
||||
{
|
||||
|
||||
// species 1 is ID, should stay 0
|
||||
CHECK_EQ(stats.mape[0], 0);
|
||||
CHECK_EQ(stats.rrsme[0], 0);
|
||||
CHECK_EQ(metrics.mape[0], 0);
|
||||
CHECK_EQ(metrics.rrsme[0], 0);
|
||||
|
||||
/*
|
||||
mape species 2
|
||||
@ -49,8 +49,8 @@ TEST_CASE("Stats calculation")
|
||||
rrsme = sqrt(1.02040816/4) = 0.50507627
|
||||
*/
|
||||
|
||||
CHECK_EQ(stats.mape[1], doctest::Approx(28.5714286).epsilon(1e-6));
|
||||
CHECK_EQ(stats.rrsme[1], doctest::Approx(0.50507627).epsilon(1e-6));
|
||||
CHECK_EQ(metrics.mape[1], doctest::Approx(28.5714286).epsilon(1e-6));
|
||||
CHECK_EQ(metrics.rrsme[1], doctest::Approx(0.50507627).epsilon(1e-6));
|
||||
}
|
||||
|
||||
SUBCASE("Zero-denominator case")
|
||||
@ -65,8 +65,8 @@ TEST_CASE("Stats calculation")
|
||||
rrsme = 1
|
||||
*/
|
||||
|
||||
CHECK_EQ(stats.mape[2], 100.0);
|
||||
CHECK_EQ(stats.rrsme[2], 1.0);
|
||||
CHECK_EQ(metrics.mape[2], 100.0);
|
||||
CHECK_EQ(metrics.rrsme[2], 1.0);
|
||||
}
|
||||
|
||||
SUBCASE("True and predicted values are zero")
|
||||
@ -81,8 +81,8 @@ TEST_CASE("Stats calculation")
|
||||
rrsme = 0.0
|
||||
*/
|
||||
|
||||
CHECK_EQ(stats.mape[3], 0.0);
|
||||
CHECK_EQ(stats.rrsme[3], 0.0);
|
||||
CHECK_EQ(metrics.mape[3], 0.0);
|
||||
CHECK_EQ(metrics.rrsme[3], 0.0);
|
||||
}
|
||||
|
||||
SUBCASE("Negative values")
|
||||
@ -97,8 +97,8 @@ TEST_CASE("Stats calculation")
|
||||
rrsme = sqrt(13.6989796 / 4) = 1.85060663
|
||||
*/
|
||||
|
||||
CHECK_EQ(stats.mape[4], doctest::Approx(183.92857143).epsilon(1e-6));
|
||||
CHECK_EQ(stats.rrsme[4], doctest::Approx(1.85060663).epsilon(1e-6));
|
||||
CHECK_EQ(metrics.mape[4], doctest::Approx(183.92857143).epsilon(1e-6));
|
||||
CHECK_EQ(metrics.rrsme[4], doctest::Approx(1.85060663).epsilon(1e-6));
|
||||
}
|
||||
|
||||
SUBCASE("Large differences")
|
||||
@ -113,7 +113,7 @@ TEST_CASE("Stats calculation")
|
||||
rrsme = sqrt(2,12262382 / 4) = 0.72846136
|
||||
*/
|
||||
|
||||
CHECK_EQ(stats.mape[5], doctest::Approx(62.102492).epsilon(1e-6));
|
||||
CHECK_EQ(stats.rrsme[5], doctest::Approx(0.72846136).epsilon(1e-6));
|
||||
CHECK_EQ(metrics.mape[5], doctest::Approx(62.102492).epsilon(1e-6));
|
||||
CHECK_EQ(metrics.rrsme[5], doctest::Approx(0.72846136).epsilon(1e-6));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user