Courses & Tutorials

Overview Courses GCS

Course Title Location Date(s)
Advanced C++ with Focus on Software Engineering Garching Nov 22–24, 2016
Introduction to the Programming and Usage of the Supercomputer Resources at Jülich Jülich Nov 24-25, 2016
Elmer FEM Course Garching Nov 28–29, 2016
Advanced Parallel Programming with MPI and OpenMP Jülich Nov 28-30, 2016
Advanced C++, Focus on Software Engineering Stuttgart Nov 28–Dec 1, 2016
Node-Level Performance Engineering (PATC course) Garching Dec 01-02, 2016
Fortran for Scientific Computing (PATC course) Stuttgart Dec 12-16, 2016
Introduction to hybrid programming in HPC (PATC course) Garching Jan 12, 2017
Introduction to parallel programming with MPI and OpenMP Jülich Jan 31–Feb 3, 2017
Intel MIC Programming Workshop (PATC course) Ostrava Feb 2017
Introduction to Computational Fluid Dynamics Siegen Feb 13–17, 2017
Parallel Programming (MPI, OpenMP) and Tools Dresden Feb 20–24, 2017
Programming with Fortran Garching Mar 1–3, 2017
Parallel Programming of High Performance Systems Garching Mar 6–10, 2017
OpenMP and OpenACC GPU Directives for Parallel Accelerated Supercomputers (PATC course) Stuttgart Mar 7–8, 2017
Parallel I/O and Portable Data Formats (PATC course) Jülich Mar 13–15, 2017
Parallelization with MPI and OpenMP Frankfurt a. M. Mar 13–15, 2017
Advanced C++, Focus on Software Engineering Stuttgart Mar 14–17, 2017
Vectorisation and Portable Programming Using OpenCL Jülich Mar 16–17, 2017
Fortran for Scientific Computing (PATC course) Stuttgart Mar 20–24, 2017
Iterative Linear Solvers and Parallelization Stuttgart Mar 27–31, 2017
Advanced Topics in High Performance Computing (PATC course) Garching Apr 3–6, 2017
CFD with OpenFOAM® Stuttgart Apr 3–7, 2017
GPU Programming with CUDA (PATC course) Jülich Apr 24–26, 2017
Node-Level Performance Engineering (PATC course) Stuttgart Apr 27–28, 2017
Cray XC40 Workshop on Optimization at Scale Stuttgart May 2–5, 2017
Introduction to the Programming and Usage of the Supercomputer Resources at Jülich Jülich May 22–23, 2017
Cluster Workshop Stuttgart May 29–30, 2017
Scientific Visualization Stuttgart May 31–Jun 1, 2017
Intel MIC Programming Workshop (PATC course) Garching Jun 2017
Introduction to hybrid programming in HPC Stuttgart Jun 12, 2017
High-performance Computing with Python (PATC course) Jülich Jun 12–13, 2017
Introduction to UPC and Co–Array Fortran (PATC course) Stuttgart Jun 29–30, 2017
Efficient Parallel Programming with GASPI (PATC course) Stuttgart Jul 3–4, 2017
Introduction to Cluster Filesystems Stuttgart Jul 6, 2017
NEC SX-ACE – Vectorization and Optimization Stuttgart Jul 11–12, 2017
Guest Student Programme at JSC Jülich Aug 6–Oct 13, 2017

2016

Advanced C++ with Focus on Software Engineering
Date & Location
Nov 22–24, 2016 | LRZ, Garching near Munich
Contents

This advanced C++ training is a course on object- oriented (OO) software design with the C++ programming language. The focus of the training are the essential OO and C++ software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. The course will not address special areas and applications of C++, such as for instance Template Meta Programming (TMP), or the quirks and curiosities of the C++ language. It rather teaches guidelines to develop mature, robust, and maintainable C++ code. The following topics will be covered:

  • Essential object-oriented design principles
  • Concepts and the STL
  • Class design
  • Robust code
  • Proper use of dynamic Inheritance
  • Dependency-breaking techniques
  • Non-Intrusive design
  • C++11/14 update
Prerequisites
Solid base on C++ and at least one year of experience with the language is needed. Participants have to bring their own laptop for the hands on sessions.
Webpage for further information

