सूचना प्रौद्योगिकी और सॉफ्टवेयर इंजीनियरिंग जर्नल

सूचना प्रौद्योगिकी और सॉफ्टवेयर इंजीनियरिंग जर्नल
खुला एक्सेस

आईएसएसएन: 2165- 7866


Transformations for High-Performance Computing

Jonice Oliveira

In the last three decades a large number of compiler transformations for optimizing programs have been implemented. Most optimizations for uniprocessors reduce the number of instructions executed by the program using transformations based on the analysis of scalar quantities and data-flow techniques. In contrast, optimizations for high-performance superscalar, vector, and parallel processors maximize parallelism and memory locality with transformations that rely on tracking the properties of arrays using loop dependence analysis. This survey is a comprehensive overview of the important high-level program restructuring techniques for imperative languages such as C and Fortran. Transformations for both sequential and various types of parallel architectures are covered in depth. We describe the purpose of each transformation, explain how to determine if it is legal, and give an example of its application.