Exploiting large computing clusters for solving challenging scientific and engineering problems is a fascinating discipline, bridging the gap between algorithms and advancements in multi-core CPU and GPU technologies. In this two semester coursework on High Performance Computing for Science and Engineering important concepts have been tackled, such as high-throughput computing, Monte Carlo Methods for Uncertainty Quantification to GPU acceleration. Main technologies used: C++, OpenMP, MPI, UPCXX, CUDA.
One of the highlights was running and benchmarking optimized CUDA code on a GPU node of Piz-Daint, in 2016 the world’s third fastest super computer.
The developed code and with the assignments are made available blow.