http://www.lrz.de/services/compute/courses/

Introduction to the Programming and Usage of the Supercomputer Resources at Jülich
Date & Location
November 24-25, 2016 JSC | Forschungszentrum Jülich see also May 22–25, 2017 in Jülich
Contents
Forschungszentrum Jülich provides two major high-performance computing resources to scientific user groups from throughout Germany and Europe. The aim of this course is to give new users of the supercomputing resources an introductory overview of the systems and their usage, and to help them in making efficient use of their allocated resources.
Prerequisites
Basic knowledge of Unix, knowledge of either C, C++ or Fortran Webpage for further information:
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/sc-nov

Elmer FEM Course
Date & Location
Nov 28–29, 2016 | LRZ, Garching near Munich
Contents
The Elmer FEM course is intended for persons with none or some prior knowledge of Elmer but some background on the solution of partial differential equations. The course will cover the use of Elmer through its graphical user interface, ElmerGUI. Also command-line operation of Elmer will be explained. The course will also include the basics of parallel computing and writing user subroutines with Elmer. After the course the participants should be able to solve basic modelling problems themselves, modify them manually, and have basic knowledge on the general features of Elmer software.
Webpage for further information

http://www.lrz.de/services/compute/courses/

Advanced Parallel Programming with MPI and OpenMP
Date & Location
Nov 28–30, 2016 | JSC, Forschungszentrum Jülich
Contents

The focus is on advanced programming with MPI and OpenMP. The course addresses participants who have already some experience with C/C++ or Fortran and MPI and OpenMP, the most popular programming models in High Performance Computing (HPC). It will teach newest methods in MPI-3.0/3.1 and OpenMP-4.5, which were developed for the efficient use of current HPC hardware. Topics with MPI are the group and communicator concept, process topologies, derived data types, the new MPI-3.0 Fortran language binding, one-sided communication and the new MPI-3.0 shared memory programming model within MPI. Topics with OpenMP are the OpenMP-4.0 extensions, as the vectorization directives, thread affinity and OpenMP places. The course also contains performance and best practice considerations, e.g., with hybrid MPI+OpenMP parallelization. The course ends with a section presenting tools for parallel programming. The course is given in German. This course is organized by JSC in collaboration with HLRS. Presented by Dr. Rolf Rabenseifner, HLRS.

Prerequisites
Knowledge in Unix, in either C, C++ or Fortran; familiar with the principles of MPI, i.e., point-to-point message passing, datatypes, nonblocking communication, collective communication; familiar with OpenMP 3.0
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/mpi

Advanced C++, Focus on Software Engineering
Date & Location
Nov 28–Dec 01, 2016 | HLRS, Stuttgart (see also Nov 22–24, 2016 in Garching (3 days) and Mar 14–17, 2017 in Stuttgart (4 days))
Contents

This advanced C++ training is a course on object- oriented (OO) software design with the C++ programming language. The focus of the training are the essential OO and C++ software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. Additionally, the course gives insight into kernel development with C++. The course will not address special areas and applications of C++, such as for instance Template Meta Programming (TMP), or the quirks and curiosities of the C++ language. It rather teaches guidelines to develop mature, robust, maintainable, and efficient C++ code.

After this course, participants will:

  • have a detailed understanding of the essential OO design principles
  • have gained knowledge about fundamental C++ programming concepts and idioms
  • be able to properly design classes and class interfaces
  • know about the importance of exception safe programming
  • have gained insight into kernel development with C++
  • avoid the usual pitfalls in the context of inheritance
  • comprehend the advantages of non-intrusive design
  • understand the virtue of clean code
Prerequisites
Basic UNIX/Linux knowledge (login with secure shell, shell commands, simple scripts, editor vi or emacs), solid base on C++ and at least one year of experience with the language
Webpage for further information

http://www.hlrs.de/training/2016-11-28-cpp2/

Node-Level Performance Engineering (PATC course)
Date & Location
Dec 1–2, 2016 | LRZ, Garching near Munich (see also Apr 27–28, 2017 in Stuttgart)
Contents

