Practical parallelization of scientific applications with OpenMP, OpenACC and MPI
Autor: | Gianluca Mittone, Marco Aldinucci, Valentina Cesare, Barbara Cantalupo, Alberto Riccardo Martinelli, Carlo Cavazzoni, Iacopo Colonnelli, Maurizio Drocco |
---|---|
Rok vydání: | 2021 |
Předmět: |
Computer Networks and Communications
Computer science Random number generation Message passing CUDA OpenMP 020206 networking & telecommunications 02 engineering and technology Parallel computing Theoretical Computer Science Domain (software engineering) Global variable Loop parallelism MPI OpenACC Stateful firewall Artificial Intelligence Hardware and Architecture 0202 electrical engineering electronic engineering information engineering Code (cryptography) 020201 artificial intelligence & image processing Aliasing (computing) Software Codebase |
Zdroj: | Journal of Parallel and Distributed Computing. 157:13-29 |
ISSN: | 0743-7315 |
DOI: | 10.1016/j.jpdc.2021.05.017 |
Popis: | 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. |
Databáze: | OpenAIRE |
Externí odkaz: |