- Inconsistent tool support from vendors
- Incomplete program stack coverage
- Diverse and separated tool chains
- Parse language header files and wrap runtime libraries.
- Transparently intercept low-level runtime layer routines.
- Record time spent in runtime, message sizes, allocation sizes, etc.
- Parse source code to intercept and measure significant events
- upc_forall, upc_barrier, upc_notify, upc_fence, etc.
- shmem_int_put, _my_pe, shmalloc, etc.