This course teaches performance engineering ap proaches on the compute node level. “Performance engineering” as we define it is more than employing tools to identify hotspots and bottlenecks. It is about developing a thorough understanding of the interactions between software and hardware. This process must start at the core, socket, and node level, where the code gets executed that does the actual computational work. Once the architectural requirements of a code are understood and correlated with performance measurements, the potential benefit of optimizations can often be predicted. We introduce a “holistic” node-level performance engineering strategy, apply it to different algorithms from computational science, and also show how an awareness of the performance features of an application may lead to notable reductions in power consumption.

Prerequisites
Participants must have basic knowledge in programming with Fortran or C.
Webpage for further information

http://www.lrz.de/services/compute/courses/

Fortran for Scientific Computing
Date & Location
December 12-16, 2016 HLRS, Stuttgart
Contents

This course is dedicated for scientists and students to learn (sequential) programming scientific applications with Fortran. The course teaches newest Fortran standards. Hands-on sessions will allow users to immediately test and understand the language constructs.

Webpage

http://www.hlrs.de/training/2016/FTN2

Introduction to hybrid programming in HPC (PATC course)
Date & Location
Jan 12, 2017 | LRZ, Garching near Munich (see also Jun 12, 2017 in Stuttgart)
Contents

Most HPC systems are clusters of shared memory nodes. Such SMP nodes can be small multi-core CPUs up to large many-core CPUs. This course analyses the strengths and weaknesses of several parallel programming models on clusters of SMP nodes. Multi-socket-multi-core systems in highly parallel environments are given special consideration. MPI-3.0 has introduced a new shared memory programming interface, which can be combined with inter-node MPI communication. It can be used for direct neighbour accesses similar to OpenMP or for direct halo copies, and enables new hybrid programming models. These models are compared with various hybrid MPI+OpenMP approaches and pure MPI. Numerous case studies and micro-benchmarks demonstrate the performance-related aspects of hybrid programming.

Prerequisites
Participants must have basic knowledge in programming with MPI and OpenMP.
Webpage for further information

http://www.lrz.de/services/compute/courses/

Introduction to parallel programming with MPI and OpenMP
Date & Location
Jan 31–Feb 3, 2017 | JSC, Forschungszentrum Jülich
Contents

An introduction to the parallel programming of supercomputers is given. The focus is on the usage of the Message Passing Interface (MPI), the most often used programming model for systems with distributed memory. Furthermore, OpenMP will be presented, which is often used on shared-memory architectures.

Prerequisites
Knowledge of Fortran, C or C++
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/mpi-intro

Intel MIC Programming Workshop (PATC-Course)
Date & Location
Feb 2017, 2 days | IT4Innovations, Ostrava (see also Jun 2017, in Garching (3 days))
Contents

These workshops discuss Intel’s Many Integrated Core (MIC) architecture. They cover various programming and optimisation techniques for Intel Xeon Phi based systems. While the course taking place at IT4Innovations in February will concentrate on the Knights Corner based system Salomon - currently the largest Intel Xeon Phi based system in Europe - the course at LRZ in June will focus on Intel’s new Knights Landing architecture.

The workshops are developed within PRACE and the joint German-Czech Republic project CzeBaCCA.

Webpage for further information

http://www.lrz.de/services/compute/courses/

Introduction to Computational Fluid Dynamics
Date & Location
Feb 13–17, 2017 | University of Siegen
Contents

The course deals with current numerical methods for Computational Fluid Dynamics in the context of high performance computing. An emphasis is placed on explicit methods for compressible flows, but classical numerical methods for incompressible Na vier- Stokes equations are also covered. A brief introduction to turbulence modelling is also provided by the course. Additional topics are high order numerical methods for the solution of systems of partial differential equations. The last day is dedicated to parallelization.

Hands-on sessions will manifest the contents of the lectures. In most of these sessions, the application Framework APES will be used. They cover grid generation using Seeder, visualization with ParaView and the usage of the parallel CFD solver Ateles on the local HPC system.

The course is organized by HLRS, IAG (University of Stuttgart) and STS, ZIMT (University of Siegen).

Prerequisites
Basics of partial differential equations and physics, programming experience in Fortran or C
Webpage for further information

http://www.hlrs.de/training/2017-02-13-cfd-siegen/

