Annotations for Productivity and Performance Portability

TitleAnnotations for Productivity and Performance Portability
Publication TypeBook
Year of Publication2007
AuthorsNorris, B, Hartono, A, Gropp, WD
Series TitlePetascale computing: algorithms and applications
Other NumbersANL/MCS-P1392-0107

In many scientific applications, significant time is spent in tuning codes for a particular high-performance architecture. Multiple approaches to such tuning exist, ranging from the relatively nonintrusive (e.g., by using compiler options) to extensive code modifications that attempt to exploit specific architecture features. In most cases, the more intrusive code tuning is not easily reversible and thus can result in inferior performance on a different architecture or, in the worst case, in wholly nonportable code. Readability is also greatly reduced in such highly optimized codes, resulting in lowered productivity during code maintenance. We introduce an extensible annotation system that aims to improve both performance and productivity by enabling software developers to insert annotations into their source code that trigger a number of low-level performance optimizations on a specified code fragment.