Open positions

Student Jobs

The Institute for Scientific Computing is looking for motivated students to support our group in its various tasks, e.g., software development or website maintenance. Our jobs offer a possibility to work on challenging and current research questions and gain experience in various fields of applications.

This page lists different job postings and open theses. Many of the job postings can also be done as a thesis. If you have an idea for a thesis in a topic relevant to our group, we are generally open to suggestions.

Please contact the relevant staff member if you are interested.

Note, this page will be continuously updated with new job offers and theses postings. For more information on a job vacancy, please click on the respective title.

Tutors for “Systemnahe & parallele Programmierung” (SPP)

Kontakt für Anfragen ist Alexander Hück

For Systemnahe & parallele Programmierung (SPP) in WT 2021/22 the Institute for Scientific Computing (Prof. Dr. Christian Bischof) is looking for tutors and tutoresses. Fluency in German is required.

Systemnahe & Parallele Programmierung ist eine Pflichtveranstaltung im Bachelorcurriculum Informatik und vermittelt die folgenden Inhalte:

  • Programmiersprachen für systemnahe Programmierung (C/C++)
  • Grundlagen paralleler Systeme
  • Parallele Architekturen, Multi- und Many-Core Systeme, Rechnernetze
  • Programmierparadigmen und Modelle für paralleles Rechnen
  • Parallele Algorithmen


Aufgabe der Tutor*innen ist die Betreuung von Übungen und drei vorlesungsbegleitenden Praktika. In den Praktika werden unterschiedliche Arten der Parallelisierung wie z.B. OpenMP, MPI und CUDA behandelt.

Studierende mit Interesse an diesen Themen und Freude an tutorieller Lehre sind herzlich eingeladen, sich als Tutor*in zu bewerben.


  • Kenntnisse in C/C++ und paralleler Programmierung
  • Deutsch (fließend, weil Vorlesungssprache)


  • Die Tätigkeit kann gegen Bezahlung oder als Praktikum in der Lehre ausgeübt werden
  • Die Arbeitszeit beträgt ca. acht Stunden pro Woche
  • Die Tätigkeit erstreckt sich von Anfang Oktober 2021 bis Ende Februar 2022

Sonstige Informationen

Bei Interesse schicken Sie bitte eine kurze E-Mail mit Informationen über Ihre Vorkenntnisse sowie – falls vorhanden – Nachweise erbrachter Leistungen im Themenbereich an den unten genannten Ansprechpartner.

Ansprechpartner: Alexander Hück

Tools for Algorithmic Differentiation

Word cloud of topics w.r.t. AD efforts @ SC
Word cloud of topics w.r.t. AD efforts @ SC

Contact for enquiries is Alexander Hück


We are interested in students who want to help develop tools powered by compiler technology to assist with the application of algorithmic differentiation. This pertains to, e.g., (1) static code analysis, (2) memory tracking for correctness checks, or (3) source transformations.

You will assist in developing (compiler) tools, performance models and benchmarks to achieve these goals. Also, please take a look at the general overview document for further information.

What is Algorithmic Differentiation?