Parallel Programming (MPI, OpenMP) and Tools
Date & Location
Feb 20–24, 2017 | ZIH, TU Dresden
Contents

The focus is on programming models MPI and OpenMP. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the basic constructs of the Message Passing Interface (MPI) and the shared memory directives of OpenMP. The last part is dedicated to tools. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves. It is organized by ZIH in collaboration with HLRS. (Content Level: 70% for beginners, 30% advanced)

Prerequisites
Unix / C or Fortran
Webpage for further information

https://www.hlrs.de/training/2017-02-20-zih/

Programming with Fortran
Date & Location
Mar 1–3, 2017 | LRZ, Garching near Munich
Contents

This course is targeted at scientists with little or no knowledge of the Fortran programming language, but need it for participation in projects using a Fortran code base, for development of their own codes, and for getting acquainted with additional tools like debugger and syntax checker as well as handling of compilers and libraries. The language is for the most part treated at the level of the Fortran 95 standard; features from Fortran 2003 are limited to improvements on the elementary level. Advanced Fortran features like object-oriented programming or co arays will be covered in a follow-on course in autumn.

To consolidate the lecture material, each day’s app roximately 4 hours of lecture are complemented by 3 hours of hands-on sessions.

Prerequisites
Course participants should have basic UNIX/Linux knowledge.
Webpage for further information

http://www.lrz.de/services/compute/courses/

Parallel Programming of High Performance Systems
Date & Location
Mar 6–10, 2017 | LRZ, Garching near Munich
Contents

This course, a collaboration of Erlangen Regional Computing Centre (RRZE) and LRZ, is targeted at students and scientists with interest in programming modern HPC hardware, specifically the large scale parallel computing systems available in Jülich, Stuttgart and Munich. Each day is comprised of approximately 4 hours of lectures and 3 hours of hands-on sessions.

Prerequisites
Participants must have good knowledge of at least one of the standard HPC languages: Fortran 95, C or C++.
Webpage for further information

http://www.lrz.de/services/compute/courses/

OpenMP and OpenACC GPU Directives for Parallel Accelerated Supercomputers (PATC course)
Date & Location
Mar 7–8, 2017 | HLRS, Stuttgart
Contents

This workshop will cover the directive-based pro gramming model based on OpenMP v4 and OpenACC v2 whose multi-vendor support allows users to portably develop applications for parallel accelerated supercomputers. The workshop will also demonstrate how to use the Cray Programming Environment tools to identify application bottlenecks, facilitate the porting, provide accelerated performance feedback and to tune the ported applications. The Cray scientific libraries for accelerators will be presented, and interoperability of the directives approach with these and with CUDA will be demonstrated. Through application case studies and tutorials, users will gain direct experience of using both OpenMP and OpenACC directives in realistic applications. Users may also bring their own codes to discuss with Cray specialists or begin porting. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Prerequisites
Programming experience in C or Fortran, some knowledge about parallel programming.
Webpage for further information

https://www.hlrs.de/training/2017-03-07-gpu/

Parallel I/O and Portable Data Formats (PATC course)
Date & Location
Mar 13–14, 2017 | JSC, Forschungszentrum Jülich
Contents

This course will start with an introduction to the basics of I/O, including basic I/O-relevant terms, an overview over parallel file systems with a focus on GPFS, and the HPC hardware available at JSC. Different I/O strategies will be presented. The course will introduce the use of the HDF5, the netCDF and the SIONlib library interfaces as well as MPI-I/O. Optimization potential and best practices will be discussed. Participants should have experience in parallel programming in general, and either C/C++ or Fortran in particular.

Prerequisites
Experience in parallel programming with MPI, and either C/C++ or Fortran in particular.
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/parallelio

Parallelization with MPI and OpenMP
Date & Location
Mar 13–15, 2017 | Goethe University of Frankfurt
Contents

The focus is on the programming models MPI and OpenMP. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the basic constructs of the Message Passing Interface (MPI) and the shared memory directives of OpenMP. This course is organized by HKHLR and CSC, Goethe University Frankfurt in collaboration with HLRS. (Content Level: 70% for beginners, 30% advanced)

