This special issue of the IEEE Proceedings offers an overview of ongoing efforts to facilitate the development of high performance libraries and applications for engineers and scientists.
The fast evolution, increasing complexity, and increasing diversity of today's computing platforms poses a major challenge to developers of high-performance applications: software development has become an interdisciplinary task that requires the programmer to have specialized knowledge in algorithms, programming languages, and computer architectures. Furthermore, tuning even simple programs tends to be expensive because it requires an intense and sustained effort---which can stretch over a period of weeks or months, if not years---from the technically best expert programmers. But the manual tuning or adaptation of software implementations to a particular platform also leads to a vicious cycle: the code developer invests tremendous energy tinkering with the implementation to exploit in the best way the computing resources available, simply to realize that the hardware infrastructure has become obsolete in the interim as an effect of the relentless technological advances reflecting Moore’s Law. This has led to large repositories of applications that were once well adapted to the existing computers of the time, but continue to persist because the cost involved in updating them to the current technology is simply too large to warrant the effort. To break successfully this cycle, it is necessary to rethink the process of designing and optimizing software in order to deliver to the user the full power of optimized implementations on the available hardware resources. This special issue of the IEEE Proceedings presents an overview of recent research on new methodologies for the design, development, and optimization of high-performance software libraries and applications.
The special issue is organized around 13 invited papers, grouped into four main areas:
- Program generators,
- Parallel library design,
- Domain-specific compiler optimizations, and
- Dynamic (runtime) software adaptation.
Area 1: Program generators
- The Design and Implementation of FFTW3, Matteo Frigo, Steven G. Johnson (MIT)
- SPIRAL: Code Generation for DSP Transforms, Markus Püschel, José Moura, Jeremy Johnson, David Padua, Manuela Veloso, Bryan Singer, Jianxin Xiong, Franz Franchetti, Aca Gacic, Yevgen Voronenko, Kang Chen, Robert W. Johnson, and Nick Rizzolo
- Synthesis of High-Performance Parallel Programs for a Class of ab initio Quantum Chemistry Models, Gerald Baumgartner, Alexander Auer, David E. Bernholdt, Alina Bibireata, Venkatesh Choppella, Daniel Cociorva, Xiaoyang Gao, Robert Harrison, So Hirata, Sriram Krishanmoorthy, Sandhya Krishnan, Chi-Chung Lam, Qingda Lu, Marcel Nooijen, Russell Pitzer, J. Ramanujam, P. Sadayappan and Alexander Sibiryakov (all Ohio State)
- Self-Adapting Linear Algebra Algorithms and Software, Jim Demmel (USC Berkeley), Jack Dongarra (U. Tennessee), Victor Eijkhout (U. Tennessee), Erika Fuentes (SUN microsystems), Antoine Petitet (SUN microsystems), Rich Vuduc (USC Berkeley), R. Clint Whaley (Florida State Univ.), Kathy Yelick (USC Berkeley)
Area 2: Parallel Library Design
- Parallel VSIPL++: An Open Standard Software Library for High-Performance Parallel Signal Processing, James Lebak, Jeremy Kepner, Henry Hoffmann, and Edward Rutledge (all MIT Lincoln Lab)
- Parallel Matlab: Doing it Right, Ron Choy and Alan Edelman (both MIT)
Area 3: Domain Specific Compiler Optimizations
- Broadway: A Compiler for Exploiting the Domain-Specific Semantics of Software Libraries, Calvin Lin (U. Texas) and Samuel Z. Guyer (U. Texas)
- Is Search Really Necessary to Generate High-Performance BLAS?, Kamen Yotov, Xiaoming Li, Gang Ren, Maria Garzaran (UIUC), David Padua (UIUC), Keshav Pingali (Cornell), Paul Stodghill
- Telescoping Languages, A System for Automatic Generation of Domain Languages, Ken Kennedy, Bradley Broom, Arun Chauhan, Rob Fowler, John Garvin, Charles Koelbel, Cheryl McCosh, and John Mellor-Crummey (all Rice University)
- Efficient Utilization of SIMD Extensions, Franz Franchetti, Stefan Kral, Juergen Lorenz, and Christoph W. Ueberhuber (all University of Technology, Vienna)
Area 4: Dynamic (Runtime) Software Adaptation
- Intelligent Monitoring for Adaptation in Grid Applications, Celso L. Mendes (UIUC) and Daniel A. Reed (Univ. North Carolina)
- Design and Engineering of a Dynamic Program Optimizer, Evelyn Duesterwald (IBM Research)
- A Survey of Adaptive Optimization in Virtual Machines, Matthew Arnold, Stephen J. Fink, David Grove, Michael Hind, Peter F. Sweeney (all IBM Research)