Placeholder for workshop on Optimisation Techniques.
Material is not publicly available, please get in touch if you are interested.
Eventual goal is to redo relevant material in open format.
Sections:
- Strategies and motivations for performance optimisation
- Performance characteristics of common application types
- Concepts related to parallelism and application scaling
- Vectorization, Threading, Message Passing
- Strong scaling and weak scaling
- Hardware overview
- CPU and memory hierarchy
- GPGPU
- Compilers & Libraries
- Available compilers and performance libraries
- Common compiler options
- Introduction to parallel filesystems
- Overview of GPFS and Lustre
- Relative performance characteristics
- Tuning of MPI applications
- Further information on the hardware architecture
- Sockets, Cores, Caches and NUMA
- InfiniBand network
- Arithmetic intensity and the roofline model
- Process and thread affinity
- Advanced compiler options
- Requirements for vectorizable loops
- Architecture-specific optimisation
- Precision and reproducibility
- Options for correctness checking and debugging
- MPI Optimisation
- Gathering communication statistics
- Improving MPI communication

