# High Performance Computing Class This repo contains the exercises and the tutorials used for Unimore's HPC class ## Contacts - **Prof. Andrea Marongiu** <[andrea.marongiu@unimore.it](mailto:andrea.marongiu@unimore.it)> - **Prof. Alessandro Capotondi** <[alessandro.capotondi@unimore.it](mailto:alessandro.capotondi@unimore.it)> - **Gianluca Brilli** <[gianluca.brilli@unimore.it](mailto:gianluca.brilli@unimore.it)> ## Contents ### OpenMP Exercises The exercises related to OpenMP programming model can be found in the folder `openmp`. Here the list of currectly available classes: - `openmp\lab1`: OpenMP basics: *parallel*, *for-loop*, *sections*, and *tasking* - `openmp\lab2`: OpenMP Advanced: *reduction*, *tasking*, *optimizations* - `openmp\lab3`: OpenMP 4.x+: *Accelerator Model (targeting: Nvidia GP-GPU)* ### CUDA Exercises - `cuda\lab1`: CUDA Basics - `cuda\lab2`: CUDA Memory Model - `cuda\lab3`: CUDA Advanced Host Management - `cuda\appendix`: CUDA Nsight Tutorial ### HLS Exercises - `hls\lab1`: HLS Basics and hardware optimizations: Pipelining, Loop Fusion, Loop Unrolling and Array Partitioning - `hls\lab2`: Tests on real development boards ### (Optional) - `challenge`: Parallelize the code with everything you learned and submit the result before *XXX*