8 June 2021
1.30pm - 4.30pm

This workshop provides an in-depth analysis of the factors which affect the performance of compute-intensive applications. The concepts will be demonstrated with hands-on examples.

Speaker: Nick Wilson (Fujitsu)

1. Introduction and brief summary of topics from Optimisation Techniques Part I
2. Further information on the hardware architecture
a) Sockets, Cores, Caches and NUMA
b) InfiniBand network
3. Arithmetic intensity and the roofline model
4. Process and thread affinity
5. Advanced compiler options
a) Requirements for vectorizable loops
b) Architecture-specific optimisation
c) Precision and reproducibility
d) Options for correctness checking and debugging
6. MPI Optimisation
a) Gathering communication statistics
b) Improving MPI communication

1. A valid user account on NSCC system, ASPIRE1
2. Laptop for use in hands-on sessions
3. Familiarity with topics covered by Introductory Class (connecting to system, editing files in Linux and submitting jobs)
4. Familiarity with topics covered by Optimisation Techniques I

After this course a user should have a good understanding of the factors which limit the performance of compute-intensive applications and knowledge of the techniques which can be used to improve that performance.