This course combines an overview of how to solve the design issues you will face when writing large-scale parallel programs, and a hands-on workshop on using the MPI parallel communication library to implement these solutions. It is suitable for those who have some knowledge of parallel programming, but would like to improve their skills and effectiveness. We strongly suggest you attend the previous day's 'Introduction to HPC & Parallel Programming Basics', unless you already have experience of using MPI and its core functions. See the course description for more information.