OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
IpplStats.cpp
Go to the documentation of this file.
1// -*- C++ -*-
2/***************************************************************************
3 *
4 * The IPPL Framework
5 *
6 * This program was prepared by PSI.
7 * All rights in the program are reserved by PSI.
8 * Neither PSI nor the author(s)
9 * makes any warranty, express or implied, or assumes any liability or
10 * responsibility for the use of this software
11 *
12 * Visit www.amas.web.psi for more details
13 *
14 ***************************************************************************/
15
16// -*- C++ -*-
17/***************************************************************************
18 *
19 * The IPPL Framework
20 *
21 *
22 * Visit http://people.web.psi.ch/adelmann/ for more details
23 *
24 ***************************************************************************/
25
26// include files
27#include "Utility/IpplStats.h"
28#include "Utility/IpplInfo.h"
29#include "Utility/Inform.h"
30#include "Utility/Timer.h"
31
32
34// constructor: Initialize all the ippl-specific statistics objects,
35// and add them to our list of stats
37 MessagesSent(StatList, "Messages sent"),
38 MessagesSentToOthers(StatList, "Messages sent to other nodes"),
39 MessagesSentToSelf(StatList, "Messages sent to our own node"),
40 MessagesReceived(StatList, "Messages received"),
41 MessagesReceivedFromNetwork(StatList, "Messages received from network"),
42 MessagesReceivedFromQueue(StatList, "Messages received from queue"),
43 MessageReceiveChecks(StatList, "Message receive polls"),
44 MessageReceiveChecksFailed(StatList, "Message receive polls which failed"),
45 BytesSent(StatList, "Message total bytes sent"),
46 BytesReceived(StatList, "Message total bytes received"),
47 Barriers(StatList, "Barriers performed"),
48 Reductions(StatList, "General reductions performed"),
49 Scatters(StatList, "General scatters performed"),
50
51 BareFields(StatList, "BareField objects created"),
52 LFields(StatList, "LField objects created"),
53 LFieldBytes(StatList, "LField bytes of storage allocated"),
54 FieldLayouts(StatList, "FieldLayout objects created"),
55 Repartitions(StatList, "BareField objects repartitioned"),
56 Expressions(StatList, "BareField expressions evaluated"),
57 BFEqualsExpression(StatList, "BF=Expression expressions evaluated"),
58 IBFEqualsExpression(StatList, "IBF=Expression expressions evaluated"),
59 ParensEqualsExpression(StatList, "Parens=Expression expressions evaluated"),
60 BFEqualsBF(StatList, "General BF=BF expressions evaluated"),
61 IBFEqualsIBF(StatList, "General IBF=IBF expressions evaluated"),
62 SubEqualsExpression(StatList, "SubField=Expression expressions evaluated"),
63 FFTs(StatList, "FFTs performed"),
64 GuardCellFills(StatList, "Number of times guard cells were filled"),
65 BoundaryConditions(StatList, "Number of times boundary conditions applied"),
66 Compresses(StatList, "Number of LFields compressed"),
67 Decompresses(StatList, "Number of LFields decompressed"),
68 CompressionCompares(StatList, "Number of compression comparisons"),
69 CompressionCompareMax(StatList, "Maximum possible compression comparisons"),
70 BareFieldIterators(StatList, "BareField Iterators created"),
71 DefaultBareFieldIterators(StatList, "Default BareField Iterators created"),
72 BeginScalarCodes(StatList, "Number of scalar code section initializations"),
73 EndScalarCodes(StatList, "Number of scalar code section finalizes"),
74
75 ParticleAttribs(StatList, "ParticleAttrib objects created"),
76 IpplParticleBases(StatList, "IpplParticleBase objects created"),
77 ParticleUpdates(StatList, "Particle object updates"),
78 ParticleExpressions(StatList, "Particle expressions evaluted"),
79 ParticleGathers(StatList, "Particle/Field gather operations"),
80 ParticleScatters(StatList, "Particle/Field scatter operations"),
81 ParticlesCreated(StatList, "Particles created"),
82 ParticlesDestroyed(StatList, "Particles destroyed"),
83 ParticlesSwapped(StatList, "Particles swapped to another node")
84
85{
86 // start the timer
87 Time.stop();
88 Time.clear();
89 Time.start();
90}
91
92
94// destructor: delete all the necessary StatData's
96 for (unsigned int i=0; i < StatList.size(); ++i) {
97 if (StatList[i]->NeedDelete)
98 delete (StatList[i]);
99 }
100}
101
102
104// print out the statistics to the given Inform object
106
107 // if we have no stats, just return
108 if (StatList.size() == 0)
109 return;
110
111 // for each statistic, print out the description, a set of ...'s, and
112 // the stat, right-justified to 10 places
113 o << "Runtime statistics summary:" << endl;
114 for (unsigned int i=0; i < StatList.size(); ++i) {
115 o << StatList[i]->Name << " ";
116 int numperiods = 48 - strlen(StatList[i]->Name.c_str());
117 if (numperiods < 2)
118 numperiods = 2;
119 for (int j=0; j < numperiods; ++j)
120 o << ".";
121 o << " " << std::setw(12) << StatList[i]->Value << endl;
122 }
123}
124
125
126/***************************************************************************
127 * $RCSfile: IpplStats.cpp,v $ $Author: adelmann $
128 * $Revision: 1.1.1.1 $ $Date: 2003/01/23 07:40:33 $
129 * IPPL_VERSION_ID: $Id: IpplStats.cpp,v 1.1.1.1 2003/01/23 07:40:33 adelmann Exp $
130 ***************************************************************************/
131
Inform & endl(Inform &inf)
Definition Inform.cpp:42
Representation objects and parsers for attribute expressions.
StatData BytesSent
Definition IpplStats.h:191
StatData BytesReceived
Definition IpplStats.h:192
StatData LFields
Definition IpplStats.h:198
StatData FieldLayouts
Definition IpplStats.h:200
StatData BFEqualsBF
Definition IpplStats.h:206
StatData Compresses
Definition IpplStats.h:212
StatData Barriers
Definition IpplStats.h:193
StatData MessagesSent
Definition IpplStats.h:183
StatData ParensEqualsExpression
Definition IpplStats.h:205
StatData MessageReceiveChecksFailed
Definition IpplStats.h:190
StatData BareFieldIterators
Definition IpplStats.h:216
StatData BoundaryConditions
Definition IpplStats.h:211
StatData Repartitions
Definition IpplStats.h:201
StatData MessageReceiveChecks
Definition IpplStats.h:189
StatData EndScalarCodes
Definition IpplStats.h:219
StatData ParticlesSwapped
Definition IpplStats.h:229
StatData ParticleAttribs
Definition IpplStats.h:221
StatData BeginScalarCodes
Definition IpplStats.h:218
StatData ParticleScatters
Definition IpplStats.h:226
StatData DefaultBareFieldIterators
Definition IpplStats.h:217
StatData CompressionCompares
Definition IpplStats.h:214
std::vector< StatData * > StatList
Definition IpplStats.h:176
StatData MessagesReceived
Definition IpplStats.h:186
StatData GuardCellFills
Definition IpplStats.h:210
StatData LFieldBytes
Definition IpplStats.h:199
void print(Inform &)
StatData BareFields
Definition IpplStats.h:197
Timer Time
Definition IpplStats.h:180
StatData Scatters
Definition IpplStats.h:195
StatData ParticleUpdates
Definition IpplStats.h:223
StatData MessagesReceivedFromQueue
Definition IpplStats.h:188
StatData IBFEqualsExpression
Definition IpplStats.h:204
StatData SubEqualsExpression
Definition IpplStats.h:208
StatData MessagesSentToOthers
Definition IpplStats.h:184
StatData FFTs
Definition IpplStats.h:209
StatData Reductions
Definition IpplStats.h:194
StatData BFEqualsExpression
Definition IpplStats.h:203
StatData ParticleGathers
Definition IpplStats.h:225
StatData ParticleExpressions
Definition IpplStats.h:224
StatData IBFEqualsIBF
Definition IpplStats.h:207
StatData IpplParticleBases
Definition IpplStats.h:222
StatData Decompresses
Definition IpplStats.h:213
StatData ParticlesCreated
Definition IpplStats.h:227
StatData MessagesSentToSelf
Definition IpplStats.h:185
StatData ParticlesDestroyed
Definition IpplStats.h:228
StatData MessagesReceivedFromNetwork
Definition IpplStats.h:187
StatData CompressionCompareMax
Definition IpplStats.h:215