Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
jtwhite79 committed Dec 27, 2020
2 parents 58ae7e0 + 5f65810 commit 7752b65
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 7 deletions.
5 changes: 5 additions & 0 deletions benchmarks/mf6_freyberg/readme.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
23 dec 2020

The template directory contains all the modflow6 and pest++ v5 files needed to implement the workflow demonstrated in "Approaches to Highly Parameterized Inversion: PEST++ Version 5, a Software Suite for Parameter Estimation, Uncertainty Analysis, Management Optimization and Sensitivity Analysis" report by White and others (2020). The control files are named for the tools that were applied (e.g. "freyberg6_run_ies.pst", "freyberg6_run_opt.pst", etc). To implement the "basic" and "advanced" runs for pestpp-glm and pestpp-ies, users need to change the optional pest++ arguments added to the respective control files to be consistent with the options listed in the report.

Please report any issues via GitHub issues.
Binary file not shown.
2 changes: 1 addition & 1 deletion src/libs/common/config_os.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#define CONFIG_OS_H_


#define PESTPP_VERSION "5.0.8";
#define PESTPP_VERSION "5.0.9";

#if defined(_WIN32) || defined(_WIN64)
#define OS_WIN
Expand Down
5 changes: 4 additions & 1 deletion src/libs/pestpp_common/Ensemble.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,10 @@ void Ensemble::draw(int num_reals, Covariance cov, Transformable &tran, const ve
group_keys.push_back(gi.first);
DrawThread worker(plog, cov, &draws, group_keys, grouper);
int num_threads = pest_scenario_ptr->get_pestpp_options().get_ies_num_threads();
if ((num_threads <= 0) || (group_keys.size() == 1))
//if ((num_threads <= 0) || (group_keys.size() == 1))
//jwhite 23 dec 2020 - something is up with the multithreaded draw (and its a really mem pig)
//so turning it off
if (true)
{
worker.work(0, num_reals, level, idx_map, std_map);
}
Expand Down
13 changes: 10 additions & 3 deletions src/libs/run_managers/yamr/PantherAgent.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,16 @@ void PANTHERAgent::process_ctl_file(const string &ctl_filename)
throw PestError("PANTHER agent unable to open pest control file: " + ctl_filename);
}
pest_scenario.process_ctl_file(fin,ctl_filename,frec);
if ((pest_scenario.get_ctl_parameters().size() > 250000) || (pest_scenario.get_ctl_observations().size() > 250000))
{
set<string> pargs = pest_scenario.get_pestpp_options().get_passed_args();
if (pargs.find("CHECK_TPLINS") == pargs.end())
{
pest_scenario.get_pestpp_options_ptr()->set_check_tplins(false);
cout << "large problem detected, resetting 'check_tplins' to false" << endl;
}
}
report("checking model interface files", true);
pest_scenario.check_io(frec);
poll_interval_seconds = pest_scenario.get_pestpp_options().get_worker_poll_interval();

Expand All @@ -134,9 +144,6 @@ void PANTHERAgent::process_ctl_file(const string &ctl_filename)
pest_scenario.get_model_exec_info().insfile_vec,
pest_scenario.get_model_exec_info().outfile_vec,
pest_scenario.get_model_exec_info().comline_vec);
mi.check_io_access();
if (pest_scenario.get_pestpp_options().get_check_tplins())
mi.check_tplins(pest_scenario.get_ctl_ordered_par_names(), pest_scenario.get_ctl_ordered_obs_names());
mi.set_additional_ins_delimiters(pest_scenario.get_pestpp_options().get_additional_ins_delimiters());
mi.set_fill_tpl_zeros(pest_scenario.get_pestpp_options().get_fill_tpl_zeros());
mi.set_num_threads(pest_scenario.get_pestpp_options().get_num_tpl_ins_threads());
Expand Down
9 changes: 7 additions & 2 deletions src/libs/run_managers/yamr/RunManagerPanther.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,7 @@ RunManagerAbstract::RUN_UNTIL_COND RunManagerPanther::run_until(RUN_UNTIL_COND c

// Pause idle pinging thread
pause_idle();

stringstream ss;
model_runs_done = 0;
model_runs_failed = 0;
model_runs_timed_out = 0;
Expand All @@ -454,14 +454,19 @@ RunManagerAbstract::RUN_UNTIL_COND RunManagerPanther::run_until(RUN_UNTIL_COND c
cout << " starting at " << pest_utils::get_time_string() << endl;
if (agent_info_set.size() == 0) // first entry is the listener, slave apears after this
{
cout << endl << " waiting for agents to appear..." << endl << endl;
cout << endl << " waiting for agents to appear..." << endl << endl;
//f_rmr << endl << " waiting for agents to appear..." << endl << endl;
report("waiting for agents to appear", false);
}
else
{
for (auto &si : agent_info_set)
si.reset_runtime();
ss.str("");
ss << endl << " " << agent_info_set.size() << " agents ready";
report(ss.str(), false);
cout << ss.str() << endl << endl;

}
cout << endl;
f_rmr << endl;
Expand Down

0 comments on commit 7752b65

Please sign in to comment.