Search

Navigation and service

Training course "Improving Software Performance - Parallel Programming" @ HLRS

begin
18.Sep.2018 09:00
end
10.Dec.2018
venue
HLRS Stuttgart

Parallel programming is considered a key to improving software performance. For code development on parallel systems, application programmers need not only a thorough understanding of parallel computing system architectures and programming models like MPI or OpenMP, but also the ability to implement directives, libraries, and important parallelization concepts efficiently.

The module "Parallel Programming" will provide such knowledge and skills. In addition to covering the theoretical foundations of parallelization, the course will include concrete programming exercies that offer the opportunity to gain a deeper understanding and practical expertise. The module is ideal for programmers and developers with experience in C, C++, or Fortran.

Module Contents

  • What is HPC?
  • Performance
  • Vectorization
  • Parallelization: thinking in parallel
  • Parallelizability of software, calculations, and requirements
  • OpenMP
  • Parallel programming models: introduction to MPI (C++, Fortran)
  • Parallel programming models: advanced MPI (C++, Fortran)
  • Parallel programming models: parallel I/O
  • Parallel programming models: hybrid programming - MPI + X
  • Other parallel programming models
  • Parallelization: scaling
  • Parallelization: domain decomposition and load balancing
  • Parallelization: parallel design patterns
  • Parallelization: parallel aspects of programming languages
  • Heterogeneous computing systems and graphic cards
  • Parallel numerical libraries
  • Parallelization strategies: deciding on a programming model

Flexible Learning

The module is conducted in a blended learning format, meaning that it combines self-learning phases and classroom instruction. This approach offers flexiblility in the time required to work through the course content, so that continuing education can take place in parallel with job and family responsibilities.

Self-directed learning is complemented with regular online meetings in a virtual classroom, which take place on Monday evenings.

Time Commitment

Each module requires a time commitment of approximately 125 hours over the span of 12-14 weeks. Course time is divided as follows:

  • 8 hours per week per module, including a weekly online meeting (Monday evenings)
  • 2 classes at HLRS in Stuttgart

CECAM tutorial: Atomistic Monte Carlo Simulations of Bio-molecular Systems @ JSC

begin
24.Sep.2018 12:00
end
28.Sep.2018 13:30
venue
Jülich Supercomputing Centre

Atomistic Markov Chain Monte Carlo simulations (MC) offer an interesting and complementary approach to Molecular Dynamics (MD) in the study of long time scale biophysical phenomena. MC simulations follow well established techniques to obtain a statistical physics description of a system using the potential energy function, but without solving the equations of motion. While a temporal description of the simulated process is sacrificed, questions about probabilities, temperature dependence, effects of prevailing conditions etc. can often be answered at a minuscule fraction of the computing cost (and hence also the energy cost and carbon footprint) of an adequately long MD simulation. We have previously used replica exchange MC simulations to describe the folding of a complex 92 residue alpha + beta protein with an experimental folding time of about one second. We have also applied MC techniques to study intrinsically disordered proteins, peptide aggregation and the influence of macro-molecular crowding on protein behaviour. We believe that MC techniques are severely underused in biophysical research, owing to the dearth of exposure to the technique in contrast to MD within the community. Our tutorial is an effort to introduce researchers in the field to MC techniques in sufficient detail for them to use it in their own research.

This CECAM Tutorial is organized by Sandipan Mohanty, Olav Zimmermann, and Jan Meinke (JSC) and will take place at Forschungszentrum Jülich, Jülich Supercomputing Centre.

Training course "Introduction to the LRZ Supercomputing & Machine Learning Infrastructure" @ LRZ

begin
08.Oct.2018 09:00
end
08.Oct.2018 18:00
venue
LRZ Garching

In this introductory course we will give an overview of the hardware and software services provided by the Leibniz Supercomputing Center (LRZ) with a focus on supercomputing (HPC) as well as machine learning (ML) applications.
The course opens with a (optional) introduction to GNU/Linux and a how-to of working with remote machines. The subsequent combination of lectures, demo and hands-on sessions provides participants with the knowledge and skills necessary to efficiently utilize the LRZ supercomputing and cloud infrastructure for their own projects.

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

begin
08.Oct.2018 09:00
end
09.Oct.2018 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 "Using R at LRZ" @ LRZ

begin
09.Oct.2018 09:00
end
09.Oct.2018 13:00
venue
LRZ Garching

R is a highly popular and powerful programming language for data analysis and graphics, used in many research domains. The Leibniz Supercomputing Centre (LRZ) is addressing the needs of R users by facilitating various ways of working with R on LRZ systems.

For one it is hosting a RStudio Server web service that provides an easy to use and powerful platform mostly targeted at interactive analyses. This service can, however, also be used as a gateway to the high performance computing (HPC) systems at LRZ. Additionally, R can be employed directly on the massively parallel Linux Cluster as well as on specialized and GPU-enhanced machine learning systems.

In this half-day course, we will illustrate the different possibilities of using R at LRZ and provide guidelines and best practice examples for running R applications efficiently on the various systems.

Training course "C Language for Beginners" @ LRZ

begin
09.Oct.2018 09:00
end
11.Oct.2018 17:00
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 "Using Python at LRZ" @ LRZ

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

As a general-purpose programming language with a growing user-base amongst data scientists, Python is increasingly used for data analysis and machine learning applications at the Leibniz Supercomputing Centre (LRZ).

In this half-day course we will demonstrate several techniques and best practice examples - empowering participants to use Python effectively on LRZ infrastructure.

