Back to Search Start Over

Practical parallelization of scientific applications with OpenMP, OpenACC and MPI

Authors :
Gianluca Mittone
Marco Aldinucci
Valentina Cesare
Barbara Cantalupo
Alberto Riccardo Martinelli
Carlo Cavazzoni
Iacopo Colonnelli
Maurizio Drocco
Source :
Journal of Parallel and Distributed Computing. 157:13-29
Publication Year :
2021
Publisher :
Elsevier BV, 2021.

Abstract

This work aims at distilling a systematic methodology to modernize existing sequential scientific codes with a little re-designing effort, turning an old codebase into modern code, i.e., parallel and robust code. We propose a semi-automatic methodology to parallelize scientific applications designed with a purely sequential programming mindset, possibly using global variables, aliasing, random number generators, and stateful functions. We demonstrate that the same methodology works for the parallelization in the shared memory model (via OpenMP), message passing model (via MPI), and General Purpose Computing on GPU model (via OpenACC). The method is demonstrated parallelizing four real-world sequential codes in the domain of physics and material science. The methodology itself has been distilled in collaboration with MSc students of the Parallel Computing course at the University of Torino, that applied it for the first time to the project works that they presented for the final exam of the course. Every year the course hosts some special lectures from industry representatives, who present how they use parallel computing and offer codes to be parallelized.

Details

ISSN :
07437315
Volume :
157
Database :
OpenAIRE
Journal :
Journal of Parallel and Distributed Computing
Accession number :
edsair.doi.dedup.....dcc3853d8b12f9ba616ddd30c5f8ad66