Register a thread with the profiling system
C/C++: TAU_REGISTER_THREAD(void);
Fortran: TAU_REGISTER_THREAD(void);
To register a thread with the profiling system, invoke the TAU_REGISTER_THREAD macro in the run method of the thread prior to executing any other TAU macro. This sets up thread identifiers that are later used by the instrumentation system.
C/C++ :
void * threaded_func(void *data) { TAU_REGISTER_THREAD(); { /**** NOTE WE START ANOTHER BLOCK IN THREAD */ TAU_PROFILE_TIMER(tautimer, "threaded_func()", "int ()", TAU_DEFAULT); TAU_PROFILE_START(tautimer); work(); /* work done by this thread */ TAU_PROFILE_STOP(tautimer); } return NULL; }
Fortran :
call TAU_REGISTER_THREAD()
PDT based tau_instrumentor does not insert TAU_REGISTER_THREAD calls, they must be inserted manually