The HPCLEAP Workshop Series
The HPCLEAP EJD will provide four training workshops for the students enrolled on the programme. Successful completion of any one of the programmes will be worth 5 ECTS accreditation units. The assessment and topics covered by the four workshops is described below.
Assessment
Students will be assessed by a method common to all HPCLEAP workshops. Over the course of each School, students will be required to develop software to solve a small number of substantial numerical problems. At the end of the three weeks, students will be required to submit their software, along with a report detailing the design, algorithm, testing methodology, results and performance of their projects. They will be expected then to give a 15 minute presentation to the examiners and their classmates, summarising their findings.
I. School on numerical analysis and algorithms towards exascale: CoS1
Venue: Wuppertal
Dates: 23rd September  13th October 2015
Credit: 5 ECTS
Scientistsincharge: Andreas Frommer and Francesco Knechtli
Description:
The first School in the series is part of course CoS1 and will present the mathematical foundations and algorithms needed for numerical simulation, with an emphasis on the concepts and issues needed to approach the exascale. The core techniques for the research interests of HPCLEAP will be reviewed in four series of lectures, covering Monte Carlo methods, the underlying mathematical ideas behind efficient methods to find numerical solutions to molecular dynamics, iterative techniques to solve large, sparse linear systems and advanced topics such as numerical solutions to partial differential equations and the fast Fourier transform.
Topic  Lecture hours  Laboratory hours  
Introduction to Markov Chain Monte Carlo  6  3  
Numerical methods for molecular dynamics  6  4  
Iterative solvers for linear systems  6  4  
Advanced topics in numerical analysis  8  4  
26  15 
Components:
• Introduction to Markov Chain Monte Carlo: The mathematical framework for importance sampling Monte Carlo estimations of the highdimensional integration problems that arise in many physical simulations will be described. The focus will be on practical methods that enable students to start their own numerical investigations of simple examples such as the Ising or Potts in laboratory sessions. Topics covered will include the Metropolis algorithm and Gibbs sampler.
• Numerical methods for molecular dynamics: Modern, efficient Markov chain Monte Carlo methods rely on concepts borrowed from molecular dynamics. These ideas will be described in detail. The mathematical framework of symplectic integrators will be presented and students will be encouraged to develop simulation software to illustrate the ideas they learn. Examples covered will include numerical integration of the equations of motion for Newtonian gravity or the LennardJones potential.
• Iterative solvers for linear systems: At the core of many computations is the need to solve large, sparse linear systems very efficiently. The techniques to solve these problems will be reviewed, introducing the students to Krylov subspace methods and preconditioning. Example problems will be presented and student will develop their understanding in computational laboratory sessions.
• Advanced topics in numerical analysis: To solve problems on massively parallel computers requires advanced algorithms. The School will conclude with a review of communicationavoiding algorithms and asynchronous iterations. The example will be to develop software to find a numerical solution to Poisson’s equation with different boundary conditions.
II. School on HPC architectures and largescale numerical computation: CoS2
Venue: Jülich
Dates: 11th  29th Jan 2016
Credit: 5 ECTS
Scientistincharge: Dirk Pleiter
Description:
The second School is part of course CoS2 and will present students with the essentials of computer architectures and skills for using HPC systems to solve largescale numerical problems. The computer architecture lectures will focus on understanding how code performance is linked to the design of an HPC system. Next, the students will learn about performance modelling, analysis and engineering. Training will be via lectures on parallel algorithms and programming and will be complemented by exercises. More advanced lectures in this School will cover GPU programming, energy efficient computing, I/O and portable data formats, debugging and visualisation.
Topic  Lecture hours  Laboratory hours 
Parallel architectures  6  4 
Parallel programming  8  8 
Performance analysis, modelling and optimisation  4  
GPGPU programming (I)  2  2 
Parallel algorithms (I)  3  
Energy efficient HPC  2  
Visualisation  1  1 
26  15 
Components:

Parallel architectures: The features of modern HPC hardware will be described, focussing on the interactions between software performance and the system and discussing the best algorithms to make use of particular hardware constraints.

Parallel programming: The techniques required for programming multicore computers will be presented. The different programming models (Shared memory and MPI) will be described in detail. Issues arising with data I/O from parallel systems will be presented along with a discussion of portable data formats.

Performance analysis, modelling and optimisation: Methods to analyse the performance of largescale numerical software on parallel computers will be reviewed. Models describing the scaling features of the software will be reviewed and compared to real performance data from multicore systems. Bestpractise techniques for developing software in C/C++ will be reviewed.

Parallel algorithms (I): The techniques for implementing commonly used numerical computations on parallel systems will be presented.

