Title of article :
In search of a program generator to implement generic transformations for high-performance computing
Author/Authors :
Albert Cohen، نويسنده , , Sébastien Donadio، نويسنده , , Maria-Jesus Garzaran، نويسنده , , Christoph Herrmann، نويسنده , , Oleg Kiselyov، نويسنده , , David Padua، نويسنده ,
Issue Information :
دوهفته نامه با شماره پیاپی سال 2006
Pages :
22
From page :
25
To page :
46
Abstract :
The quality of compiler-optimized code for high-performance applications is far behind what optimization and domain experts can achieve by hand. Although it may seem surprising at first glance, the performance gap has been widening over time, due to the tremendous complexity increase in microprocessor and memory architectures, and to the rising level of abstraction of popular programming languages and styles. This paper explores in-between solutions, neither fully automatic nor fully manual ways to adapt a computationally intensive application to the target architecture. By mimicking complex sequences of transformations useful to optimize real codes, we show that generative programming is a practical means to implement architecture-aware optimizations for high-performance applications. This work explores the promises of generative programming languages and techniques for the high-performance computing expert. We show that complex, architecture-specific optimizations can be implemented in a type-safe, purely generative framework. Peak performance is achievable through the careful combination of a high-level, multi-stage evaluation language–MetaOCaml–with low-level code generation techniques. Nevertheless, our results also show that generative approaches for high-performance computing do not come without technical caveats and implementation barriers concerning productivity and reuse. We describe these difficulties and identify ways to hide or overcome them, from abstract syntaxes to heterogeneous generators of code generators, combining high-level and type-safe multi-stage programming with a back-end generator of imperative code.
Keywords :
Loop transformations , Adaptive libraries , Multi-stage programming , Application-specific program generators
Journal title :
Science of Computer Programming
Serial Year :
2006
Journal title :
Science of Computer Programming
Record number :
1079876
Link To Document :
بازگشت