diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-03-14 10:00:03 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-03-14 10:00:03 -0400 |
commit | 3fa30e248e3cd8e9bb2fc7aee4b07040be7b6df1 (patch) | |
tree | e60098a1307fda5f1c6c1afb67686cbb8566c251 /Carpet/LoopControl/src/loopcontrol.cc | |
parent | dd002d5066c6e4ef3c14d0a0793bd58c95366d43 (diff) |
LoopControl: Output statistics into per-process files, not into a single file
Diffstat (limited to 'Carpet/LoopControl/src/loopcontrol.cc')
-rw-r--r-- | Carpet/LoopControl/src/loopcontrol.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Carpet/LoopControl/src/loopcontrol.cc b/Carpet/LoopControl/src/loopcontrol.cc index 9d9a30130..2a9615607 100644 --- a/Carpet/LoopControl/src/loopcontrol.cc +++ b/Carpet/LoopControl/src/loopcontrol.cc @@ -16,6 +16,8 @@ #include <string> #include <vector> +#include <unistd.h> + #ifdef _OPENMP # include <omp.h> #else @@ -804,8 +806,10 @@ void lc_statistics(CCTK_ARGUMENTS) if (strlen(statistics_filename) == 0) return; - string const filename = string(out_dir) + "/" + statistics_filename; - FILE *const statsfile = fopen(filename.c_str(), "a"); + char filename[10000]; + snprintf(filename, sizeof filename, + "%s/%s.%06d.txt", out_dir, statistics_filename, CCTK_MyProc(cctkGH)); + FILE *const statsfile = fopen(filename, "a"); fprintf(statsfile, "\n"); fprintf(statsfile, "LoopControl statistics:\n"); @@ -823,8 +827,8 @@ void lc_statistics(CCTK_ARGUMENTS) stats->sum * stats->threads / (stats->count * stats->points); fprintf(statsfile, " Loop %s (%s:%d): count=%g, avg/thread=%g s, avg/point=%g s\n", - stats->name.c_str(), stats->file.c_str(), stats->line, - stats->count, avg_thread, avg_point); + stats->name.c_str(), stats->file.c_str(), stats->line, + stats->count, avg_thread, avg_point); } } fclose(statsfile); |