Introductory Courses

HKHLR & CSC offers, every second month, a course session for researchers using, or interested to use, the Goethe-CSC or FUCHS in Frankfurt. The course sessions gives a cluster computing introduction, are hosted at the Goethe university in Frankfurt am Main and are delivered by HPC experts. The sessions are readily cluster-oriented, so knowledge of a programming language or of a scientific computing software is assumed. Training session are delivered in English. You can download a quick reference guide with a brief instruction how to work on the Goethe-CSC cluster?, facts about the cluster and a short reference of SLURM commands.


Under Downloads every course participant can download the workshop slides.

News: The next Cluster Computing Course is on March 20, 2020.

Everyone is invited to attend the course session. The participation of the introductory course is free.

If you wish to participate, please choose your course session and send an email to

The details about the HKHLR-Tutorials you will find here.

Course Sessions

ACRONYM Course Title
UNIX Introduction to UNIX
TOOLS Software Tools for UNIX Systems
GIT Introduction to GIT
SHELL Introduction to Shell Scripting
CLUSTER Cluster Computing Course
PYTHON Introduction to Python
CPP Introduction to Cpp
TOTALVIEW Introduction to TotalView Debugger
MATLABCluster Computing Course for Matlab Users

Introduction to UNIX

The first session introduces to UNIX, the most common operating system in HPC. Basic understanding of UNIX commands are necessary to take advantage of the clusters.



  • Introduction to UNIX (operating system)
  • File system and permissions
  • Elementary UNIX commands (cd, ls, cp, mv, etc.)
  • Basic shell usage (redirection, pipes)
  • File viewing (cat, more, less, etc.)
  • Process management (top, kill, etc.)
  • Task control (bg, fg)
  • Setting of environment variables
  • File system basic (du, df, etc.)
  • SSH protocol, password authentication, keys
  • Transferring and compressing files (scp, rsync, tar)
  • Getting Help (man, etc.)

Software Tools for UNIX Systems

After an introduction to UNIX, the following session explains different software tools for UNIX Systems.


  • Editor vim
  • Regular Expressions (grep, find, sed, awk)

Introduction to Version Control with GIT

In this lecture the distributed version control system Git will be presented. Git is very well established in Linux community and used for large projects, e.g. for kernel development.



  • Explanation of Key Concepts (Snapshots, Commits, Repositories)
  • Prerequisites (install, config, create repository)
  • Basic Commands (status, add, commit, clone, push, pull, remote)
  • Branching (create, rename, delete, switch, update & merge branches)
  • Typical Workflow Concepts for Branching
  • Dealing with Merge Conflicts
  • Cool Add-Ons (stash, log, gitignore, worktree)

Introduction to Shell Scripting

The third session shows how to write shell scripts, introduces you to the shell scripting commands and explains language constructs.



  • Introduction to Shell Scripting
  • Invoking the shell
  • Shell: Syntax, Variables, Arithmetic
  • Command History
  • Job Control
  • Language Constructs
    • Decision making (if condition)
    • Loops in shell scripts (for loop, while loop)
    • The case Statement
  • Functions
  • Shell Debugging

Cluster Computing Course

Cluster Facts

In this session we will present some interesting facts and characteristics of Goethe-HLR & FUCHS cluster.

  • Hardware resources
  • File system
  • Environments Modules
  • Partitions on the clusters
  • Architecture of the partitions

Batch Scheduling

SLURM is the job scheduler installed on Goethe-HLR & FUCHS cluster.

  • Introduction to SLURM (Simple Linux Utility for Resource Management)
  • Basic SLURM usage (SLURM commands)
  • Resource management
  • Job submission (sbatch, salloc + srun)
  • CPU management
  • Creating a parallel Job
  • HOW-TO-SLURM (login, submitting and monitoring of batch scripts examples)

Additionally teaches the session:

  • how to prepare a submission script
  • how to submit, monitor, and manage jobs on the clusters
  • theory about resource and CPU management

SPACK Package Manager

  • Basic Installation Guide
  • Configuration facts
  • Package Creation Tutorial
  • Environment Setup
  • Developer Workflow Guide

Introduction to C++

We will provide an introductory course in C++. This course aims to provide you with the basic concepts of C++, how to write and read programs written in C++.

At the end of this course you should also be able to understand the basic concept of any program written in a c-like language.


  • Introduction: C to C++
  • How to write a C++ program
  • C++ Syntax, Variables and Types
  • Pointer and Memory management
  • Object Oriented Programming with C++
  • The C++ Standard Library

Introduction to TotalView Debugger

This additional course will introduce you to the TotalView Debugger and teaches you how to efficiently debug code.

The lessons will be supplemented with some hands-on exercises based on what you learned in the C++ session.

Introduction to Python

We will provide an introductory course in Python. It will be the first session of the python series, that will be held in future.


  • Introduction: What is Python? Why Python?
  • The firsts steps
  • Basic types
  • Statements and syntax
  • Functions
  • Modules
  • Classes
  • Exceptions
public/workshops.txt · Last modified: 2020/12/06 22:22 by gerbes
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0