13 #ifndef _VT_UNIFY_DEFS_H_
14 #define _VT_UNIFY_DEFS_H_
18 #include "vt_unify_defs_recs.h"
19 #include "vt_unify_lvector.hh"
20 #include "vt_unify_usrcom.h"
22 #include "vt_inttypes.h"
67 bool readLocal(
const uint32_t & streamId,
68 LargeVectorC<DefRec_BaseS*> & locDefs );
72 bool processLocal(
const LargeVectorC<DefRec_BaseS*> & locDefs );
96 std::set<DefRec_DefProcessGroupS> procGrps;
97 std::set<DefRec_DefSclFileS> sclFiles;
98 std::set<DefRec_DefSclS> scls;
99 std::set<DefRec_DefFileGroupS> fileGrps;
100 std::set<DefRec_DefFileS> files;
101 std::set<DefRec_DefFunctionGroupS> funcGrps;
102 std::set<DefRec_DefFunctionS> funcs;
103 std::set<DefRec_DefCollOpS> collops;
104 std::set<DefRec_DefCounterGroupS> cntrGrps;
105 std::set<DefRec_DefCounterS> cntrs;
106 std::set<DefRec_DefKeyValueS> keyVals;
114 std::set<DefRec_DefCommentS> comments;
115 std::set<DefRec_DefProcessS> procs;
117 std::map<uint32_t, DefRec_DefCounterAssignmentsS>
120 std::map<uint32_t, DefRec_DefProcessGroupAttributesS>
143 void setGroup(
const uint32_t & proc,
const uint32_t & counter,
144 const uint32_t & procGrp )
146 m_cntr2ProcGrp[std::make_pair( proc, counter )] = procGrp;
150 uint32_t getGroup(
const uint32_t & proc,
const uint32_t & counter )
const
153 std::map<std::pair<uint32_t, uint32_t>, uint32_t>::const_iterator it =
154 m_cntr2ProcGrp.find( std::make_pair( proc, counter ) );
158 if( it != m_cntr2ProcGrp.end() )
169 void addGroupToStream(
const uint32_t & streamid,
const uint32_t & procGrp )
171 if( m_streamId2ProcGrps[streamid].insert( procGrp ).second )
175 bool added_once = m_procGrps.insert( procGrp ).second;
176 assert( added_once );
181 const std::set<uint32_t> * getGroupsOfStream(
182 const uint32_t & streamid )
const
185 std::map<uint32_t, std::set<uint32_t> >::const_iterator it =
186 m_streamId2ProcGrps.find( streamid );
191 if( it != m_streamId2ProcGrps.end() )
192 return &(it->second);
203 std::set<uint32_t> m_procGrps;
206 std::map<uint32_t, std::set<uint32_t> > m_streamId2ProcGrps;
209 std::map<std::pair<uint32_t, uint32_t>, uint32_t> m_cntr2ProcGrp;
223 : m_defs( _defs ), m_minStartTimeEpoch( (uint64_t)-1 ),
224 m_maxStopTimeEpoch( 0 ), m_seqOrderIdx( 0 ) {}
243 uint64_t m_minStartTimeEpoch;
244 uint64_t m_maxStopTimeEpoch;
247 uint32_t m_seqOrderIdx;
270 for( uint32_t i = 0; i < m_uniqueMembers.size(); i++ )
271 delete m_uniqueMembers[i];
293 static const uint32_t DEFLATED_MEMBERS_TAG = (uint32_t)-1;
300 bool operator()(
const uint32_t & a,
const uint32_t & b )
const
302 if( ( a & VT_TRACEID_BITMASK ) == ( b & VT_TRACEID_BITMASK ) )
305 return ( a & VT_TRACEID_BITMASK ) < ( b & VT_TRACEID_BITMASK );
313 struct UniqueMembersS
315 UniqueMembersS( uint32_t _id, uint32_t _nmembers,
316 const uint32_t * _members )
317 : id( _id ), nmembers( _nmembers ), members( 0 )
319 assert( nmembers > 0 );
321 members =
new uint32_t[nmembers];
324 memcpy( members, _members, nmembers *
sizeof( uint32_t ) );
350 static const char * NAME() {
return "MPI_COMM_WORLD"; }
353 uint32_t global_token;
363 static const char * NAME() {
return "MPI_COMM_SELF"; }
376 static const char * COMM_NAME() {
return "MPI Communicator"; }
377 static const char * GROUP_NAME() {
return "MPI Group"; }
382 uint32_t group_seqno;
385 std::map<std::pair<uint32_t, uint32_t>, uint32_t> counts;
388 std::map<std::pair<uint32_t, uint32_t>, uint32_t> global_tokens;
404 CommS() : global_token( 0 ) {}
406 uint32_t global_token;
407 std::set<uint32_t, ProcCmpS> members;
412 void addCommMember(
const uint32_t & comm,
const uint32_t & member )
414 std::map<uint32_t, CommS*>::iterator it =
415 globTk2Comm.find( comm );
416 assert( it != globTk2Comm.end() );
418 it->second->members.insert( member );
422 std::map<std::string, CommS*> name2Comm;
425 std::map<uint32_t, CommS*> globTk2Comm;
435 static const char * ALL_NAME() {
return "All"; }
442 GroupS() : global_token( 0 ) {}
444 uint32_t global_token;
445 std::set<uint32_t, ProcCmpS> members;
450 std::map<std::string, GroupS> name2Group;
455 std::multimap<uint32_t, UniqueMembersS*> m_hash2UniqueMembers;
458 std::vector<UniqueMembersS*> m_uniqueMembers;
468 #endif // _VT_UNIFY_DEFS_H_
Definition: vt_unify_defs_recs.h:165
Definition: vt_unify_defs.h:370
Definition: vt_unify_defs.h:345
Definition: vt_unify_defs.h:131
Definition: vt_unify_defs.h:402
Definition: vt_unify_defs.h:440
Definition: vt_unify_defs_recs.h:212
Definition: vt_unify_defs_recs.h:291
Definition: vt_unify_defs_recs.h:188
Definition: vt_unify_defs.h:255
VampirTrace http://www.tu-dresden.de/zih/vampirtrace.
Definition: vt_unify_defs.h:33
Definition: vt_unify_defs.h:360