Matthias Diener

Research
CV
Publications

Research


Affinity-Based Thread and Data Mapping

Main Objectives

Mechanisms

SPCD: Inter-Thread Communication Detection (IPDPS 2013)

SPCD is a mechanism to detect inter-thread communication of shared-memory based applications. SPCD analyzes the addresses of page faults of the application to detect the communication. To increase the accuracy of the detection and to be able to detect a change in the communication pattern, SPCD introduces additional low-overhead page faults during the execution of the parallel application.

Information gathered from the page faults is used to generate a communication pattern during the execution of the parallel application. This pattern is analyzed by a mapping algorithm to create an optimized mapping of threads to cores.

SPCD can be found here.

CDSM: Inter-process and inter-thread communication detection (PARCO 2015)

CDSM is an extension of SPCD and supports detecting communication between different processes as well as between threads. In this way, the mapping can be performed for applications that use multi-process parallel programming models (such as MPI) and mixed programming models (such as MPI and OpenMP). Since processes use different virtual memory address spaces (at least on Linux), detection needs to be performed using the physical address.

CDSM can be found here.

kMAF: The kernel Memory Affinity Framework (PACT 2014, TPDS 2015)

kMAF extends the basic idea of SPCD and CDSM to the problem of data mapping in architectures that have a Non-Uniform Memory Access (NUMA) behavior.

kMAF can be found here.




High Performance Computing in the Cloud

Main Objectives