Prerequisites
Unix / C or Fortran
Webpage for further information

http://www.hlrs.de/training/2017-03-13-fra/

Advanced C++, Focus on Software Engineering
Date & Location
Mar 14–17, 2017 | HLRS, Stuttgart (see also Nov 22–24, 2016 in Garching (4 days) and Nov 28–Dec 01, 2016 in Stuttgart (3 days))
Contents

This advanced C++ training is a course on object-oriented (OO) software design with the C++ programming language. The focus of the training are the essential OO and C++ software development principles, concepts, idioms, and best practices, which enable programmers to create professional, high-quality code. Additionally, the course gives insight into kernel development with C++. The course will not address special areas and applications of C++, such as for instance Template Meta Programming (TMP), or the quirks and curiosities of the C++ language. It rather teaches guidelines to develop mature, robust, maintainable, and efficient C++ code.

After this course, participants will:

  • have a detailed understanding of the essential OO design principles
  • have gained knowledge about fundamental C++ programming concepts and idioms
  • be able to properly design classes and class interfaces
  • know about the importance of exception safe programming
  • have gained insight into kernel development with C++
  • avoid the usual pitfalls in the context of inheritance
  • comprehend the advantages of non-intrusive design
  • understand the virtue of clean code
Prerequisites
Basic UNIX/Linux knowledge (login with secure shell, shell commands, simple scripts, editor vi or emacs), solid base on C++ and at least one year of experience with the language
Webpage for further information

http://www.hlrs.de/training/2017-03-14-cpp1/

Vectorisation and Portable Programming Using OpenCL
Date & Location
Mar 16–17, 2017 | JSC, Forschungszentrum Jülich
Contents

OpenCL provides an open, portable C-based programming model for highly parallel processors. In contrast to NVIDIA’s proprietary programming API CUDA, a primary goal of OpenCL is portability across a diverse set of computing devices including CPUs, GPUs, and other accelerators.

Topics covered will include an introduction to vectorisation, the programming model of OpenCL, datatypes and OpenCL vectorisation features, the tuning for architectures like CPUs, accelerators (GPUs), and co-processors (Xeon Phi), and heterogeneous multi-device programming.

Prerequisites
Some knowledge about Linux, e.g. make, command line editor, Linux shell, experience in C
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/opencl

Fortran for Scientific Computing (PATC course)
Date & Location
Mar 20–24, 2017 | HLRS, Stuttgart (see also Dec 12–16, 2016, HLRS, Stuttgart)
Contents

This course is dedicated to scientists and students to learn (sequential) programming with Fortran of scientific applications. The course teaches newest Fortran standards. Hands-on sessions will allow users to immediately test and understand the language constructs. This workshop provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Prerequisites
Familiarity with Linux and Linux editors is recommended. Basics/principles of programming (in any language). Basic mathematics (integration and differentiation).
Webpage for further information

https://www.hlrs.de/training/2017-03-20-ftn1/

Iterative Linear Solvers and Parallelization
Date & Location
Mar 27–31, 2017 | HLRS, Stuttgart
Contents

The focus is on iterative and parallel solvers, the parallel programming models MPI and OpenMP, and the parallel middleware PETSc. Thereby, different modern Krylov Subspace Methods (CG, GMRES, BiCGSTAB ...) as well as highly efficient preconditioning techniques are presented in the context of real life applications. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the basic constructs of iterative solvers, the Message Passing Interface (MPI) and the shared memory directives of OpenMP. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves. It is organized by HLRS, IAG, Uni. Kassel, and SFB/TRR30.

Prerequisites
Wednesday+Thursday: Basics of linear algebra Monday+Tuesday+Friday: Unix / C or Fortran
Webpage for further information

https://www.hlrs.de/training/2017-03-27-iter-s/

Advanced Topics in High Performance Computing (PATC course)
Date & Location
April 3–6, 2017 | LRZ, Garching near Munich
Contents

In this add-on course to the parallel programming course special topics are treated in more depth, in particular processor-specific optimisation, I/O, Intel Xeon Phi programming and PGAS concepts. It is provided in collaboration of Erlangen Regional Computing Centre (RRZE) and LRZ within KONWIHR. Each day is comprised of approximately 5 hours of lectures and 2 hours of hands-on sessions.

