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
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\n");
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

