# Introduction to GPU programming with OpenMP This note contains the up-to-date information during the course ## Important links - [Zoom](https://cscfi.zoom.us/j/66122436088) - [Course github](https://github.com/csc-training/openmp-offload) - [Lecture slides (full handout)](https://kannu.csc.fi/s/MbnraE62YSdt6ad) - This note: https://hackmd.io/@jussienko/openmp-offload ## Useful material - [OpenMP standards](https://www.openmp.org/specifications/) - [NVIDIA HPC SDK Documentation](https://docs.nvidia.com/hpc-sdk/compilers/index.html) ## Exercises for current session Controlling data movement ## Quiz ## Questions / comments Feel free to contribute https://hackmd.io/@jussienko/openmp-offload ## Agenda | Tuesday | | | -------- | -------- | |14:15 - 15:00 | [Introduction to accelerated HPC](https://kannu.csc.fi/s/LRG4WpwXN3oj5jZ)| |15:15 - 16:00 | [Crash course on parallel programming](https://kannu.csc.fi/s/LWJZ3PfTa6HTfWB)| |16:00 - 16:15 | break | |16:15 - 17:00 | [Introduction to OpenMP offloading](https://kannu.csc.fi/s/5gqeiKHAAYcPCEe)| |17:00 - 18:00 | Dinner| |18:00 - 21:00 | Exercises| | Wednesday | | | -------- | -------- | |14:00 - 14:45 | [Controlling data movement](https://kannu.csc.fi/s/7naw7H6CNsRjqKd)| |14:45 - 15:30 | Exercises| |15:30 - 16:15 | [Persistent data](https://kannu.csc.fi/s/niDqafyjdNyWdDi) and [device functions](https://kannu.csc.fi/s/ozyDN5Tb8mNGog6)| |16:15 - 17:00 | Exercises| |17:00 - 18:00 | Dinner| |18:00 - 21:00 | Optional exercises| | Thursday | | | -------- | -------- | |09:00 - 09:45 | [Interoperability](https://kannu.csc.fi/s/pHq7Db4EfEs4S9o) with libraries and [asynchronous operations](https://kannu.csc.fi/s/mSGZeyfS9nf2mPx)| |09:45 - 10:30 | Exercises| |10:30 - 11:15 | [Using multiple GPUs](https://kannu.csc.fi/s/iBMXK5b7TRrdAzC)| |11:15 - 12:00 | Exercises| | Friday | | | -------- | -------- | |09:00 - 11:00 | Optional exercise session| ## Introductory quiz 1. My choice of programming language A. Fortran B. plain C C. C++ A. xxx B. xx C. xxxxxxx 2. My previous experience with MPI A. I use MPI regularly B. I know the basics C. No experience A. x B. xxxxxxx C. xxx 3. My previous experience with OpenMP (with CPUs) A. I use OpenMP regularly B. I know the basics C. No experience A. xxxx B. xxxxx C. xxx 4. My motivation for learning OpenMP offloading A. I am developing an HPC application that I want to port to GPUs B. I am using a GPU application and want to understand it better C. General interest in HPC programming A. xxxxxxxxx B. xx C. x 5. My choice of editor :-) A. Emacs B. ~~Vi~~Vim C. Something else A. xxx B. xx C. xxxxxx ## Free discussion Feel free to add any general remarks, tips, tricks, comments etc. here. For questions during the exercise sessions use, however, RocketChat as that will monitored more frequently