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.

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

Synopsis

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

Requirements

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

Job Vacancies

DateiTypGröße
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” (www.sf40.de) 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.

Responsibilities

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

Requirements

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

DateiTypGröße
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

Requirements

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

DateiTypGröße
issm-hybridapproachPDF-File270kB
issm-rooflinemodelPDF-File270kB

Workplace

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