diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py index 3e270f4ffc459da636b809b85b0bc482372ee619..6b98676ece9461573baad93bda2ceefaf7cbd7ca 100644 --- a/python/dune/perftool/pdelab/driver.py +++ b/python/dune/perftool/pdelab/driver.py @@ -1140,14 +1140,27 @@ def name_explicitonestepmethod(): return "eosm" +@preamble +def define_mpihelper(name): + include_file("dune/common/parallel/mpihelper.hh", filetag="driver") + return "Dune::MPIHelper& {} = Dune::MPIHelper::instance(argc, argv);".format(name) + + +def name_mpihelper(): + name = "mpihelper" + define_mpihelper(name) + return name + + @preamble def define_timing_stream(name): include_file('fstream', filetag='driver', system=True) + include_file('sstream', filetag='driver', system=True) - import os - tfile = os.path.join(get_option('project_basedir'), 'timings.csv') - return ["std::ofstream {};".format(name), - "{}.open(\"{}\", std::ios_base::app);".format(name, tfile), + return ["std::stringstream ss;", + "ss << \"{}/timings-rank-\" << {}.rank() << \".csv\";".format(get_option('project_basedir'), name_mpihelper()), + "std::ofstream {};".format(name), + "{}.open(ss.str(), std::ios_base::app);".format(name), ]