LIKWID – Like I Knew What I’m Doing

LIKWID is a tool suite for performance-oriented programmers and performance analysts for x86, ARM and POWER processors and Nvidia accelerators running under the Linux OS. The suite comprises a library and a number of command line tools for system topology exploration, controlling process and thread affinity, assembly-based micro-benchmarking and hardware performance counter measurements.

Webpage at RRZE:


Main documentation:


LAIK is a lightweight library that helps HPC programmers to simplify and improve the flexibility of the code parts responsible for communication between parallel processes of an HPC application. 

The benefit of LAIK is a separation of concerns, by requiring the programmer to think about data and work decomposition as a partitioning of abstract index spaces. Communication required for data structures is specified as transition between access phases to the abstract index spaces.
MLEM: Maximum Liklihood Expectation Maximization for Small PET Devices

MLEM is an algorithms for image reconstruction of small PET Devices. We provide a various range of implementations optimized for different platforms, such as GPU, Xeon Phi, shared memory, and distributed memory systems.
QMPI – The Next Generation Profiling Interface for MPI

As we approach exascale and start planning for beyond, the rising complexity of systems and applications demands new monitoring, analysis, and optimization approaches. This requires close coordination with the parallel programming system used, which for HPC in most cases includes MPI, the Message Passing Interface. While MPI provides comprehensive tool support in the form of the MPI Profiling interface, PMPI, which has inspired a generation of tools, it is not sufficient for the new arising challenges. In particular, it does not support modern software design principles nor the composition of multiple monitoring solutions from multiple agents or sources. We approach these gaps with a new interface called QMPI, a possible successor to PMPI. This software projects implements a prototype of QMPI, available for any MPI platform.

A library for application-controlled rewriting of functions at binary level, allowing performance improvements through specialization on runtime configuration.

Maintainer: Josef Weidendorfer (LRZ), Alexis Engelke (TUM)


This library implements application-guided rewriting of binary functions at runtime. Binary functions can be optimized and specialized based on runtime information. In contrast to transparent binary optimization, only selected binary functions are rewritten. No metadata
(e.g. debug information) is required.

Maintainer: David Hildenbrand (TUM, Red Hat)


A lifter from x86-64 machine code to LLVM-IR. The generated code can be compiled and executed, and the lifting process has special emphasis on runtime performance of the new code.

Maintainer: Alexis Engelke (TUM)


A fast and very small (45 kiB) x86(-64) decoder, with focus on correctness, performance, having zero* dependencies. (* instruction formatter requires snprintf.)

Maintainer: Alexis Engelke (TUM)