Prerequisites
Course participants should have good MPI and OpenMP knowledge.
Webpage for further information

http://www.lrz.de/services/compute/courses/

CFD with OpenFOAM®
Date & Location
Apr 3–7, 2017 | HLRS, Stuttgart
Contents

OpenFOAM® is a widely-used open-source code and a powerful framework for solving a variety of problems mainly in the field of CFD. The five-day workshop gives an introduction to OpenFOAM® applied on CFD phenomena and is intended for beginners as well as for people with CFD background knowledge. The user will learn about case setup, meshing tools like snappyHexMesh and cfMesh. Available OpenFOAM® utilities and additional libraries like swak4Foam, that can be used for pre- and postprocessing tasks, are further aspects of this course. Additionally, basic solvers and major aspects of code structure are highlighted. Lectures and hands-on session with typical CFD examples will guide through this course including first steps in own coding. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the parti cipants among themselves.

Prerequisites
Knowledge of using Linux, basics in programming and some insights into CFD theory.
Webpage for further information

https://www.hlrs.de/training/2017-04-03-of1/

GPU Programming with CUDA (PATC course)
Date & Location
Apr 24–26 2017 | JSC, Forschungszentrum Jülich (see also Dec 12-16, 2016 in Stuttgart)
Contents

GPU-accelerated computing drives current scientific research. Writing fast numeric algorithms for GPUs offers high application performance by offloading compute-intensive portions of the code to an NVIDIA GPU. The course will cover basic aspects of GPU architectures and programming. Focus is on the usage of the parallel programming language CUDA-C which allows maximum control of NVIDIA GPU hardware. Examples of increasing complexity will be used to demonstrate optimization and tuning of scientific applications.

Prerequisites
Some knowledge about Linux, e.g. make, command line editor, Linux shell, experience in C
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/cuda

Node-Level Performance Engineering (PATC-course)
Date & Location
Apr 27–28, 2017 | HLRS, Stuttgart (see also Dec 1-2, 2016 in Garching)
Contents

This course teaches performance engineering approaches on the compute node level. “Performance engineering” as we define it is more than employing tools to identify hotspots and bottlenecks. It is about developing a thorough understanding of the interactions between software and hardware. This process must start at the core, socket, and node level, where the code gets executed that does the actual computational work. Once the architectural requirements of a code are understood and correlated with performance measurements, the potential benefit of optimizations can often be predicted. We introduce a “holistic” node-level performance engineering strategy, apply it to different algorithms from computational science, and also show how an awareness of the performance features of an application may lead to notable reductions in power consumption.This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Prerequisites
Basic knowledge in programming with Fortran or C, and basic OpenMP.
Webpage for further information

https://www.hlrs.de/training/2017-04-27-nlp/

Cray XC40-Workshop on Optimization at Scale
Date & Location
May 2–5, 2017 | HLRS, Stuttgart
Contents

In August 2015, the Cray XC40 supercomputer Hornet at HLRS was upgraded to a new system named “Hazel Hen”, featuring 7712 compute nodes, each equipped with two 12 core Intel Haswell processors running at 2.5 GHz. Each node is equipped with 128 GB DDR4 memory and connected to the other nodes through the Cray Aries network. The peak performance amounts to 7.4 PFlops.

In order to help users running efficiently on this new large system, HLRS and Cray offer an optimization workshop for applications running at scale. The intent of this workshop is to tune the performance of such codes by detecting, locating and solving bottlenecks.

Prerequisites
Target audience are users of applications which are already scaling to at least 24000 cores (1000 nodes). In order to attend the workshop, you will have to bring your own code including a dataset which can be used at scale. You will be required to do some work on your application before the workshop. In order to do so, you should already have an account on HAZELHEN and your application should already be able to run on the system.
Webpage for further information

https://www.hlrs.de/training/2017-05-02-xc40-1/

Introduction to the Programming and Usage of the Supercomputer Resources at Jülich
Date & Location
May 22–23, 2017 | JSC, Forschungszentrum Jülich
Contents

