Search

Navigation and service

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

begin
28.May.2018 13:00
end
29.May.2018 16:30
venue
JSC, Jülich

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

Training course "Fortran Modernization Workshop" @ LRZ

begin
04.Jun.2018 09:00
end
05.Jun.2018 17:00
venue
LRZ Garching

This two day practical hands-on workshop offered by the Numerical Algorithms Group (NAG) is aimed at Fortran programmers who want to write modern code, or to modernize existing codes, to make it more readable and maintainable by encouraging good software engineering practices. This workshop will also present how to integrate tools and techniques for Fortran codes to help you develop sustainable software for your scientific and academic research particularly in a collaborative environment. Overall, the aim is to make you a better and more productive computational scientist by improving your applied computer science skills that are directly relevant to computational science.

Training course "Introduction to Deep Learning Models" @ JSC

begin
06.Jun.2018 09:00
end
07.Jun.2018 16:30
venue
Jülich Supercomputing Centre

This course focuses on a recent machine learning method known as deep learning that emerged as a promising disruptive approach, allowing knowledge discovery from large datasets in an unprecedented effectiveness and efficiency. It is particularly relevant in research areas, which are not accessible through modelling and simulation often performed in HPC. Traditional learning, which was introduced in the 1950s and became a data-driven paradigm in the 90s, is usually based on an iterative process of feature engineering, learning, and modelling. Although successful on many tasks, the resulting models are often hard to transfer to other datasets and research areas.

This course provides an introduction into deep learning and its inherent ability to derive optimal and often quite generic problem representations from the data (aka ‘feature learning’). Concrete architectures such as Convolutional Neural Networks (CNNs) will be applied to real datasets of applications using known deep learning frameworks such as Tensorflow, Keras, or Torch. As the learning process with CNNs is extremely computational-intensive the course will cover aspects of how parallel computing can be leveraged in order to speed-up the learning process using general purpose computing on graphics processing units (GPGPUs). Hands-on exercises allow the participants to immediately turn the newly acquired skills into practice. After this course participants will have a general understanding for which problems CNN learning architectures are useful and how parallel and scalable computing is facilitating the learning process when facing big datasets.

PRACE training course "High-performance scientific computing in C++" @ JSC

begin
11.Jun.2018 09:00
end
13.Jun.2018 16:30
venue
JSC, Jülich

Modern C++, with its support for procedural, objected oriented, generic and functional programming styles, offers many powerful abstraction mechanisms to express complexity at a high level while remaining very efficient. It is therefore the language of choice for many scientific projects. However, achieving high performance on contemporary computer hardware, with many levels of parallelism, requires understanding C++ code from a more performance centric viewpoint.

In this course, the participants will learn how to write C++ programs which better utilize typical HPC hardware resources of the present day. The course is geared towards scientists and engineers, who are already familiar with C++14, and wish to develop maintainable and fast applications. They will learn to identify and avoid performance degrading characteristics, such as unnecessary memory operations, branch mispredictions, and unintentionally strong ordering assumptions. Two powerful open source libraries to help write structured parallel applications will also be introduced:

  • Intel (R) Threading Building Blocks
  • NVIDIA Thrust

This course is a PRACE training course.

Training course "Fortran Modernization Workshop" @ HLRS

begin
12.Jun.2018 08:30
end
13.Jun.2018 17:00
venue
HLRS Stuttgart

This two day practical hands-on workshop is aimed at Fortran programmers who want to write modern code, or to modernize existing codes, to make it more readable and maintainable by encouraging good software engineering practices. This workshop will also present how to integrate tools and techniques for Fortran codes to help you develop sustainable software for your scientific and academic research particularly in a collaborative environment. Overall, the aim is to make you a better and more productive computational scientist by improving your applied computer science skills that are directly relevant to computational science.

This course provides scientific training in Computational Science, and in addition, the scientific exchange of the participants among themselves. It is organized by HLRS and NAG.

Training course "DEEP Learning Workshop" @ LRZ

begin
12.Jun.2018 09:00
end
12.Jun.2018 18:00
venue
LRZ Garching

In this full-day workshop, you will learn the basics of deep learning by training and deploying neural networks. Build the skill-set and toolbox you need to build your own deep learning solutions through hands-on projects. Learners will:

  • Understand general terms and background of deep learning
  • Implement common deep learning workflows such as Image Classification and Object Detection
  • Manipulate training parameters to improve accuracy
  • Modify internal layers of neural networks to adapt to new problems
  • Deploy your networks to start solving real-world problems

