Introduction to High Performance Computing

Europe/Stockholm
KTH Lecture Hall E3

KTH Lecture Hall E3

KTH main campus Valhallavägen 79
Description

The PDC Center for High Performance Computing and the KTH School of Computer Science and Communication (CSC) welcome you to our summer school introductory course on high-performance computing. This course is part of the Swedish e-Science Education.

Interested students and researchers (with academic or industrial backgrounds) from all over the world are invited to apply to attend the course, which will be held at the KTH main campus in Stockholm during late August. (Please note that for KTH Masters students, the summer school is available as course number DN2258.)

This course provides the skills needed to utilize high-performance computing (HPC) resources, and includes an introduction to a range of important topics, such as:

  • HPC programming languages, libraries and tools,
  • modern computer architectures,
  • parallel algorithms, and
  • optimizing serial and parallel programs.
Case studies in various scientific disciplines will be used to help illustrate these topics. The course consists of both lectures and guided hands-on lab sessions. Participants who successfully complete the course (including the associated programming project) will be awarded 7.5 ECTS (European Credit Transfer and Accumulation System) points.

The course is suitable for scientists and graduate students who are interested in high-performance computing. Applicants must be able to communicate in English, and have previous programming experience.

The PDC Summer School receives considerable funding from SeSE, the Swedish e-Science Education. The two leading e-Science centres in Sweden, SeRC (www.e-science.se) and eSSENCE (http://essenceofescience.se) have taken the initiative to establish a graduate school, SeSE, to fund, develop and offer basic training in fields where the use of e-Science is emerging and where education can have an immense impact on the research, but also to provide advanced training for students in fields that are already computer-intensive. The school is open to all graduate students in Sweden, and is built upon the previous successful schools NGSSC and KCSE. SeSE will be a meeting place for graduate students using e-Science tools and techniques.

2015 will be the 20th year that the course has been held – participants will become part of the long tradition of the PDC Summer School, which you can read about in the course pages for all the previous years.

Please note that there are a limited number of places available in the summer school, so be sure to register early! Course registration opens on March 16, and closes on May 31, 2015.

document
    • 08:30 09:15
      Registration - room E3 at KTH Main campus 45m
    • 09:15 10:15
      Welcome to PDC and the Summer School - E3 1h E3 (E3 - KTH Main Campus)

      E3

      E3 - KTH Main Campus

      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 10:15 10:30
      Coffee Break 15m
    • 10:30 12:15
      High-Performance Computer Architecture - E3 1h 45m
      Speaker: Erik Hagersten (Uppsala University)
    • 12:15 14:00
      Picnic - KTH garden close to E3 room 1h 45m
    • 14:00 15:00
      High-Performance Computer Architecture 1h
      Speaker: Erik Hagersten (Uppsala University)
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      High-Performance Computer Architecture 1h 45m
      Speaker: Erik Hagersten (Uppsala University)
    • 09:15 10:00
      Concepts and Algorithms for Scientific Computing 45m
      In this talk we will present of what Scientific Computing is and what the challenges are. In particular, we will discuss the "simulation pipeline". The present and future of Scientific Computing is massively parallel. Consequences for modelling and examples for algorithm contruction for scalable computing are given.
      Speaker: Michael Hanke (KTH)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:15
      Concepts and Algorithms for Scientific Computing 2h
      Speaker: Michael Hanke (KTH)
    • 12:15 13:30
      Individual Lunch 1h 15m
    • 13:30 14:30
      Introduction to PDC's Environment 1h
      Slides
    • 14:30 14:45
      Coffee Break 15m
    • 14:45 16:45
      Lab: Introduction to PDC's Environment 2h
    • 14:45 16:45
      PDC Machine Room Tour 2h
    • 09:15 10:00
      Shared memory programming, OpenMP - E3 Room 45m
      Two common ways of speeding up programs are to use processes or threads executing in parallel. The second week of the Summer School presents process-based parallel computing using MPI. In this lecture parallelization using threads will be discussed. Threads can be managed in different ways, e.g. using a low level library, like the POSIX threads library. The lecture deals with OpenMP, which is a more convenient way to use threads. OpenMP is a specification for a set of compiler directives, library routines, and environment variables that can be used to specify shared memory parallelism in Fortran and C/C++ programs. The threaded program can be executed on a shared memory computer (e.g. a multi- core processor). Typically, the iterations of a time consuming loop are shared among a team of threads, each thread working on part of the iterations. The loop is parallelized by writing a directive in the code and a compiler or a pre- processor will generate parallel code. Using short code examples, the lecture covers the most important OpenMP-constructs, how to use them and how not to use them. A few more realistic examples are presented as well.
      Speaker: Christoph Kessler (LiU)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      Shared memory programming, OpenMP - E3 room 1h 45m
      Speaker: Christoph Kessler (LiU)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 14:00
      Shared memory programming, OpenMP - E2 room 45m
      Speaker: Christoph Kessler (LiU)
    • 14:15 15:00
      Lab: Programming Exercises on OpenMP 45m
      Speaker: Stefano Markidis (PDC - KTH)
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: Programming Exercises on OpenMP 1h 45m
      Speaker: Stefano Markidis (PDC - KTH)
    • 09:15 10:00
      Shared memory programming, OpenMP 45m
      Speaker: Christoph Kessler (LiU)
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      Shared memory programming, OpenMP 1h 45m
      Speaker: Christoph Kessler (LiU)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: OpenMP Advanced Project 1h 45m
      Speaker: Stefano Markidis (PDC - KTH)
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: OpenMP Advanced Project 1h 45m
      Speaker: Stefano Markidis (PDC - KTH)
    • 09:15 10:00
      Wrap up: GPU Programming 45m
      Speaker: Michael Schliephake (KTH)
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      MPI: Introduction, Basic Concepts, Point-to-Point Communication 1h 45m
      Speaker: Erwin Laure (PDC-HPC)
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 14:00
      MPI - Point-to-Point Communication 45m
      Speaker: Erwin Laure (PDC-HPC)
    • 14:00 15:00
      Lab: MPI Part 1 1h
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: MPI Part 1 1h 45m
    • 09:15 10:00
      MPI - Collective Communication 45m
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      MPI - Intermediate MPI 1h 45m
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: MPI Part 2 1h 45m
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: MPI Part 2 1h 45m
    • 15:15 17:00
      Project Work 1h 45m
    • 09:15 10:00
      Performance Engineering 45m
      In this set of lectures, we will first go through how to analyse your application's performance on an HPC platform and identify potential places for improvement. Then we will discuss some usual tips & tricks for improving parallel scalability of an MPI application, followed by some considerations for speeding up your code on x86 CPUs. At the end of the day we will do practicals on code optimization.
      Speaker: Pekka Manninen (CSC)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 12:00
      Performance Engineering 1h 45m
      Speaker: Pekka Manninen
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: Performance Engineering 1h 45m
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: Performance Engineering 1h 45m
    • 08:30 09:00
      Wrap up: Performance Engineering 30m
      Speaker: Pekka Manninen
    • 09:15 10:00
      MPI: Advanced Concepts 45m
      Speaker: Erwin Laure (PDC-HPC)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 11:00
      MPI: Advanced Concepts 45m
      Speaker: Erwin Laure (PDC-HPC)
    • 11:15 12:00
      Parallel Visualization 45m
      We discuss the issues with parallelization of visualization and post-processing algorithms. Starting from a theoretical understanding of local and global features, we analyze different algorithms regarding their suitability for running in parallel.
      Speaker: Tino Weinkauf (KTH)
      Slides
    • 12:00 13:00
      Individual Lunch 1h
    • 13:15 15:00
      Lab: MPI Part 3 1h 45m
    • 15:00 15:15
      Coffee Break 15m
    • 15:15 17:00
      Lab: MPI Part 3 1h 45m
    • 15:15 17:00
      Project Work 1h 45m
    • 18:00 21:00
      Dinner (http://www.jakthornet.eu - Fiskartorpsvägen 20) 3h

      http://www.jakthornet.eu

    • 09:15 10:00
      Future Programming Languages 45m
      Speaker: Stefano Markidis (PDC - KTH)
      Slides
    • 10:00 10:15
      Coffee Break 15m
    • 10:15 11:00
      Future Programming Languages 45m
      Speaker: Stefano Markidis (PDC - KTH)
    • 11:15 12:00
      The Big Data Challenge at Spotify 45m
    • 12:00 13:00
      Individual Lunch 1h
    • 13:00 17:00
      Open Lab and Project Work 4h