OpenMP 6.0 Released (phoronix.com)
(Thursday November 14, 2024 @10:30PM (BeauHD)
from the major-upgrades dept.)
- Reference: 0175473235
- News link: https://developers.slashdot.org/story/24/11/14/2131258/openmp-60-released
- Source link: https://www.phoronix.com/news/OpenMP-6.0-Released
Phoronix's Michael Larabel reports:
> The OpenMP Architecture Review Board [1]announced from SC24 that OpenMP 6.0 is [2]now available as a major upgrade to the OpenMP specification for multi-process programming within C / C++ / Fortran. A big emphasis on OpenMP 6.0 is making it easier for developers to embrace. OpenMP 6.0 aims to make it easier to support parallel programming in new applications, easier to adapt to new use-cases, and more fine-grained developer control.
>
> OpenMP 6.0 simplifies task programming with support for task execution by free-agent threads, allowing for recording of task graphs for efficient replay, and other improvements. OpenMP 6.0 also brings support for array syntax applications, better control over memory allocations and accessibility, easier writing of asynchronous data transfers, and other improvements for enhanced device support / offloading. There is also easier programming of loop transformations, support for induction, support for C23 / Fortran 2023 / C++23, grater user control of storage resources and memory spaces, and other improvements.
[1] https://www.openmp.org/home-news/openmp-arb-releases-openmp-6-0-for-easier-programming/
[2] https://www.phoronix.com/news/OpenMP-6.0-Released
> The OpenMP Architecture Review Board [1]announced from SC24 that OpenMP 6.0 is [2]now available as a major upgrade to the OpenMP specification for multi-process programming within C / C++ / Fortran. A big emphasis on OpenMP 6.0 is making it easier for developers to embrace. OpenMP 6.0 aims to make it easier to support parallel programming in new applications, easier to adapt to new use-cases, and more fine-grained developer control.
>
> OpenMP 6.0 simplifies task programming with support for task execution by free-agent threads, allowing for recording of task graphs for efficient replay, and other improvements. OpenMP 6.0 also brings support for array syntax applications, better control over memory allocations and accessibility, easier writing of asynchronous data transfers, and other improvements for enhanced device support / offloading. There is also easier programming of loop transformations, support for induction, support for C23 / Fortran 2023 / C++23, grater user control of storage resources and memory spaces, and other improvements.
[1] https://www.openmp.org/home-news/openmp-arb-releases-openmp-6-0-for-easier-programming/
[2] https://www.phoronix.com/news/OpenMP-6.0-Released
Does anyone use it? (Score:2)
Using #pragma for logic in C is kind of awkward, generally I find threads easier to work with.
Re: (Score:2)
It's widely used in scientific applications. Distributing a loop with many many many iterations (statically or dynamically) over many cores is way easier in OpenMP than with threads. It's really an elegant way of expressing thread parallelism without having fork and join. The tasking mechanism brings it closer to traditional fork/join but it's still much more elegant.
Re: (Score:3)
Yes! Plenty of scientific applications are written using OpenMP. I use it in production for webservers that have routes that are computationally costly. It is pretty easy to make simple parallelism go well.
Now, the GPU parts of OpenMP are a bit rough to use because the dev tool chains are fairly annoying to install and make portable.