This course gives an overview of the supercomputers at Jülich. Especially new users will learn how to program and use these systems efficiently. Topics discussed are: system architecture, usage model, compilers, tools, monitoring, MPI, OpenMP, performance optimization, mathematical software, and application software.

Prerequisites
Basic knowledge of Unix, knowledge of either C, C++ or Fortran
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/sc-may

Cluster Workshop
Date & Location
May 29–30, 2017 | HLRS, Stuttgart
Contents

Nowadays, the IT infrastructure of many companies and institutions includes modern compute clusters. The procurement, operation and the efficient usage of such parallel systems introduces new and complex requirements.

To address these emerging requirements, the High Performance Computing Center of the University of Stuttgart (HLRS) offers a vendor-independent workshop. Topics span from the design of compute clusters to details on different hardware components, operating systems, file systems and modes of operation, touching on specific software solutions. Further, typical problems and strategies for their solution will be discussed.

HLRS has been running compute clusters for many years, providing compute resources for scientific and industrial simulations. HLRS is in constant dialogue with users and hardware providers and has accumulated a large knowledge base in cluster computing.

Webpage for further information

https://www.hlrs.de/training/2017-05-29-cluster/

Scientific Visualization
Date & Location
May 31–Jun 1, 2017 | HLRS, Stuttgart
Contents

This two day course is targeted at researchers with basic knowledge in numerical simulation, who would like to learn how to visualize their simulation results on the desktop but also in Augmented Reality and Virtual Environments. It will start with a short overview of scientific visualization, following a hands-on introduction to 3D desktop visualization with COVISE. On the second day, we will discuss how to build interactive 3D Models for Virtual Environments and how to set up an Augmented Reality visualization. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Prerequisites
Programming experience in Fortran or C
Webpage for further information

https://www.hlrs.de/training/2017-05-31-vis1/

Intel MIC Programming Workshop (PATC-Course)
Date & Location
Jun 2017, 3 days | LRZ, Garching near Munich (see also Feb 2017, 2 days, IT4Innovations, Ostrava)
Contents

These workshops discuss Intel’s Many Integrated Core (MIC) architecture. They cover various programming and optimisation techniques for Intel Xeon Phi based systems. While the course taking place at IT4Innovations in February will concentrate on the Knights Corner based system Salomon - currently the largest Intel Xeon Phi based system in Europe - the course at LRZ in June will focus on Intel’s new Knights Landing architecture.

The workshops are developed within PRACE and the joint German-Czech Republic project CzeBaCCA.

Webpage for further information

http://www.lrz.de/services/compute/courses/

Introduction to hybrid Programming in HPC
Date & Location
Jun 12, 2017 | HLRS, Stuttgart (see also Jan 12, 2017 in Garching)
Contents

Most HPC systems are clusters of shared memory nodes. Such SMP nodes can be small multi-core CPUs up to large many-core CPUs. Parallel programming may combine the distributed memory parallelization on the node interconnect (e.g., with MPI) with the shared memory parallelization inside of each node (e.g., with OpenMP or MPI-3.0 shared memory). This course analyzes the strengths and weaknesses of several parallel programming models on clusters of SMP nodes. Multi-socket-multi-core systems in highly parallel environments are given special consideration. MPI-3.0 has introduced a new shared memory programming interface, which can be combined with inter-node MPI communication. It can be used for direct neighbor accesses similar to OpenMP or for direct halo copies, and enables new hybrid programming models. These models are compared with various hybrid MPI+OpenMP approaches and pure MPI. Numerous case studies and micro-benchmarks demonstrate the performance-related aspects of hybrid programming.

Tools for hybrid programming such as thread/process placement support and performance analysis are presented in a “how-to” section. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Prerequisites
Basic MPI and OpenMP knowledge
Webpage for further information

https://www.hlrs.de/training/2017-06-12-hy-s/

High-performance Computing with Python (PATC course)
Date & Location
Jun 12–13, 2017 | JSC, Forschungszentrum Jülich
Contents

Python is being increasingly used in high-performance computing projects such as GPAW. It can be used either as a high-level interface to existing HPC applications, as embedded interpreter, or directly. This course combines lectures and hands-on sessions. We will show how Python can be used on parallel architectures and how performance critical parts of the kernel can be optimized using various tools.

