diff --git a/dune/fem-dg/misc/diagnostics.hh b/dune/fem-dg/misc/diagnostics.hh index d9e2256d5c5f374828485135c9e312a18dc62528..56289e7cf0e76a2e9f8b374ade82458cd2086336 100644 --- a/dune/fem-dg/misc/diagnostics.hh +++ b/dune/fem-dg/misc/diagnostics.hh @@ -120,7 +120,7 @@ namespace Dune { const size_t size = sumTimes.size(); file.precision(6); file << std::scientific ; - file << "############################################################################" << std::endl ; + file << "########################################################################################" << std::endl ; file << "# Sum " << descr << sumDescr << std::endl; for(size_t i=0; i<size; ++i) { @@ -182,7 +182,6 @@ namespace Dune { if( comm_.rank() == 0 && timesteps_ > 0 ) { const int maxThreads = Fem :: ThreadManager :: maxThreads (); - const double tasks = comm_.size() * maxThreads ; const double timesteps = double(timesteps_); const size_t bufferSize = sumTimes.size(); @@ -209,6 +208,7 @@ namespace Dune { std::ofstream file ( diagnostics.str().c_str() ); if( file ) { + const double tasks = comm_.size();// * maxThreads ; const double averageElements = sumElements / tasks ; // get information about communication type @@ -219,7 +219,7 @@ namespace Dune { file << "# Comm: " << commType << std::endl; file << "# Timesteps = " << timesteps_ << std::endl ; file << "# Max DoFs (per element): " << maxDofs << std::endl; - file << "# Elements / timestep:" << std::endl; + file << "# Elements / timestep / MPI tasks:" << std::endl; file << "#" << std::setw(width-1) << "sum"; file << std::setw(width) << "max"; file << std::setw(width) << "min"; @@ -228,7 +228,7 @@ namespace Dune { file << std::setw(width) << maxElements; file << std::setw(width) << minElements; file << std::setw(width) << averageElements << std::endl; - file << "############################################################################" << std::endl; + file << "#########################################################################################" << std::endl; file << "#"; file << std::setw(width) << "DG "; file << std::setw(width+2) << "ODE "; @@ -261,6 +261,13 @@ namespace Dune { } } + std::string sumDescrPerElem("(opt: grows with #core)"); + std::string maxDescrPerElem("(opt: stays constant over #core increase)"); + { + std::string descr( "( time / elements in sec )" ); + writeVectors( file, descr, sumTimesPerElem, maxTimesPerElem, minTimesPerElem, sumDescrPerElem, maxDescrPerElem ); + } + // devide per elem times by timesteps for(size_t i=0; i<size; ++i) { @@ -270,8 +277,6 @@ namespace Dune { } { - std::string sumDescrPerElem("(opt: stays constant over #core increase)"); - std::string maxDescrPerElem("(opt: inversely proportional to #core increase)"); std::string descr( "( time / (timesteps * elements) in sec )" ); writeVectors( file, descr, sumTimesPerElem, maxTimesPerElem, minTimesPerElem, sumDescrPerElem, maxDescrPerElem ); }