Supporting Scientists in Re-engineering Sequential Programs to Parallel Using Model-Driven Engineering - Almorsy, Mohamed; Grundy, John (2015 IEEE/ACM 1st International Workshop on Software Engineering for High Performance Computing in Science, 2015)
Developing complex computational-intensive and data-intensive scientific applications requires effective utilization of the computational power of the available computing platforms including grids, clouds, clusters, multi-core and many-core processors, and graphical processing units (GPUs). However, scientists who need to leverage such platforms are usually not parallel or distributed programming experts. Thus, they face numerous challenges when implementing and porting their software-based experimental tools to such platforms. In this paper, we introduce a sequential-to-parallel engineering approach to help scientists in engineering their scientific applications. Our approach is based on capturing sequential program details, planned parallelization aspects, and program deployment details using a set of domain-specific visual languages (DSVLs). Then, using code generation, we generate the corresponding parallel program using necessary parallel and distributed programming models (MPI, Open CL, or Open MP). We summarize three case studies (matrix multiplication, N-Body simulation, and digital signal processing) to evaluate our approach.