Training course "Introduction to Python" @ JSC

begin
15.Oct.2018 08:30
end
17.Oct.2018 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.

The course is given in German.

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

begin
15.Oct.2018 08:30
end
19.Oct.2018 16:30
venue
HLRS Stuttgart

Distributed memory parallelization with the Message Passing Interface MPI (Mon, 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 introduction into MPI-1. 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 (Tue, 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.

Intermediate and advanced topics in parallel programming (Wed-Fri):
Topics are advanced usage of communicators and virtual topologies, one-sided communication, derived datatypes, MPI-2 parallel file I/O, hybrid mixed model MPI+OpenMP parallelization, 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. Further aspects are domain decomposition, load balancing, and debugging. 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.

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 "Advanced C++ with Focus on Software Engineering" @ LRZ

begin
23.Oct.2018 09:00
end
25.Oct.2018 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 "Scientific Visualization" @ HLRS

begin
25.Oct.2018 09:00
end
26.Oct.2018 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 "Introduction to GPU programming using OpenACC" @ JSC

begin
29.Oct.2018
end
30.Oct.2018
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
  • Multi-GPU Programming with MPI and OpenACC
  • Tools for debugging and profiling
  • Performance optimization

Training course "Optimization of Scaling and Node-level Performance on Hazel Hen (Cray XC40)" @ HLRS

begin
05.Nov.2018 14:00
end
09.Nov.2018
venue
HLRS Stuttgart

In order to increase the efficiency of our users' applications on Hazel Hen, HLRS and Cray offer this workshop to enhance the node-level performance as well as scaling of the codes utilized by participants. By doing so, users can raise the volume as well as quality of their scientific findings while the costs (in terms of core hours) remain constant.

Supported by HLRS and CRAY specialists, you will analyze the runtime behavior of your code, locate bottlenecks, develop and discuss potential solutions as well as implement them. All categories of bottlenecks (CPU, memory subsystem, communication and I/O) will be addressed, according to the respective requirements. Ideally, the above steps will be repeated multiple times in order to address several bottlenecks.

In order to achieve usable efficiency enhancements, it is important to discuss pros and cons of potential solutions. This, however, requires application as well as hardware expertise. Hence, this workshop brings together application and hardware specialists in the shape of users and machine experts.

If requested by participants, also lectures can be given on various topics. This is in particular true with respect to scalable I/O strategies and mechanisms (MPI-IO, NetCDF, HDF5), since I/O is the bottleneck of many HPC applications these days. By means of hands on sessions, participants can gain initial experience with lessons learned.

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

begin
06.Nov.2018 09:00
end
09.Nov.2018 17:00
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.

Workshop "HPC mit COMSOL Multiphysics" @ LRZ

begin
15.Nov.2018 09:30
end
15.Nov.2018 16:00
venue
LRZ Garching

Dieser Workshop richtet sich an alle Interessenten, die jetzt oder in Zukunft am LRZ die Software COMSOL der Firma Comsol Multiphysics GmbH im HPC-Bereich einsetzen möchten.

  • Einführung in COMSOL (mit Fokus auf HPC)
  • HPC mit COMSOL
  • COMSOL am LRZ
  • Hands On - Beispiele selber auf einem der LRZ Cluster rechnen
  • Offene Diskussion/Support/Kennenlernen

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

begin
19.Nov.2018 08:30
end
22.Nov.2018 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 "Software Development in Science" @ JSC

begin
19.Nov.2018 09:00
end
20.Nov.2018 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 "Introduction to the programming and usage of the supercomputing resources at Jülich" @ JSC

begin
22.Nov.2018 13:00
end
23.Nov.2018 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
26.Nov.2018 09:00
end
28.Nov.2018 16:30
venue
JSC, Jülich

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 "Machine Learning with R at LRZ" @ LRZ

begin
27.Nov.2018 09:00
end
27.Nov.2018 18:00
venue
LRZ Garching

The statistical programming language R offers a large amount of add-on packages that implement ideas and methods from the field of machine learning.

The mlr package (Machine Learning in R) provides a unified interface to many of these algorithms. It allows to utilize supervised methods like classification, regression and survival analyses along with their corresponding optimization and evaluation methods, as well unsupervised methods like clustering. This includes a consistent infrastructure for common data pre- and post-processing steps, feature selection, hyperparameter optimization, resampling and model comparison. As these tasks become computationally expensive, parallelization is desirable and, for high performance cluster systems, conveniently facilitated by the batchtools package.

In this full-day workshop, we will provide an introduction to the mlr package and demonstrate how it can be used to deploy highly parallelized machine learning tasks on LRZ high performance computing systems, using the batchtools package. Participants will be able to work on instructor-led excercises and hands-on examples.

Training course "Fortran for Scientific Computing" @ HLRS

begin
03.Dec.2018 08:30
end
07.Dec.2018 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.

Training course "Introduction to C" @ JSC

begin
03.Dec.2018 09:00
end
12.Dec.2018 16:30
venue
JSC, Jülich

An introduction to the programming language C is given. This language is often used in non-numeric data processing and is also suitable for programming tasks close to the system.

This course will be given in German.

Training course "Parallel Programming with MPI, OpenMP, and Tools" @ ZIH, Dresden

begin
04.Feb.2019 08:30
end
08.Feb.2019 12:30
venue
ZIH Dresden

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)

Training course "Programming with Fortran" @ LRZ

begin
06.Mar.2019 09:00
end
08.Mar.2019 18:00
venue
LRZ Garching

This three day 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.

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