Prerequisites
Experience with Python and NumPy
Webpage for further information

http://www.fz-juelich.de/ias/jsc/events/hpc-python

Introduction to UPC and Co–Array Fortran (PATC course)
Date & Location
Jun 29–30, 2017 | HLRS, Stuttgart (see also Jan 12, 2017 in Garching)
Contents

Partitioned Global Address Space (PGAS) is a new model for parallel programming. Unified Parallel C (UPC) and Co-array Fortran (CAF) are PGAS extensions to C and Fortran. UPC and CAF are language extensions to C and Fortran. Parallelism is part of the language. PGAS languages allow any processor to directly address memory/data on any other processors. Parallelism can be expressed more easily compared to library based approaches as MPI. This course gives an introduction to this novel approach of expressing parallelism. Hands-on sessions (in UPC and/or CAF) will allow users to immediately test and understand the basic constructs of PGAS languages. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Prerequisites
Programming experience in Fortran or C, some knowledge about parallel programming
Webpage for further information

https://www.hlrs.de/training/2017-06-29-upc1/

Efficient Parallel Programming with GASPI (PATC course)
Date & Location
Jul 3–4, 2017 | HLRS, Stuttgart
Contents

In this tutorial we present an asynchronous data flow programming model for Partitioned Global Address Spaces (PGAS) as an alternative to the programming model of MPI.

GASPI, which stands for Global Address Space Programming Interface, is a partitioned global address space (PGAS) API. The GASPI API is designed as a C/C++/Fortran library and focused on three key objectives: scalability, flexibility and fault tolerance. In order to achieve its much improved scaling behaviour GASPI aims at asynchronous dataflow with remote completion, rather than bulk-synchronous message exchanges. GASPI follows a single/multiple program multiple data (SPMD/MPMD) approach and offers a small, yet powerful API (see also http://www.gaspi.de and http://www.gpi-site.com).

GASPI is successfully used in academic and industrial simulation applications. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the basic constructs of GASPI.

This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Webpage for further information

https://www.hlrs.de/training/2017-07-03-gaspi/

Introduction to Cluster Filesystems
Date & Location
Jul 6, 2017 | HLRS, Stuttgart
Contents

The one-day workshop will provide an overview and a first deeper insight into the structure, functionality and the differences of the three main cluster file systems, beegfs, IBM Spectrum Scale and Intel Enterprise Edition for Lustre. Experts from the responsible manufacturer will present the file systems in a one and a half hour session, with enough time to respond to the questions of the participants. This workshop will help administrators and technical decision makers to identify the best Cluster File System for the local environment and the specific requirements.

NEC SX-ACE – Vectorization and Optimization
Date & Location
Jul 11–12, 2017 | HLRS, Stuttgart
Contents

In spring 2015, HLRS installed a next generation vector computer, a NEC SX-ACE. The participants learn about the configuration of the NEC SX-ACE system at HLRS and how to use this cluster of vectorizing shared memory nodes. One focus is an introduction in vectorization. More experienced users can learn how to optimize programs based on performance measurements. Additional topics are I/O and the optimization of application programs. The first day presents an introduction to the NEC SX architecture and vectorization. The second day morning is focused on usage aspects and the differences between the predecessor system (NEC SX-9) and the new NEC SX-ACE. The afternoon is dedicated to hands-on sessions.

Separate registration of individual days is possible. Participants are encouraged to prepare their own applications for use in the hands-on session. Participants familiar with SX vector computers may wish to register only for Day 2.

Prerequisites
Programming experience in C or Fortran, some knowledge about parallel programming
Webpage for further information

https://www.hlrs.de/training/2017-07-11-nec/

Guest Student Programme at JSC
Date & Location
Aug 6–Oct 13, 2017 | JSC, Forschungszentrum Jülich
Contents

Guest Student Programme “Scientific Computing” to support education and training in the field of supercomputing. Students of Computational Sciences, Computer Science and Mathematics can work 10 weeks in close collaboration with a local scientific host on a subject in their field. Application deadline is March 31, 2017.

Webpage for further information

http://www.fz-juelich.de/ias/jsc/gsp