학술논문

The Ongoing Evolution of OpenMP
Document Type
Periodical
Source
Proceedings of the IEEE Proc. IEEE Proceedings of the IEEE. 106(11):2004-2019 Nov, 2018
Subject
General Topics for Engineers
Engineering Profession
Aerospace
Bioengineering
Components, Circuits, Devices and Systems
Computing and Processing
Engineered Materials, Dielectrics and Plasmas
Fields, Waves and Electromagnetics
Geoscience
Nuclear Engineering
Robotics and Control Systems
Signal Processing and Analysis
Transportation
Power, Energy and Industry Applications
Communication, Networking and Broadcast Technologies
Photonics and Electrooptics
Parallel processing
C++ languages
High performance computing
Information processing
Parallel programming
Complexity theory
Program processors
Memory management
Accelerator architectures
computer architecture
computer science
computers and information processing
memory management
multicore processing
multithreading
parallel architectures
parallel processing
parallel programming
programming
Language
ISSN
0018-9219
1558-2256
Abstract
This paper presents an overview of the past, present and future of the OpenMP application programming interface (API). While the API originally specified a small set of directives that guided shared memory fork-join parallelization of loops and program sections, OpenMP now provides a richer set of directives that capture a wide range of parallelization strategies that are not strictly limited to shared memory. As we look toward the future of OpenMP, we immediately see further evolution of the support for that range of parallelization strategies and the addition of direct support for debugging and performance analysis tools. Looking beyond the next major release of the specification of the OpenMP API, we expect the specification eventually to include support for more parallelization strategies and to embrace closer integration into its Fortran, C and, in particular, C++ base languages, which will likely require the API to adopt additional programming abstractions.