PRACE Training course "Node-level performance engineering" @ HLRS

begin
14.Jun.2018 09:00
end
15.Jun.2018 17:00
venue
HLRS Stuttgart

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.

This course is a PRACE training course.

PRACE training course "High-performance computing with Python" @ JSC

begin
18.Jun.2018 09:00
end
19.Jun.2018 16:30
venue
JSC, Jülich

Python is increasingly used in high-performance computing projects. It can be used either as a high-level interface to existing HPC applications and libraries, 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 to optimize critical parts of the kernel using various tools.

The following topics will be covered:

  • Interactive parallel programming with IPython
  • Profiling and optimization
  • High-performance NumPy
  • Just-in-time compilation with numba
  • Distributed-memory parallel programming with Python and MPI
  • Bindings to other programming languages and HPC libraries
  • Interfaces to GPUs

This course is aimed at scientists who wish to explore the productivity gains made possible by Python for HPC.

This course is a PRACE training course.

Training course "Introduction to Hybrid Programming in HPC" @ HLRS

begin
19.Jun.2018 09:30
end
19.Jun.2018 17:00
venue
HLRS Stuttgart

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.

Training course "Cluster Workshop" @ HLRS

begin
20.Jun.2018 09:30
end
21.Jun.2018 17:00
venue
HLRS Stuttgart

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.

PRACE training course "Concepts of GASPI and interoperability with other communication APIs" @ HLRS

begin
02.Jul.2018 09:00
end
03.Jul.2018 15:30
venue
HLRS Stuttgart

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.

PRACE training course "Introduction to Unified Parallel C (UPC) and Co-Array Fortran (CAF)" @ HLRS

begin
05.Jul.2018 08:30
end
06.Jul.2018 15:30
venue
HLRS Stuttgart

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.

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

begin
10.Jul.2018 08:30
end
13.Jul.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 "Introduction to parallel programming with MPI and OpenMP" @ JSC

begin
13.Aug.2018 09:00
end
17.Aug.2018 16:30
venue
JSC, Jülich

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.

This course is mainly intended for guest students at JSC. Up to 15 additional participants can take part in the course after consulting Benedikt Steinbusch at JSC

Training course "Iterative linear solvers and parallelization" @ LRZ

begin
10.Sep.2018 08:30
end
14.Sep.2018 15:30
venue
LRZ Garching

The focus of this compact course is on iterative and parallel solvers, the parallel programming models MPI and OpenMP, and the parallel middleware PETSc. 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)
  • the shared memory directives of OpenMP.

This course is organized by the University of Kassel, the high performance computing centre of Stuttgart (HLRS) and IAG.

Training course "Introduction to Computational Fluid Dynamics in HPC" @ HLRS

begin
10.Sep.2018 09:00
end
14.Sep.2018 15:30
venue
HLRS Stuttgart

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

PRACE Training course "Advanced Fortran Topics" @ LRZ

begin
17.Sep.2018 09:00
end
21.Sep.2018 18:00
venue
LRZ Garching

This course, partly a PRACE training event (to be confirmed), is targeted at scientists who wish to extend their knowledge of Fortran to cover advanced features of the language.

Topics covered include:

Days 1-3:

  • Best Practices

    • global objects and interfaces
    • abstract interfaces and the IMPORT statement
    • object based programming
  • Object-Oriented Programming

    • type extension, polymorphism and inheritance
    • binding of procedures to types and objects
    • generic type-bound procedures
    • abstract types and deferred bindings
  • IEEE features and floating point exceptions
  • Interoperability with C

    • mixed language programming patterns
  • Fortran 2003 I/O extensions

Days 4-5 (PRACE training course, support by PRACE still has to be approved):

  • OO Design Patterns: application of object-oriented programming

    • creation and destruction of objects
    • polymorphic objects and function arguments
    • interacting objects
    • dependency inversion: submodules and plugins
  • Coarrays

    • PGAS concepts and coarray basics
    • dynamic entities
    • advanced synchronization
    • parallel programming patterns
    • recent enhancements: collectives, events, teams, atomic subroutines
    • performance aspects of coarray programming

To consolidate the lecture material, each day's approximately 4 hours of lecture are complemented by 3 hours of hands-on sessions. The last 2 days of the course are a PRACE training event (tbc).

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

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

Servicemeu