diff options
Diffstat (limited to 'Source/Initialization/WarpXInitData.cpp')
-rw-r--r-- | Source/Initialization/WarpXInitData.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/Source/Initialization/WarpXInitData.cpp b/Source/Initialization/WarpXInitData.cpp index d8b6cdd16..98c4b448c 100644 --- a/Source/Initialization/WarpXInitData.cpp +++ b/Source/Initialization/WarpXInitData.cpp @@ -62,7 +62,7 @@ #include <string> #include <utility> #include <vector> - +#include <sstream> using namespace amrex; @@ -757,8 +757,9 @@ WarpX::PerformanceHints () for (int ilev = 0; ilev <= finestLevel(); ++ilev) { total_nboxes += boxArray(ilev).size(); } - if (ParallelDescriptor::NProcs() > total_nboxes) - amrex::Print() << "\n[Warning] [Performance] Too many resources / too little work!\n" + if (ParallelDescriptor::NProcs() > total_nboxes){ + std::stringstream warnMsg; + warnMsg << "Too many resources / too little work!\n" << " It looks like you requested more compute resources than " << "there are total number of boxes of cells available (" << total_nboxes << "). " @@ -773,6 +774,9 @@ WarpX::PerformanceHints () << " More information:\n" << " https://warpx.readthedocs.io/en/latest/running_cpp/parallelization.html\n"; + WarpX::GetInstance().RecordWarning("Performance", warnMsg.str(), WarnPriority::high); + } + // TODO: warn if some ranks have disproportionally more work than all others // tricky: it can be ok to assign "vacuum" boxes to some ranks w/o slowing down // all other ranks; we need to measure this with our load-balancing |