TAU_REGISTER_THREAD(3)

Name
TAU_REGISTER_THREAD - Register a thread with the profiling system

Synopsis

C/C++:

TAU_REGISTER_THREAD(void);

Fortran:

TAU_REGISTER_THREAD(void);

Description

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.

Example

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()

Caveat

PDT based tau_instrumentor does not insert TAU_REGISTER_THREAD calls, they must be inserted manually