Search

Navigation and service

Training course "Cray XC40 Workshop on Scaling and Node-level Performance" @ HLRS

begin
20.Sep.2017 09:00
end
22.Sep.2017 16:30
venue
HLRS Stuttgart

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 in addition to the "Introduction to the Cray XC40 HPC System at HLRS" Workshop taking place on the previous day. The intent of this workshop is to tune the performance of user codes by detecting, locating and solving bottlenecks.

Training course "Advanced C++ with Focus on Software Engineering" @ LRZ

begin
04.Oct.2017 09:00
end
06.Oct.2017 17:00
venue
LRZ Garching

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:

Day 1 schedule:

  • Essential Object-Oriented Design Principles

    • The core of object-oriented programming
    • The SOLID principles
  • Concepts and the STL

    • Overview of the STL
    • Proper use of the STL
  • Class Design

    • Know what your compiler does for you
    • Inside/Outside: What should (not) be inside a class?

Day 2 schedule:

  • Class Design (cont.)

    • Const Correctness
    • Interface design
    • Visibility vs. Accessibility
  • Robust Code

    • Error propagation
    • Exception Safety
    • RAII
    • Handling Legacy Code
  • Proper Use of Dynamic Inheritance

    • Non-public inheritance
    • Public inheritance

Day 3 schedule:

  • Dependency-Breaking Techniques
  • Non-Intrusive Design
  • C++11/14 Update
  • Kernel development

Contents are subject to modifications.

Training course "Porting code from Matlab to Python" @ JSC

begin
09.Oct.2017 09:00
end
10.Oct.2017 16:30
venue
JSC, Jülich

Python is becoming a popular language for scientific applications and is increasingly used for high performance computing. In this course we want to introduce Matlab programmers to the usage of Python. Matlab and Python have a comparable language philosophy, but Python can offer better performance using its optimizations and parallelization interfaces. Python also increases the portability and flexibility (interaction with other open source and proprietary software packages) of solutions, and can be run on supercomputing resources without high licensing costs.

The training course will be divided into three stages: First, attendants will learn how to do a direct translation of language concepts from Matlab to Python. Then, optimization of scripts using more Pythonic data structures and functions will be shown. Finally, code will be taken to the supercomputers where basic parallel programming (MPI) will be used to exploit parallelism in the computation.

The course will focus on numerical and statistical analysis as well as on image processing applications.

This course involves theoretical and hands on sessions which will be guided by experts in Python, Matlab and High Performance Computing. Attendants are highly encouraged to bring their own Matlab scripts.

Training course "Introduction to Python" @ JSC

begin
09.Oct.2017 09:00
end
11.Oct.2017 16:30
venue
JSC, Jülich

This course gives an introduction to the programming language Python. Topics are: data types, control structures, object-oriented programming, module usage. Additionally, Python's standard library and the GUI programming with wxWidgets will be explained.

Training course "Parallel Programming Workshop (MPI, OpenMP and advanced topics)" @ HLRS

begin
16.Oct.2017 08:30
end
20.Oct.2017 16:30
venue
HLRS Stuttgart

Distributed memory parallelization with the Message Passing Interface MPI (Mon+Tue, for beginners):
On clusters and distributed memory architectures, parallel programming with the Message Passing Interface (MPI) is the dominating programming model. The course gives an full introduction into MPI-1. Further aspects are domain decomposition, load balancing, and debugging. An MPI-2 overview and the MPI-2 one-sided communication is also taught. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the basic constructs of the Message Passing Interface (MPI).

Shared memory parallelization with OpenMP (Wed, for beginners):
The focus is on shared memory parallelization with OpenMP, the key concept on hyper-threading, dual-core, multi-core, shared memory, and ccNUMA platforms. This course teaches shared memory OpenMP parallelization. Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the directives and other interfaces of OpenMP. Race-condition debugging tools are also presented.

