# Parallel programming resources

**URL:** <https://fortran-lang.discourse.group/t/parallel-programming-resources/2063>\
**Category:** Uncategorized\
**Created:** [October 13, 2021, 12:27pm UTC](https://fortran-lang.discourse.group/t/parallel-programming-resources/2063 "2021-10-13T12:27:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [October 13, 2021, 12:27pm UTC](https://fortran-lang.discourse.group/t/parallel-programming-resources/2063/1 "2021-10-13T12:27:37Z")

</div>

> [@fortran4r](#):
>
> I don’t use the std but want to improve my Fortran skills by reading the std codes. I am currently learning Fortran parallel computing, are there any learning materials that comprehensively introduce using OpenMP, OpenACC, and Coarray with Fortran? Maybe a tutorial on parallel computing can be added to the [fortran-lang.org](http://fortran-lang.org) website.

Branching from the [old thread](https://fortran-lang.discourse.group/t/first-release-of-the-fortran-standard-library/2001/40) to match the topic.

At the [Fortran Wiki Tutorials page](http://fortranwiki.org/fortran/show/Tutorials), you can look at “Tutorials on Fortran in general” where Fortran 2008 or 2018 is mentioned and at the “Tutorials on Coarray Fortran” and “Scientific and Parallel Computing” sections. Parallel programming tutorials on GitHub are listed [here](https://github.com/Beliavsky/Fortran-code-on-GitHub#parallel-programming).

---

<div class="post-metadata">

**Author:** ![JohnCampbell](https://avatars.discourse-cdn.com/v4/letter/j/5daacb/32.png) [@JohnCampbell](https://fortran-lang.discourse.group/u/JohnCampbell)\
**Post date:** [October 14, 2021, 6:25am UTC](https://fortran-lang.discourse.group/t/parallel-programming-resources/2063/2 "2021-10-14T06:25:31Z")

</div>

There are some useful resources via [openmp.org](http://openmp.org).  
After 10 years of learning to use OpenMP, the best advice I have is to include the equivalent compiler options when compiling:  
-fopenmp -fimplicit-none -fstack-arrays.  
Explicitly managing SHARED vs PRIVATE arrays between threads is essential when starting out, and -fimplicit-none assists with that.  
The way that the stack and heap are used can also effect performance and -fstack-arrays can clarify this management.  
Unfortunately many introductory tutorials show multi-threaded use where it will not be used efficiently, as inevitably OpenMP promotes many threads on ever increasing cores, all sharing the same memory resource, where common processors have limited memory transfer bandwidth.

---

<div class="post-metadata">

**Author:** ![CRquantum](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/crquantum/32/730_2.png) [@CRquantum](https://fortran-lang.discourse.group/u/CRquantum)\
**Post date:** [October 14, 2021, 6:46am UTC](https://fortran-lang.discourse.group/t/parallel-programming-resources/2063/3 "2021-10-14T06:46:25Z")

</div>

Nice nice!  
Eh, is there some material or sample code that teaches how to do Fortran openMP on GPU?  
I have a good GPU but never have any chance to really use it other than running video games or use madVR to process video play 🤣