Algorithmic Differentiation (AD, see is a set of techniques based on the mechanical application of the chain rule to obtain derivatives of a function given as a computer program. AD exploits the fact that every computer program, no matter how complicated, executes a sequence of elementary arithmetic operations such as additions or elementary functions such as cos. To achieve this in C++, the built-in type double is replaced by a user-defined type, which overloads all required operators. The new type calculates the same values as before and, also, calculates the derivative.

Areas of work

In general, the AD tool development of the SC group is focused on

  • applying an existing AD tool to a code base,
  • developing tools to support the application of AD (see the tool OO-Lint),
  • correctness verifications (see the tool TypeART) of distributed AD-related MPI communication,
  • performance analysis to enable the efficient combined usage of different AD techniques.


  • Strong fundamentals w.r.t. modern C++
  • Knowledge of the CMake build system
  • Experience with the Clang and LLVM compiler framework

Job Vacancies

Compiler tool development for statement mergingPDF-File93kB
Software maintenance of a C++ linter toolPDF-File95kB

Tools for High-Performance Computing

Contact for enquiries is Jan Lehr ()

General Overview

The LOEWE project “Software-Factory 4.0” ( started in January 2018 with the goal to speed up the process of adapting high-performance computing applications to new hardware generations. Our group develops a tool that reduces existing large scientific applications to representative, so-called, Mini-Apps. These can be used to analyze the application's behavior more easily. The insight gathered can then be used to improve the original application. Within this project we are looking for very good Bachelor or Master students to support us as HiWi.


Within the project, you carry out different tasks, depending on your profile. These tasks include but are not limited to:

  • Software development in Python and C++
    • Implementation of new features
    • Improvements to the test suite
    • Improvements to the general usability of the tools
  • Carrying out benchmarks and tests
    • Evaluating the developed methods to real-world scientific applications
    • Validating the automatically generated insights into application performance


Besides being motivated and dependable, you should show at least one of:

  • Proficiency in C++ and/or Python
  • Knowledge of algorithms and data structures (specifically graphs)
  • Proficiency in Clang/LLVM (e.g. from attending our practical lecture “Compiler Tooling”)
  • Proficiency in benchmarking (e.g. by attending our seminar “Performance Engineering”)
  • Knowledge of OpenMP and/or MPI

Job Vacancies

Binary Analysis for Instrumentation Influence AssessmentPDF-File105kB
Software Development for Compiler-Based InstrumentationPDF-File106kB

Performance engineering in climate research software (Ice Sheet System Model)

Contact for enquiries is Yannic Fischler ( )

General Overview

You are interested in numeric Simulations, parallel computing or nodelevel performance engineering and you like to apply your skills in Performance Analyse, OpenMP, MPI oder CUDA on softare for climate research. Then you are exactly the right person to support us in our current project. You get your own task that you work on during your work or your final.

Areas of work

The following tasks exist in the project (other tasks are possible):

  • Performance analysis and modelling of individual cores
    • node-level performance (roofline model)
    • MPI communication (scaling)
  • Testing of the current measurement tools
    • Apply current tools
    • Refinement of filter lists
    • Testing of new tools
  • Software development C, C++ and CUDA
    • Performance optimization using compiler, code optimization or new other technologies (e.g. OpenMP, CUDA)
    • Parallelization using OpenMP or OpenACC


Besides being motivated and dependable, you should show at least one of:

  • Proficiency in C and C++
  • Knowledge of MPI and OpenMP or CUDA
  • Knowledge of algorithms and data structures (especially sparse matrices and solver)
  • Erfahrung in der Durchführung und Auswertung von Performanceanalysen
  • Experience in performance analysis (e.g. by attending our seminar „Performance Engineering“)

Job Vacancies


HPC Solutions to Post-Quantum Crypto Schemes

Contact for enquiries is Giang Nam Nguyen ( )

General Overview

The need for quantum-resistant cryptosystems arose from the fact that the quan- tum supremacy, which is demonstrated by the well-known Shor algorithm for factorization, can be destructively used to break the current public key system like RSA or ECDSA.

Areas of work

Being involved as a research project within CROSSING, our research focuses on:

  • Lattice-based blind signature schemes
    • In this context, we mainly focus on two schemes blaze and blazePlus [2]. The primary task is to refactor an existing C/C++ implementation of blazePlus in terms of adapting new parameters. Other schemes, which are being developed and share com- mon building blocks with blazePlus, need also to be implemented. Upon achieving working implementations, another task is to optimize them on current CPU architectures.
  • Cryptanalysis in isogeny-based cryptography
    • The hard problem which underlies this type of PQC is the CSSI problem. The goal is to achieve a parallel solver utilizing GPUs as accelerators for compute-intensive parts of the algorithm. Thus, you will be involved in the development of a solver primarily targeting the host side (CPU). Furthermore, another task is to implement the isogeny computation, which is the hotspot of the solver, by employing the existing libraries for multi-precision integer arithmetic on GPUs.


Besides being motivated and dependable, you should show at least one of:

  • Successfully passed the course Computersystemsicherheit
  • Good programming skills in C/C++
  • English for reading literature and writing documentation
  • Working time may vary between 40-60 hours per month

Job Vacancy



The Institute for Scientific Computing offers students a dedicated work room with a view of the conference center Darmstadtium and the Darmstadt Schloss.

In total five workplaces are available, each with a monitor for your notebook.

Open Theses