Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

tau_register_context_event(3) [debian man page]

TAU_REGISTER_CONTEXT(3) 				      TAU Instrumentation API					   TAU_REGISTER_CONTEXT(3)

NAME
TAU_REGISTER_CONTEXT_EVENT - Registers a context event SYNOPSIS
C/C++: TAU_REGISTER_CONTEXT_EVENT(TauUserEvent variable, char *event_name); Fortran: TAU_REGISTER_CONTEXT_EVENT(int variable(2), character event_name(size)); DESCRIPTION
Creates a context event with name. A context event appends the names of routines executing on the callstack to the name specified by the user. Whenver a context event is triggered, the callstack is examined to determine the context of execution. Starting from the parent function where the event is triggered, TAU walks up the callstack to a depth specified by the user in the environment variable TAU_CALLPATH_DEPTH. If this environment variable is not specified, TAU uses 2 as the default depth. For e.g., if the user registers a context event with the name "memory used" and specifies 3 as the callpath depth, and if the event is triggered in two locations (in routine a, when it was called by b, when it was called by c, and in routine h, when it was called by g, when it was called by i), then, we'd see the user defined event information for "memory used: c() => b() => a()" and "memory used: i() => g() => h()". EXAMPLE
C/C++ : int f2(void) { static int count = 0; count ++; TAU_PROFILE("f2()", "(sleeps 2 sec, calls f3)", TAU_USER); TAU_REGISTER_CONTEXT_EVENT(event, "Iteration count"); /* if (count == 2) TAU_DISABLE_CONTEXT_EVENT(event); */ printf("Inside f2: sleeps 2 sec, calls f3 "); TAU_CONTEXT_EVENT(event, 232+count); sleep(2); f3(); return 0; } Fortran : subroutine foo(id) integer id integer profiler(2) / 0, 0 / integer maev(2) / 0, 0 / integer mdev(2) / 0, 0 / save profiler, maev, mdev integer :: ierr integer :: h, t, u INTEGER, ALLOCATABLE :: STORAGEARY(:) DOUBLEPRECISION edata call TAU_PROFILE_TIMER(profiler, 'FOO') call TAU_PROFILE_START(profiler) call TAU_PROFILE_SET_NODE(0) call TAU_REGISTER_CONTEXT_EVENT(maev, "STORAGEARY Alloc [cubes.f:20]") call TAU_REGISTER_CONTEXT_EVENT(mdev, "STORAGEARY Dealloc [cubes.f:37]") allocate(STORAGEARY(1:999), STAT=IERR) edata = SIZE(STORAGEARY)*sizeof(INTEGER) call TAU_CONTEXT_EVENT(maev, edata) ... deallocate(STORAGEARY) edata = SIZE(STORAGEARY)*sizeof(INTEGER) call TAU_CONTEXT_EVENT(mdev, edata) call TAU_PROFILE_STOP(profiler) end subroutine foo SEE ALSO
TAU_CONTEXT_EVENT(3), TAU_ENABLE_CONTEXT_EVENT(3), TAU_DISABLE_CONTEXT_EVENT(3), TAU_REGISTER_EVENT(3), TAU_REPORT_STATISTICS(3), TAU_REPORT_THREAD_STATISTICS(3), TAU_GET_EVENT_NAMES(3), TAU_GET_EVENT_VALS(3) 08/31/2005 TAU_REGISTER_CONTEXT(3)

Check Out this Related Man Page

TAU_PROFILE_TIMER(3)					      TAU Instrumentation API					      TAU_PROFILE_TIMER(3)

NAME
TAU_PROFILE_TIMER - Defines a static timer. SYNOPSIS
C/C++: TAU_PROFILE_TIMER(Profiler timer, char* or string& function_name, char* or string& type, TauGroup_t group); Fortran: TAU_PROFILE_TIMER(integer profiler(2), character name(size)); DESCRIPTION
C/C++ : With TAU_PROFILE_TIMER, a group of one or more statements is profiled. This macro has a timer variable as its first argument, and then strings for name and type, as described earlier. It associates the timer to the profile group specified in the last parameter. Fortran : To profile a block of Fortran code, such as a function, subroutine, loop etc., the user must first declare a profiler, which is an integer array of two elements (pointer) with the save attribute, and pass it as the first parameter to the TAU_PROFILE_TIMER subroutine. The second parameter must contain the name of the routine, which is enclosed in a single quote. TAU_PROFILE_TIMER declares the profiler that must be used to profile a block of code. The profiler is used to profile the statements using TAU_PROFILE_START and TAU_PROFILE_STOP as explained later. EXAMPLE
C/C++ : template< class T, unsigned Dim > void BareField<T,Dim>::fillGuardCells(bool reallyFill) { // profiling macros TAU_TYPE_STRING(taustr, CT(*this) + " void (bool)" ); TAU_PROFILE("BareField::fillGuardCells()", taustr, TAU_FIELD); TAU_PROFILE_TIMER(sendtimer, "fillGuardCells-send", taustr, TAU_FIELD); TAU_PROFILE_TIMER(localstimer, "fillGuardCells-locals", taustr, TAU_FIELD); ... } Fortran : subroutine bcast_inputs implicit none integer profiler(2) save profiler include 'mpinpb.h' include 'applu.incl' interger IERR call TAU_PROFILE_TIMER(profiler, 'bcast_inputs') SEE ALSO
TAU_PROFILE_TIMER_DYNAMIC(3), TAU_PROFILE_START(3), TAU_PROFILE_STOP(3) 08/31/2005 TAU_PROFILE_TIMER(3)
Man Page