A high-level framework for parallelizing legacy applications for multiple platforms

  • Authors:
  • Ritu Arora;Ejenio Capetillo;Purushotham Bangalore;Marjan Mernik

  • Affiliations:
  • Texas Advanced Computing Center, Austin, TX and University of Texas at Austin, Austin, TX;University of Texas at Austin, Austin, TX;UAB, Birmingham, Alabama;University of Maribor, Maribor, Slovenia

  • Venue:
  • Proceedings of the Conference on Extreme Science and Engineering Discovery Environment: Gateway to Discovery
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

The tremendous growth and diversification in the area of computer architectures has contributed towards an upsurge in the number of parallel programing paradigms, languages, and environments. However, it is often difficult for domain-experts to develop expertise in multiple programming paradigms and languages in order to write performance-oriented parallel applications. Several active research projects aim at reducing the burden on programmers by raising the level of abstraction of parallel programming. However, a majority of such research projects either entail manual invasive reengineering of existing code to insert new directives for parallelization or force conformance to specific interfaces. Some systems require that the programmers rewrite their entire application in a new parallel programing language or a domain-specific language. Moreover, only a few research projects are addressing the need of a single framework for generating parallel applications for multiple hardware platforms or doing hybrid programming. This paper presents a high-level framework for parallelizing existing serial applications for multiple target platforms. The framework, currently in its prototype stage, can semi-automatically generate parallel applications for systems with both distributed-memory architectures and shared-memory architectures through MPI, OpenMP, and hybrid programming. For all the test cases considered so far, the performance of the generated parallel applications is comparable to that of the manually written parallel versions of the applications. Our approach enhances the productivity of the end-users as they are not required to learn any low-level parallel programming, shortens the parallel application development cycle for multiple platforms, and preserves the existing version of serial applications.