Advanced topics in parallel programming (Thu+Fri):
Topics are MPI-2 parallel file I/O, hybrid mixed model MPI+OpenMP parallelization, MPI-3.0, parallelization of explicit and implicit solvers and of particle based applications, parallel numerics and libraries, and parallelization with PETSc. MPI-3.0 introduced a new shared memory programming interface, which can be combined with MPI message passing and remote memory access on the cluster interconnect. 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 in the hybrid mixed model MPI+OpenMP parallelization session with various hybrid MPI+OpenMP approaches and pure MPI.

Hands-on sessions are included on all days. This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves.

Training course "Introduction to GPU programming using OpenACC" @ JSC

begin
16.Oct.2017 09:00
end
17.Oct.2017 16:30
venue
JSC, Jülich

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 the GPU. The course will cover basic aspects of GPU architectures and programming. Focus is on the usage of the directive-based OpenACC programming model which allows for portable application development. Examples of increasing complexity will be used to demonstrate optimization and tuning of scientific applications.

Topics covered will include:

  • Introduction to GPU/Parallel computing
  • Programming model OpenACC
  • Interoperability of OpenACC with GPU libraries like CuBLAS and CuFFT
  • Tools for debugging and profiling
  • Performance optimization

Training course "C for Beginners" @ LRZ

begin
24.Oct.2017 09:00
end
26.Oct.2017 16:30
venue
LRZ Garching

This three-day course gives an introduction to the C programming language. The following topics will be covered:

Day 1 schedule:

  • Basic Concepts
  • Hello World Compilation
  • Datatypes
  • Operators and Basic statements
  • First examples

Day 2 schedule:

  • C-Functions
  • Code modularity
  • Compilation, Debugging
  • Compiler directives
  • Structures

Day 3 schedule:

  • Memory model
  • Pointers
  • Function pointers
  • Good coding practices

Contents are subject to modifications.

Course participants should have basic UNIX/Linux knowledge (login with secure shell, shell commands, simple scripts, editor vi or emacs). The second requisite is to have basic knowledge on other programming language/scripting language.

Training course "Scientific Visualization" @ HLRS

begin
06.Nov.2017 09:00
end
07.Nov.2017 15:30
venue
HLRS Stuttgart

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.

Training course "C++ Language for Beginners" @ LRZ

begin
07.Nov.2017 09:00
end
10.Nov.2017 16:30
venue
LRZ Garching

This four-day course gives an introduction to the C++ programming language. The following topics will be covered:

Day 1 schedule:

  • Reminder of C concepts
  • C++ Basics
  • C++ Pointers
  • Constructors and destructors
  • Classes methods and objects

Day 2 schedule:

  • Inheritance
  • Class Design
  • Namespaces

Day 3 schedule:

  • I/O operations
  • Strings
  • File management
  • Error handling and exceptions

Day 4 schedule:

  • C++ containers and iterators
  • Operators overloading
  • Modularity
  • Good coding practices

Contents are subject to modifications.

Training course "Software Development in Science" @ JSC

begin
20.Nov.2017 09:00
end
20.Nov.2017 16:30
venue
JSC, Jülich

Scientific research increasingly relies on software. Software engineering and development play a key role in the production of software. Thus, formal education and training in software development methodologies become more important, particularly in larger software projects. Software development in teams needs formalized processes to get a reliable outcome. The aim of this course is to give an introduction to established software development methodologies and best practices. The lessons learned in this workshop can be applied to large projects but will also help individual researchers to improve the quality of their software.

Topics covered are:

  • Overview of software development methodologies
  • Scrum and agile practices
  • Version control: hands-on training, working with Git and GitHub
  • Open source and community building
  • Licenses and copyright
  • Software testing and quality
  • Documentation

Training course "Advanced C++ with Focus on Software Engineering" @ HLRS

begin
20.Nov.2017 09:00
end
23.Nov.2017 16:30
venue
HLRS Stuttgart

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

Training course "Vectorisation and portable programming using OpenCL" @ JSC

