As part of our research, we design and implement parallel programming tools, which we make freely available under open-source licenses.

 

DiscoPoP

DiscoPoP helps software developers parallelize their programs with threads. It discovers potential parallelism in a sequential program and makes recommendations on how to exploit it using OpenMP. Parallelism in a computer program is the ability to run it faster by using more than one processor at the same time. This becomes particularly relevant when there are no other optimization options left such as using a faster processor or algorithm. Given that technical constraints, in particular power consumption, limit the speed of individual processors, parallelism is a powerful instrument to boost performance.

Learn more

 

ElastiSim

Workload managers (or batch systems) schedule jobs and provide resources in distributed computing systems. Based on the objective, batch systems aim to maximize system utilization and reduce job completion times. ElastiSim is a batch-system simulator supporting the evaluation of scheduling algorithms for malleable workloads. In contrast to rigid jobs, malleable jobs can dynamically adapt to resource reconfigurations during runtime and are, therefore, of particular interest for schedulers targeting the optimization of system throughput and efficiency. ElastiSim simulates jobs, applications, the platform, and the scheduling algorithm to provide the user with detailed results to discover optimization potential, expediting the development of novel schedulers.

Learn more

 

Extra-P

Extra-P helps developers analyze the scaling behavior of parallel programs. For this purpose, it learns performance models automatically from a small set of performance measurements. A performance model is a formula that expresses a performance metric of interest such as execution time as a function of one or more execution parameters such as the size of the input problem or the number of processors.

Learn more

 

Extra-P can plot performance models for different parts of the program.

 

The development of Extra-P is carried out in the framework of the Virtual Institute – High Productivity Supercomputing, a community organization for the development and promotion of programming tools designed for high-performance computing.

 

RELeARN

The connectivity of the brain is constantly changing. Even in the mature brain, new connections between neurons are formed, and existing ones are deleted, a phenomenon called structural plasticity. These network dynamics are crucial to understanding learning, memory, and diseases such as Alzheimer’s. They may also allow the effects of lesions, such as stroke or surgery, to be more accurately predicted. However, the high demand for computational power makes the simulation of structural plasticity extremely challenging. Naively, one needs to consider all pairs of neurons in every step, resulting in an effort that grows quadratically with the number of neurons. The RELeARN code addresses this challenge via an approximation, reducing the required computations from O(n2) to O(n log n). Using it, we could conduct simulations with up to one billion neurons. RELeARN is implemented in C++ and parallelized with MPI and OpenMP, making it suitable for almost every HPC system.

Learn more

 

iStock.com/whitehoune