Problems Solved

  • Inconsistent tool support from vendors
  • Incomplete program stack coverage
  • Diverse and separated tool chains

Approach

  1. 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.

      approach1.png

  2. 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.

      approach2.png

Results

results4.png results1.png results2.png results3.png results5.png