Back to Search
Start Over
Practical parallelization of scientific applications with OpenMP, OpenACC and MPI
- 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.
- Subjects :
- 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
Subjects
Details
- ISSN :
- 07437315
- Volume :
- 157
- Database :
- OpenAIRE
- Journal :
- Journal of Parallel and Distributed Computing
- Accession number :
- edsair.doi.dedup.....dcc3853d8b12f9ba616ddd30c5f8ad66