ABSTRACT

Boyana Norris Mathematics and Computer Science Division, Argonne National Laboratory, 9700 S. Cass Ave., Argonne, IL 60439, norris@mcs.anl.gov

Albert Hartono Department of Computer Science and Engineering, Ohio State University, 2015 Neil Ave., Columbus, OH 43210, hartonoa@cse.ohio-state.edu

William D. Gropp Mathematics and Computer Science Division, Argonne National Laboratory, 9700 S. Cass Ave., Argonne, IL 60439, gropp@mcs.anl.gov

In many scientific applications, a significant amount of time is spent in tuning codes for a particular high-performance architecture. There are multiple approaches to such tuning, 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 non-portable code. Readability is also greatly reduced in such highly optimized codes, resulting in lowered productivity during code maintenance.