InstRO: A framework for creating compiler based instrumentation tools

The InstRO Instrumentation Framework

InstRO is a framework for creating compiler based instrumentation tools.

Motivation

All performance tools for HPC systems require sampling or instrumentation to gather data, with instrumentation required to ensure guaranteed observance of events. However, current instrumentation approaches lack in flexibility and overhead control, and probe placement is either manual and tedious, or compiler-based and extremely limited.

Hence, we developed InstRO, an instrumentation infrastructure that abstracts from the compiler and leverages either the ROSE or the Clang compiler technology and its associated analysis and transformation toolset.

InstRO is designed as an infrastructure for the rapid development of instrumentation tools, but also to provide reusability and extensibility.

To this end, InstRO provides separate selection and instrumentation phases, thus realizing a separation of concerns and composability of different instrumentation features.

InstRO Update

InstRO is available for download on github. Please follow this link and follow the available README for instructions.

Contact Information

If you have questions on InstRO, like to contribute or for other related requests, please feel free to contact me directly: Christian(dot)Iwainsky(at)sc(dot)tu(hyphon)darmstadt(dot)de