58 int64_t exclusiveTime;
59 int64_t inclusiveTime;
66 occurrences( o ), exclusiveTime( ex ), inclusiveTime( in ) {};
70 occurrences( other.occurrences ), exclusiveTime( other.exclusiveTime ),
71 inclusiveTime( other.inclusiveTime ) {};
81 uint64_t originaltime;
92 Send( uint64_t _originaltime, uint32_t _receiver, uint32_t _procGroup, uint32_t _tag,
110 uint64_t number_sent;
111 uint64_t number_recvd;
113 uint64_t bytes_recvd;
117 SendStatistics( uint64_t ns= 0, uint64_t nr= 0, uint64_t bs= 0, uint64_t br= 0 ) :
118 number_sent( ns ), number_recvd( nr ), bytes_sent( bs ),
119 bytes_recvd( br ) {};
122 number_sent( other.number_sent ), number_recvd( other.number_recvd ),
123 bytes_sent( other.bytes_sent ), bytes_recvd( other.bytes_recvd ) {};
131 mutable std::map<uint32_t,uint64_t> numSent;
132 mutable std::map<uint32_t,uint64_t> numRecv;
133 mutable std::map<uint32_t,uint64_t> bytesSent;
134 mutable std::map<uint32_t,uint64_t> bytesRecv;
135 mutable std::map<uint32_t,uint32_t> Type2Col;
159 uint32_t _col, uint32_t _type, uint64_t _invoc_sent, uint64_t _invoc_recv,
160 uint64_t _bytesSent, uint64_t _bytesRecv, uint32_t _scltoken,
OTF_KeyValueList *_kvlist );
239 uint64_t nw= 0, uint64_t ns= 0, uint64_t br= 0, uint64_t bw= 0 ) :
240 nopen( no ), nclose( nc ), nread( nr ), nwrite( nw ), nseek( ns ),
241 bytesread( br ), byteswrite( bw ) {};
244 nopen( other.nopen ), nclose( other.nclose ), nread( other.nread ),
245 nwrite( other.nwrite ), nseek( other.nseek ),
246 bytesread( other.bytesread ), byteswrite( other.byteswrite ) {};
260 std::deque<FunctionCall> fstack;
263 std::deque<Send> sstack;
266 std::map<uint64_t,
FileOpen> openfiles;
275 std::map<uint32_t,FunctionStatistics> fstatistics;
284 std::map<uint32_t,FileOperationStatistics> fostatistics;
293 void enterFunction( uint64_t time, uint32_t token,
OTF_KeyValueList *kvlist );
295 void leaveFunction( uint64_t time, uint32_t token );
297 void sendMessage( uint64_t time, uint32_t receiver, uint32_t procGroup,
298 uint32_t tag, uint32_t msglength, uint32_t source,
OTF_KeyValueList *kvlist );
300 void collOperation( uint64_t time, uint32_t col, uint32_t type, uint32_t numSent, uint32_t numRecv,
301 uint32_t bytesSent, uint32_t bytesRecv );
303 void recvMessage( uint32_t msglength );
305 void matchMessage( uint32_t receiver, uint32_t procGroup, uint32_t tag );
307 int openFile( uint64_t time, uint32_t fileid, uint64_t handleid,
309 int closeFile( uint64_t handleid );
310 int writeFile( uint32_t fileid, uint64_t bytes );
311 int readFile( uint32_t fileid, uint64_t bytes );
312 int seekFile( uint32_t fileid, uint64_t bytes );
315 int beginCollOperation( uint64_t time, uint32_t root, uint32_t procGroup,
316 uint32_t col, uint32_t type, uint64_t matchingId, uint64_t invoc_sent,
317 uint64_t invoc_recv, uint64_t bytesSent, uint64_t bytesRecv,
320 int endCollOperation( uint64_t time, uint32_t matchingId );
322 int beginFileOperation( uint64_t time, uint64_t matchingId, uint32_t scltoken,
325 int endFileOperation( uint64_t matchingId );
328 void printStack( uint32_t processid )
const;
329 void printStatistics( uint32_t processid, uint64_t time,
330 std::map< uint32_t, uint32_t> *functiongroups,
331 std::map< uint32_t, uint32_t> *filegroups )
const;
332 void printSends( uint32_t processid )
const;
333 void printOpenFiles( uint32_t processid )
const;
335 void writeStack(
OTF_Writer* writer, uint64_t time, uint32_t processid )
const;
336 void writeStatistics(
OTF_Writer* writer, uint64_t time,
338 std::map< uint32_t, uint32_t> *functiongroups,
339 std::map< uint32_t, uint32_t> *filegroups )
const;
340 void writeSends(
OTF_Writer* writer, uint64_t time, uint32_t processid )
const;
341 void writeOpenFiles(
OTF_Writer* writer, uint64_t time, uint32_t processid )
const;
342 void writeCollOps(
OTF_Writer* writer, uint64_t time, uint32_t processid )
const;
343 void writeFileOps(
OTF_Writer* writer, uint64_t time, uint32_t processid )
const;
352 std::map<uint32_t,ProcessState> processes;
355 std::map<uint32_t,uint32_t> Col2Type;
358 std::map< uint32_t, uint32_t> functiongroups;
361 std::map< uint32_t, uint32_t> filegroups;
363 bool usefunctiongroups;
371 State(
bool _usefunctiongroups=
false,
bool _usefilegroups=
false,
372 bool _doSnapshots=
true,
bool _doStatistics=
true ) :
373 usefunctiongroups( _usefunctiongroups ), usefilegroups( _usefilegroups ),
374 doSnapshots( _doSnapshots ), doStatistics( _doStatistics ) {};
377 void defProcess( uint32_t processid );
379 void defFunction( uint32_t
function, uint32_t group );
381 void defFile( uint32_t fileid, uint32_t group );
383 void defCollOp( uint32_t col, uint32_t type );
385 void enterFunction( uint64_t time, uint32_t processid, uint32_t token,
OTF_KeyValueList *kvlist );
387 void leaveFunction( uint64_t time, uint32_t processid, uint32_t token );
389 void sendMessage( uint64_t time, uint32_t sender, uint32_t receiver,
390 uint32_t procGroup, uint32_t tag, uint32_t length, uint32_t source,
393 void collOperation( uint64_t time, uint32_t proc, uint32_t root, uint32_t col,
394 uint32_t bytesSent, uint32_t bytesRecv );
396 void recvMessage( uint32_t sender, uint32_t receiver, uint32_t procGroup,
397 uint32_t tag, uint32_t msglength );
399 int fileOperation( uint64_t time, uint32_t fileid, uint32_t process,
400 uint64_t handleid, uint32_t operation, uint64_t bytes,
403 int beginCollOperation( uint64_t time, uint32_t proc, uint32_t root, uint32_t procGroup,
404 uint32_t col, uint64_t matchingId, uint64_t bytesSent, uint64_t bytesRecv,
407 int endCollOperation( uint64_t time, uint32_t proc, uint64_t matchingId );
409 int beginFileOperation( uint64_t time, uint32_t process, uint64_t matchingId,
412 int endFileOperation( uint64_t time, uint32_t process, uint32_t fileid, uint64_t matchingId,
413 uint64_t handleId, uint32_t operation, uint64_t bytes, uint32_t scltoken,
OTF_KeyValueList *kvlist );
416 void printStack()
const;
417 void printStatistics( uint64_t time );
418 void printSends()
const;
419 void printOpenFiles()
const;
422 void writeSnapshot(
OTF_Writer* writer, uint64_t time );
423 void writeStatistics(
OTF_Writer* writer, uint64_t time );
FunctionCall(uint64_t _time, uint32_t _token, OTF_KeyValueList *_kvlist)
constructor
BeginFileOperation operator=(const BeginFileOperation &fop)
assignment operator
Main include file for applications using OTF.
Send(uint64_t _originaltime, uint32_t _receiver, uint32_t _procGroup, uint32_t _tag, uint32_t _length, uint32_t _source, OTF_KeyValueList *_kvlist)
constructor
Send operator=(const Send &s)
assignment operator
BeginCollOperation(uint64_t _time, uint32_t _root, uint32_t _procGroup, uint32_t _col, uint32_t _type, uint64_t _invoc_sent, uint64_t _invoc_recv, uint64_t _bytesSent, uint64_t _bytesRecv, uint32_t _scltoken, OTF_KeyValueList *_kvlist)
constructor
FunctionStatistics(const FunctionStatistics &other)
copy constructor
Definition: State.h:69
ProcessState()
constructor
Definition: State.h:290
State(bool _usefunctiongroups=false, bool _usefilegroups=false, bool _doSnapshots=true, bool _doStatistics=true)
constructor
Definition: State.h:371
~FunctionCall()
destructor
state of a whole trace
Definition: State.h:349
~BeginCollOperation()
destructor
BeginFileOperation(uint64_t _time, uint32_t _scltoken, OTF_KeyValueList *_kvlist)
constructor
FileOpen(uint64_t _time, uint32_t _fileid, uint32_t _source, OTF_KeyValueList *_kvlist)
constructor
FileOpen operator=(const FileOpen &fo)
assignment operator
FunctionCall operator=(const FunctionCall &fc)
assignment operator
BeginCollOperation operator=(const BeginCollOperation &cop)
assignment operator
~BeginFileOperation()
destructor
FunctionStatistics(int64_t o=0, int64_t ex=0, int64_t in=0)
constructor
Definition: State.h:65
struct OTF_KeyValueList_struct OTF_KeyValueList
Object type which holds a key-value list.
Definition: OTF_KeyValue.h:242
Holds the data objects needed for global trace creation.
Definition: OTF_Writer.c:21
class containing the state of a process trace at a given
Definition: State.h:254
Deals with all data type related issues.