HPC, Big Data and Data Science

Open Source HPC Research Tools at the Institute for Scientific Computing

This talk gives an overview of the various open source HPC-related research projects at the Institute for Scientific Computing at TU Darmstadt. For each of the projects, we present an overview of the tool and its application from a user perspective. In addition, we cover more technical details, e.g., main programming language, build system or the general development stack. We have consolidated our efforts into a single GitHub space at https://github.com/tudasc.
MACH MACH (MPI Assertion Checking) is a Clang/LLVM-based static analysis tool to detect if one of the recently proposed MPI-assertions can be applied to an MPI communicator. A programmer may specify these assertions, such that the MPI Library can use more optimized operations, as some of the standard's constraints are relaxed in that case, e.g., strict message ordering. MACH statically checks whether the relaxation of some of the MPI standard's guarantees will cause errors in an application. The current version supports C and C++ applications, with the scope of the analysis being limited to one translation unit. The project is available under the Apache-2.0 License. PIRA The Performance Instrumentation Refinement Automation framework is a profiler built on top of Clang/LLVM and Score-P. It performs automatic instrumentation refinement for performance measurements of sequential and MPI-parallel applications. To reduce runtime overhead it constructs, fully automatically, filter lists for Score-P based on static source-code features and profile information. The project is available under BSD 3-clause license. qTESLA qTESLA is a post-quantum signature scheme. Hence, it is expected to be resistant against attacks performed by a quantum-computer. Its security is based on the ring learning with errors problem. Our implementation is based on the reference implementation in C but considerably increases the performance and the useability of qTESLA. The C-library is wrapped behind the Java Native Interface (JNI). Usage is further simplified by implementing the Java Cryptographic Architecture (JCA). This qTESLA version is integrated in the CogniCrypt framework to increase availability and usability. The project is available under the MIT License. SimAnMo The Simulated Annealing Modeler is a software tool to model the runtime behavior of programs depending on the size of one input parameter x. Its modeling procedure is based on runtime measurements for small values of x which result in acceptable runtimes and are so-called training points. SimAnMo supports modeling for programs with polynomial behavior, i.e., the program's runtime t(x) only grows in polynomial terms with the size of the input x. In addition, SimAnMo recognizes and models and exponential growth in the runtime. SimAnMo is highly configurable and parameterizable and automatically produces PDF reports of runtime behavior. The project is available under the MIT License. TypeART TypeART is a memory type sanitizer based on the LLVM compiler framework. In particular, TypeART ist used for type correctness checks of MPI communication buffers and checkpointing libraries. In both cases, data is passed as a type-less void buffer, and the user is required to specify its type manually. This is error prone. To avoid a mismatch of types during runtime, TypeART instruments memory allocations (heap, stack, global) and extracts their type information to enable runtime comparisons. Detected mismatches are reported at runtime. The project is available under BSD 3-clause license.

Additional information

Type devroom

More sessions

2/6/21
HPC, Big Data and Data Science
Ali Hajiabadi
D.hpc
With the end of Moore’s law, improving single-core processor performance can be extremely difficult to do in an energy-efficient manner. One alternative is to rethink conventional processor design methodologies and propose innovative ideas to unlock additional performance and efficiency. In an attempt to overcome these difficulties, we propose a compiler-informed non-speculative out-of-order commit processor, that attacks the limitations of in-order commit in current out-of-order cores to ...
2/6/21
HPC, Big Data and Data Science
Christian Kniep
D.hpc
The Container ecosystem spans from spawning a process into an isolated and constrained region of the kernel at bottom layer, building and distributing images just above to discussions on how to schedule a fleet of containers around the world at the very top. While the top layers get all the attention and buzz, this session will base-line the audiences' understanding of how to execute containers.
2/6/21
HPC, Big Data and Data Science
Nicolas Poggi
D.hpc
Over the years, there has been extensive efforts to improve Apache Spark SQL performance. This talk will introduce the new Adaptive Query Execution (AQE) framework and how it can automatically improve user query performance. AQE leverages query runtime statistics to dynamically guide Spark's execution as queries run along. The talk will go over the main features in AQE and provide examples on how it can improve on the previous static query plans. Finally, we'll present the significant ...
2/6/21
HPC, Big Data and Data Science
Mohammad Norouzi
D.hpc
This talk introduces DiscoPoP, a tool which identifies parallelization opportunities in sequential programs and suggests programmers how to parallelize them using OpenMP. The tool first identifies computational units which, in our terminology, are the atoms of parallelization. Then, it profiles memory accesses inside the source code to detect data dependencies. Mapping dependencies to CUs, we create a data structure which we call the program execution tree (PET). Further, DiscoPoP inspects the ...
2/6/21
HPC, Big Data and Data Science
Alaina Edwards
D.hpc
In this talk we explore two programming models for GPU accelerated computing in a Fortran application: OpenMP with target directives and CUDA. We use an example application Riemann problem, a common problem in fluid dynamics, as our testing ground. This example application is implemented in GenASiS, a code being developed for astrophysics simulations. While OpenMP and CUDA are supported on the Summit supercomputer, its successor, an exascale supercomputer Frontier, will support OpenMP and ...
2/6/21
HPC, Big Data and Data Science
Bob Dröge
D.hpc
The European Environment for Scientific Software Installations (EESSI, pronounced as “easy”) is a collaboration between different HPC sites and industry partners, with the common goal to set up a shared repository of scientific software installations that can be used on a variety of systems, regardless of which flavor/version of Linux distribution or processor architecture is used, or whether it is a full-size HPC cluster, a cloud environment or a personal workstation. The EESSI codebase ...
2/6/21
HPC, Big Data and Data Science
Robert McLay
D.hpc
XALT is a tool run on clusters to find out what programs and libraries are run. XALT uses the environment variable LD_PRELOAD to attach a shared library to execute code before and after main(). This means that the XALT shared library is a developer on every program run under linux. This shared library is part of every program run. This talk will discuss the various lessons about routine names and memory usage. Adding XALT to track container usage presents new issues because of what shared ...