Research Article
A Taxonomy of Methods and Models Used in Program Transformation and Parallelization
@INPROCEEDINGS{10.1007/978-3-030-20615-4_18, author={Sesha Kalyur and G. Nagaraja}, title={A Taxonomy of Methods and Models Used in Program Transformation and Parallelization}, proceedings={Ubiquitous Communications and Network Computing. Second EAI International Conference, Bangalore, India, February 8--10, 2019, Proceedings}, proceedings_a={UBICNET}, year={2019}, month={5}, keywords={Taxonomy Method Model Optimization Transformation Parallelization}, doi={10.1007/978-3-030-20615-4_18} }
- Sesha Kalyur
G. Nagaraja
Year: 2019
A Taxonomy of Methods and Models Used in Program Transformation and Parallelization
UBICNET
Springer
DOI: 10.1007/978-3-030-20615-4_18
Abstract
Developing Application and System Software in a High level programming language, has greatly improved programmer productivity, by reducing the total time and effort spent. The higher level abstractions provided by these languages, enable users to seamlessly translate ideas into design and structure data and code effectively. However these structures have to be efficiently translated, to generate code that can optimally exploit the target architecture. The translation pass normally generates code, that is sub optimal from an execution perspective. Subsequent passes are needed to clean up generated code, that is optimal or near optimal in running time. Generated code can be optimized by Transformation, which involves changing or removing inefficient code. Parallelization is another optimization technique, that involves finding threads of execution, which can be run concurrently on multiple processors to improve the running time. The topic of code optimization and parallelization is quite vast and replete with complex problems and interesting solutions. Hence it becomes necessary to classify the various available techniques, to reduce the complexity and to get a grasp of the subject domain. However our search for good survey papers in the subject area, did not yield interesting outcomes. This work is an attempt to fill this void and help scholars in the field, by providing a comprehensive survey and taxonomy of the various optimization and parallelization methods and the models used to generate solutions.