InstRO is a framework for creating compiler based instrumentation tools.
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 is available for download on github. Please follow InstRO @ github and follow the available README for instructions.
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