Random challenge
=================
This hackMD document collects information and guided unwinding of the hands-on proposed here: https://gitlab.hpc.cineca.it/training/epicure-gpu-hackathon
CUDA exercises
-------------
The exercises are collected at [this](https://gitlab.hpc.cineca.it/training/epicure-gpu-hackathon/-/tree/main/day1/openacc/exercises?ref_type=heads) link
1. Vector Addition
2. Electrostatic Particle-In-Cell code
3. Martix Multiplication
4. Matrix Transpose
OpenACC Exercises
-----------------
The exercises are collected at [this](https://gitlab.hpc.cineca.it/training/epicure-gpu-hackathon/-/tree/main/day1/openacc/exercises?ref_type=heads) link
1. [Daxpy offload](https://hackmd.io/GsD-A0kNR9qgiCPD9i86pQ)
2. [Explicit data management](https://hackmd.io/8OM9zb44Qlu9CJ3_FTtQ5g)
3. [Optimise matmul](https://hackmd.io/ME7OsNuPSWO6ZnmB0t2bww)
5. [Interoperability](https://hackmd.io/fcnPfpQ2Tsu8JcricKGkXA)
Challenges
---------
The following list includes challenges on the different topics presented during the lectures. The highlighted ones will be solved during day 3 and day 4 @ Epicure hackathon.
- [**CFD single-gpu**](https://hackmd.io/7Fjt6yAdR72ky__FHirNlQ) : OpenACC, CUDA/Fortran, single-gpu offload
- [**Asynchronous mandelbrot**](https://hackmd.io/ZIeCWyypQTy1n4XAQrCA6g) : OpenACC, C/Fortran, advanced
- [Single-node multi-GPU mandelbrot](https://hackmd.io/iJ67tor-T3WT3UZPFWLsMA): OpenACC, Fortran, advanced
- [multi-GPU Jacoby with MPI](): CUDA, C, advanced
- [CDF multi-GPU with MPI](https://hackmd.io/WL0NVNM4THOn20ADO7TyqA): OpenACC, C/Fortran, advanced
Preferred software stack on Leonardo
------------------------------------
The suggested software stack is based on
```
module load nvhpc/24.3
module load cuda/12.3
module load openmpi/4.1.6--nvhpc--24.3
```
You can also try hpcx as MPI implementation (suggested for Allreduce operations)
```
module load /leonardo/prod/spack/5.2/install/0.21/linux-rhel8-icelake/gcc-8.5.0/nvhpc-24.3-v63z4inohb4ywjeggzhlhiuvuoejr2le/modulefiles/nvhpc-hpcx-cuda11/24.3
```
:exclamation: To look for an installation, you can use the following command
``modmap -m <installation-name>``
Notebook
-----
Notes for *Random challenge* teams
- [Team ](https://hackmd.io/8AU7QtejT72T4qpAnTSwfg)
- [Team ]()
- [Team ]()
- [Team ]()
- [Team ]()
- [Team ]()
Speedup chart :trophy:
-------------
Who is the [winner](https://hackmd.io/FnRKlhWtRzWD2pKR_elBwA)?