Home » Maximizing performance in practical HPC applications – HT15

Maximizing performance in practical HPC applications

General aims of the course

The aim of the course is two-fold:
– to give a basic understanding of how to use scientific libraries and their high performance features for efficient large scale scientific computations, and
– to raise the awareness regarding modern language constructs and code organization techniques that help improve efficiency and maintainability for scientific codebases.


This course showcases techniques, libraries, and tools than can be used to leverage higher performance from modern computer architectures beyond what is easily available through scripted environments for fast prototyping (such as R, Matlab, and Python). In the course, we emphasize two aspects of using HPC platforms for large scale numerical simulations:
(i) provide experience in using available well-established software packages for large scale scientific computations
(ii) demonstrating the ease with which optimized compiled code can be integrated in high-level script-based environments. We explore using modern language facilities and libraries in C++ that make the resulting code more clear, more safe, with higher developer productivity, than what is generally associated with traditional low-level development.
We discuss debuggers, profilers, measuring performance, code analysis for detecting whether it is computation-bound or bandwidth-bound in practice; how to maximize the benefits of the compiler optimizer, regarding code style and build environment; factors that can confound performance measurements, such as dynamic frequency scaling and simultaneous multithreading.

Course Schedule

  • Week 47: Nov 16-20 Preparation, self-reading
  • Week 48: Nov 23-27 Lectures in Uppsala
  • Week 49: Nov 30-Dec 3 Project work

Detailed Schedule external


The course assumes familiarity with C, and requires scientific computing experience in C, Matlab, or Python. The main language of the course is C++. The course participants are expected to have used linear algebra computations in these environments extensively, from a practical and theoretical perspective.

Course Literature

The course will be based on material from the documentation of the libraries and on slides and notes to be distributed during the course.


  • Carl Nettelblad
  • Maya Neytcheva
  • Ali Dorostkar


Maya Neytcheva maya.neytcheva at it.uu.se


Please apply here before 5th of November