PRACE Course: HPC Code Optimisation Workshop 2020
Learning Goals
Through a sequence of simple, guided examples of code modernization, the attendees will develop awareness on features of multi and many-core architecture which are crucial for writing modern, portable and efficient applications.
A special focus will be dedicated to scalar and vector optimizations for the latest Intel® Xeon® Scalable processor, code-named Skylake, utilized in the SuperMUC-NG machine at LRZ.
The workshop interleaves frontal and practical sessions. Here is a preliminary outline:
Day 1
- Introduction to systems and software
- Introduction: Code modernization approach
- Basic compiler optimizations
- Vectorization
- Skylake optimizations
Day 2
- Introduction to roofline model
- Intel® Advisor analysis
- Intel® Math Kernel Library (MKL) and other libraries
Day 3
- Introduction to Intel® VTune™ Amplifier
- Introduction to Intel® Application Performance Snapshot (APS)
- LIKWID ( “Like I Knew What I’m Doing.”) Performance Tools
- Q&A Session
The workshop is a PRACE training event organized by LRZ in cooperation with Intel and RRZE.
Agenda
Main Session | |
1st day morning | Intro (Volker/Gerald/Thomas) Vectorization (Igor) |
1st day afternoon (13:00-16:00) | Intel Compiler (Igor) |
2nd day morning (10:00-12:00) | Roofline Model and Advisor (Fabio) |
2nd day afternoon (13:00-16:00) | MKL & libraries (Gennady) |
3rd day morning (10:00-12:00) | VTune / APS (Michael) |
3rd day afternoon (13:00-16:00) | LikWid (Carla, Thomas) |
3rd day Q&A | All |
Presenters
- Fabio Baruffa (Intel)
- Gennady Fedorov (Intel)
- Mathias Gerald (LRZ)
- Thomas Gruber (RRZE)
- Carla Guillen (LRZ)
- Michael Steyer (Intel)
- Igor Vorobtsov (Intel)
Assistants
- Momme Allalen (LRZ)
- Volker Weinberg (LRZ)
Slides and Exercises
Day 1
- Introduction
- RRZE Cluster Meggie
- 1_Architecture and Code Modernization.pdf
- 2_Basic Compiler Optimizations.pdf
- 3_Vectorization.pdf
- 4_AVX512 and SKX optimizations.pdf
- Vectorization_Lab.pdf (Exercises)
Interesting external links:
Day 2 Morning Session
- 5_Roofline.pdf
- 6_Advisor-Demo.pdf
- For the demo part, you can download the samples from here:
git clone git@github.com:fbaru-dev/hpc-workshop.git
and we are going to use nbody-sim code
Interesting external links:
- https://software.intel.com/content/www/us/en/develop/articles/analyzing-intel-mpi-applications-using-intel-advisor.html
- https://software.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top/mpi-workloads/analyzing-mpi-workloads.html
Day 2 Afternoon Session
- MKL_Introduction&tips.pdf
- Intel_MKL_BLAS.pdf
- Intel_MKL_FFT.pdf
- Intel_MKL_RNG.pdf
- SparseBLAS_MKL.pdf
- exercises.zip
Interesting external links:
Day 3 Morning Session
Day 3 Afternoon Session
- code-optimisation-likwid-intro-v2.pdf
- LIKWID Performance Tools.pdf
- LIKWID Performance Tools HandsOn.pdf
- code-optimisation-wrapup-2020-v1.pdf
PRACE Survey
- Please fill out the PRACE online survey under https://tinyurl.com/cow-survey
- This helps us and PRACE to
- increase the quality of the courses,
- design the future training programme at LRZ and in Europe according to your needs and wishes,
- get future funding for training events,
- shape the future system architecture at LRZ.
Accounts
- Each user gets an own account: m85q00XX during registration on the first day of the workshop.
- $HOME with 10GB capacity (NFS)
- Contact the registration desk during the registration via private Zoom chat:
- Thomas Gruber
- Gerald Mathias
- Carla Guillen
- Please prepare your passport ID number or identification card ID number
- The accounts will be valid until 11 June 2020, 23:59 CEST
Recommended Access Tools
- Please use your own laptop or PC with X11 support and an ssh client installed for the hands-on sessions.
Under Windows
- We recommend to install the comfortable tool MobaXterm (https://mobaxterm.mobatek.net/download-home-edition.html) which also includes an X11 client.
- Alternatively install and run the Xming X11 Server for Windows: https://sourceforge.net/projects/xming/ and then install and run the terminal software putty: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
- Under macOS
- Install X11 support for macOS XQuartz: https://www.xquartz.org/
- Under Linux
- ssh and X11 support comes with all distributions
- For GUI applications we recommend the NoMachine Enterprise Client, available for Windows, Linux and macOS. It can be downloaded for free from https://www.nomachine.com/download-enterprise#NoMachine-Enterprise-Client. See https://www.nomachine.com/getting-started-with-nomachine and https://www.anleitungen.rrze.fau.de/hpc/dialogserver/ for further details how to connect.
System
- Exercises will be done on the RRZE Meggie cluster, see: https://www.anleitungen.rrze.fau.de/hpc/meggie-cluster/
- 728 compute nodes
- 2x Intel Xeon E5-2630 v4 @ 2.2GHz (10 cores per socket + SMT)
- 64 GB RAM
- Intel OmniPath interconnect: ≈ 100GBit/s bi-directional
- Lustre-based parallel filesystem: ≈ 1 PB capacity
- Batch system: Slurm
- Vendor: Megware
- Connect to dialog server: ssh m85q00XX@cshpc.rrze.fau.de
- Connect to frontends of meggie: ssh meggie
- Select the following options to use NoMachine NX with TDE (see: NoMachine-Howto-v2.pdf on how to use the (German) Windows NoMachine Version in detail)
- Protocol: SSH
- Host: cshpc.rrze.fau.de
- Port: 22
- Authentication: by Password
- Proxy: None
- User name: m85q00XX
- Password: (you will get your password during registration on Monday)
- Create new user-defined session
- Include the following command to be run: starttde
- This will start a TDE Desktop for you
- Further information is available under https://www.anleitungen.rrze.fau.de/hpc/dialogserver/
Information on ZOOM
- ZOOM help center has great resources with help articles and videos for getting started: https://support.zoom.us/hc/en-us
- This “Getting Started” page is a great resource: https://support.zoom.us/hc/en-us/categories/200101697
- This FAQ has tons of useful info: https://support.zoom.us/hc/en-us/articles/206175806-Frequently-Asked-Questions
- We strongly encourage you to read some of the basic info relevant to your operating system:
● Getting Started on Windows and Mac: https://support.zoom.us/hc/en-us/articles/201362033-Getting-Started-on-Windows-and-Mac
● Getting Started On Chrome OS: https://support.zoom.us/hc/en-us/articles/213298746-Getting-Started-On-Chrome-OS - You may log in via the app or a browser. We recommend downloading the app for the best experience. It may take several minutes to download, so if you are using Zoom for the first time, please download the app prior to the event, https://zoom.us/download , or join the meeting early.
- You may sign up for a free account at zoom.us/signup . Or, you may join a meeting as a guest without a Zoom account.
Information on further HPC courses
- by LRZ: http://www.lrz.de/services/compute/courses/
- by HLRS: https://www.hlrs.de/training/ including new ONLINE courses!
- by the Gauss Centre of Supercomputing (GCS): http://www.gauss-centre.eu/training
- by German Centres (collected by the Gauß-Allianz): https://hpc-calendar.gauss-allianz.de/
- by the Partnership for Advanced Computing in Europe (PRACE): http://www.training.prace-ri.eu/