GPGPU programming(I): Modern graphics cards can be harnessed for efficient numerical computations. The programming models needed to exploit these systems effectively will be introduced.

Energy efficient HPC: As the costs of largescale numerical simulation become increasingly dominated by the energy usage of these systems, the students will be introduced to new approaches to hardware design that optimise performance against power consumption.

Visualisation: A short introduction to methods for presenting output from largescale simulations in visual formats will be given.
III. School on numerical analysis and algorithms at the exascale: Classical Nbody methods for complex systems on massively parallel architectures: CoS1
Venue: RWTH Aachen
Dates: 5th  22nd April 2016
Credit: 5 ECTS
Scientistincharge: Paolo Carloni
Description:
This school is the second part of CoS1 and will provide an introduction to Nbody methods such as molecular dynamics and Monte Carlo and will discuss different parallelisation strategies suited to these approaches. The lectures will focus on methods appropriate for both short and longrange interactions and conclude with a review of spectral methods. Students will be required to implement a simple molecular dynamics code and test different parallelisation algorithms as well as analysis tools to understand the output of their simulations. The course will conclude with a discussion of hybrid methodologies applied to biological systems of pharmacological relevance.
Hybrid techniques for biological systems42
Topic  Lecture hours  Laboratory hours  
Introduction to statistical physics  5  3  
Statistical methods and sampling  5  3  
Modelling complex systems with shortrange interactions  4  2  
Modelling complex systems with longrange interactions  4  3  
Spectral methods for complex systems  4  2  
26  15 
Components:

Introduction to statistical physics: a review of the essentials of statistical physics will be presented, with applications to biological systems.

Statistical methods and sampling: the essentials of the Monte Carlo method and the statistical techniques for understanding the output of these simulation will be described.

Modelling shortrange interactions: Efficient simulation of the molecular dynamics induced by shortranged interactions will be discussed. Software techniques to maintain and update lists of nearby particles will be presented allowing students to develop code to model examples of these systems.

Modelling longrange interactions: Techniques for studying the molecular dynamics of N body systems with longranged interactions will be presented. The focus will be on resummation techniques based on the Ewald sum.

Spectral methods for complex systems: Techniques for solving differential equations efficiently by analysing the system’s fourier modes will be introducted. Students will develop software to study examples in laboratory sessions

Hybrid techniques for biological systems: The School will conclude by describing techniqes for solving biological systems where a broad range of dynamical timescales are important. Effectively addressing these problems requires a hybrid approach, dealing with each of the distinct dynamics separately. The implementation of these ideas will be presented in this component.
IV. School on HPC architectures and numerical methods: CoS2
Venue: Trinity College Dublin
Dates: 13th June  1st July 2016
Credit: 5 ECTS
Scientistincharge: Mike Peardon
Description:
This is the second part of course CoS2 and will develop the ideas presented in the first part of CoS2 in more detail. The focus will be on three “case studies” of largescale problems and existing code bases that will be review in some detail. These code bases will be chosen from the research areas of the project.
Case study 3 (multigrid)42
Topic  Lecture hours  Laboratory hours 
MPI programming (II)  3  1 
GPGPU programming (II)  2  2 
Parallel algorithms (II)  4  2 
Debugging, profiling and optimising parallel software (II)  3  2 
Data analysis  2  1 
Case study 1 (solving large linear systems)  4  2 
Case study 2 (molecular dynamics)  4  2 
26  15 
Components:

MPI programming: More detailed features of the MPI library will be explored and students will be encouraged to develop their expertise further by writing example codes. The emphasis will be on optimising performance by use of the appropriate technique.

GPGPU programming: Advanced features of software systems that exploit GPUs for numerical computing will be presented. The emphasis will be on the techniques that optimise data through put on the large numbers of lightweight compute cores found on a modern GPU.

Parallelalgorithms: The mathematical foundations for efficient software will be developed. Distinct approached that expose data parallelism will be presented. The interaction between software performance and hardware will be explored through examples.

Debugging, profiling and optimising parallel software (II): The methods for testing, debugging and profiling parallel software will be further developed. Students will be encouraged to explore efficient software development methods through practical problemsolving sessions.

Data analysis: Largescale numerical simulations often generate very large data sets, that require careful analysis. This module will present advanced techniques for statistical analysis and inference from data, ideas in data visualisation and feature extraction will be explored.

Case studies: The school will conclude by presenting in detail three examples of stateoftheart research applications of the software techniques presented in the previous lectures. These case studies will be drawn from topics of relevance to the students, including solving linear systems, molecular dynamics and multigrid for linear systems.