begin
21.Nov.2017 09:00
end
22.Nov.2017 16:30
venue
JSC, Jülich

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:

  • Introduction to vectorization
  • Programming model OpenCL
  • Datatypes and OpenCL vectorization features
  • Tuning for architectures like CPUs, accelerators (GPUs), and co-processors (Xeon Phi)
  • Heterogeneous multi-device programming

Training course "Introduction to the programming and usage of the supercomputing resources at Jülich" @ JSC

begin
23.Nov.2017 13:00
end
24.Nov.2017 16:30
venue
JSC, Jülich

Through the John von Neumann Institute for Computing, Research Centre Juelich 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.

Training course "Advanced parallel programming with MPI and OpenMP" @ JSC

begin
27.Nov.2017 09:00
end
29.Nov.2017 16:30
venue
JSC, Jülich

This course is given in English.

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).

The course 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 GPU programming with OpenMP-4.0 directives is not part of this course.) The course also contains performance and best practice considerations, e.g., with hybrid MPI+OpenMP parallelisation. The course ends with a section presenting tools for parallel programming.

Hands-on sessions (in C and Fortran) will allow users to immediately test and understand the taught constructs of 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 JSC in collaboration with HLRS. (Content Level: 20% for beginners, 50% intermediate, 30% advanced)

Training course "Fortran for Scientific Computing" @ HLRS

begin
27.Nov.2017 09:00
end
01.Dec.2017 15:30
venue
HLRS Stuttgart

This course is dedicated for 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.

PATC Training course "Node-level performance engineering" @ LRZ

begin
30.Nov.2017 09:00
end
01.Dec.2017 17:00
venue
LRZ Garching

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.

The course is a PRACE Advanced Training Center event.

PATC training course "Introduction to hybrid programming in HPC" @ LRZ

begin
18.Jan.2018 10:00
end
18.Jan.2018 17:00
venue
LRZ Garching

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.

The course is a PRACE Advanced Training Center event.

Training course "Programming with Fortran" @ LRZ

begin
14.Feb.2018 09:00
end
16.Feb.2018 18:00
venue
LRZ Garching

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 coarrays will be covered in a follow-on course in autumn.

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

Course participants should have basic UNIX/Linux knowledge (login with secure shell, shell commands, basic programming, vi or emacs editors).

PATC training course "VI-HPS Tuning Workshop" @ LRZ

begin
23.Apr.2018 09:00
end
27.Apr.2018 18:00
venue
LRZ, Garching

This workshop organized by VI-HPS, LRZ and IT4Innovations for the PRACE Advanced Training Centre (PATC) at LRZ will:

  • give an overview of the VI-HPS programming tools suite
  • eexplain the functionality of individual tools, and how to use them effectively
  • offer hands-on experience and expert assistance using the tools

To foster the Czech-German collaboration in high performance computing, a contingent of places has been reserved for participants from the Czech Republic.

Programme Overview

Presentations and hands-on sessions are planned on the following topics (tbc.)

  • Setting up, welcome and introduction
  • Score-P instrumentation and measurement
  • Scalasca automated trace analysis
  • Vampir interactive trace analysis
  • Periscope/PTF automated performance analysis and optimisation
  • Extra-P automated performance modeling
  • Paraver/Extrae/Dimemas trace analysis and performance prediction
  • [k]cachegrind cache utilisation analysis
  • MAQAO performance analysis & optimisation
  • MUST runtime error detection for MPI
  • ARCHER runtime error detection for OpenMP
  • MAP+PR profiling and performance reports
  • A brief overview of the capabilities of these and associated tools is provided in the VI-HPS Tools Guide.

The workshop will be held in English and run from 09:00 to not later than 18:00 each day, with breaks for lunch and refreshments. The course is free of charge as the workshop is sponsored through the PRACE PATC program. All participants are responsible for their own travel and accommodation.

Participants are encouraged to prepare their own MPI, OpenMP and hybrid MPI+OpenMP parallel application codes for analysis.

Servicemeu