38const uint32_t colors[] = { 0xff00ff00, 0xff0000ff, 0xffffff00, 0xffff00ff, 0xff00ffff, 0xffff0000, 0xffffffff };
121 msg <<
level1 <<
"---------------------------------------------";
123 msg <<
" Timing results for " <<
ippl::Comm->size() <<
" nodes:"
125 msg <<
"---------------------------------------------";
130 double walltotal = 0.0;
132 size_t lengthName = std::min(tptr->
name.length(), 19lu);
133 msg << tptr->
name.substr(0, lengthName) << std::string().assign(20 - lengthName,
'.')
134 <<
" Wall tot = " << std::setw(10) << walltotal <<
"\n"
138 for (
unsigned int i = 1; i <
TimerList.size(); ++i) {
140 double wallmax = 0.0, wallmin = 0.0;
141 double wallavg = 0.0;
145 size_t lengthName = std::min(tptr->
name.length(), 19lu);
147 msg << tptr->
name.substr(0, lengthName) << std::string().assign(20 - lengthName,
'.')
148 <<
" Wall max = " << std::setw(10) << wallmax <<
"\n"
149 << std::string().assign(20,
' ') <<
" Wall avg = " << std::setw(10)
151 << std::string().assign(20,
' ') <<
" Wall min = " << std::setw(10) << wallmin <<
"\n"
154 msg <<
"---------------------------------------------";
159void Timing::print(
const std::string& fn,
const std::map<std::string, unsigned int>& problemSize) {
160 std::ofstream* timer_stream;
166 timer_stream =
new std::ofstream;
167 timer_stream->open(fn.c_str(), std::ios::out);
168 msg =
new Inform(0, *timer_stream, 0);
170 if (problemSize.size() > 0) {
171 *msg <<
"Problem size:\n";
172 for (
auto it : problemSize) {
173 *msg <<
" " << std::setw(10) << it.first <<
": " << it.second <<
"\n";
178 *msg << std::setw(27) <<
"ranks" << std::setw(11) <<
"Wall tot\n"
179 << std::string().assign(37,
'=') <<
"\n";
182 double walltotal = 0.0;
184 size_t lengthName = std::min(tptr->
name.length(), 19lu);
185 *msg << tptr->
name.substr(0, lengthName);
186 for (
int j = lengthName; j < 20; ++j) {
189 *msg <<
" " << std::setw(6) <<
ippl::Comm->size() <<
" " << std::setw(9)
190 << std::setprecision(4) << walltotal <<
"\n";
194 << std::setw(27) <<
"ranks" << std::setw(10) <<
"Wall max" << std::setw(10) <<
"Wall min"
195 << std::setw(11) <<
"Wall avg\n"
196 << std::string().assign(57,
'=') <<
"\n";
197 for (
unsigned int i = 0; i <
TimerList.size(); ++i) {
199 double wallmax = 0.0, wallmin = 0.0;
200 double wallavg = 0.0;
204 size_t lengthName = std::min(tptr->
name.length(), 19lu);
205 *msg << tptr->
name.substr(0, lengthName);
206 for (
int j = lengthName; j < 20; ++j) {
209 *msg <<
" " << std::setw(6) <<
ippl::Comm->size() <<
" " << std::setw(9)
210 << std::setprecision(4) << wallmax <<
" " << std::setw(9) << std::setprecision(4)
211 << wallmin <<
" " << std::setw(9) << std::setprecision(4)
214 timer_stream->close();