Technology for empirical performance evaluation of parallel programs is driven by the increasing complexity of high perfonnance computing environments and programming methodologies. This complexity-arising from the use of high-level parallel languages, domain-specific numerical frameworks, heterogeneous execution models and platforms, multi-level software optimization strategies, and multiple compilation models widens the semantic gap between a programmer's understanding of his/her code and it's runtime behavior. To keep pace, perfonnance tools must provide for the effective instrumentation of complex software and the correlation of runtime performance data with user-level semantics.
To address these issues, this dissertation contributes:
This dissertation research aims to influence the way performance observation tools and compilers for high performance computers are designed and implemented.