| 65 | namespace seissol::monitoring { |
| 66 | |
| 67 | void FlopCounter::init(const std::string& outputFileNamePrefix) { |
| 68 | const std::string outputFileName = outputFileNamePrefix + "-flops.csv"; |
| 69 | const int rank = seissol::MPI::mpi.rank(); |
| 70 | const auto worldSize = static_cast<size_t>(seissol::MPI::mpi.size()); |
| 71 | if (rank == 0) { |
| 72 | out.open(outputFileName); |
| 73 | out << "time,"; |
| 74 | for (size_t i = 0; i < worldSize - 1; ++i) { |
| 75 | out << "rank_" << i << "_accumulated,"; |
| 76 | out << "rank_" << i << "_current,"; |
| 77 | } |
| 78 | out << "rank_" << worldSize - 1 << "_accumulated,"; |
| 79 | out << "rank_" << worldSize - 1 << "_current" << std::endl; |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | void FlopCounter::printPerformanceUpdate(double wallTime) { |
| 84 | const int rank = seissol::MPI::mpi.rank(); |