Demo Data from EDBT 2026 / reviewers in the wild / expert
Matthias Diener
dblp:09/8557
· DBLP profile ↗
39ranked-venue papers
10as first author
1since 2021 · last 2023
0000-0002-9064-7806ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 21 · 8 first-author · 1 since 2021Software engineering, systems software and programming languages · 1Applied, interdisciplinary, general and emerging computing · 1
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 53% Memory systems · 40% Performance modeling and evaluation · 8% |
Topics — the 7 heaviest of 8, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing › task allocation
thread and data mapping |
0.5 | 2 | 2016 | Kernel-Based Thread and Data Mapping for Improved Memory Affinity · IEEE Trans. Parallel Distributed Syst. 2016 Hardware-Assisted Thread and Data Mapping in Hierarchical Multicore Architectures · ACM Trans. Archit. Code Optim. 2016 |
Memory systems
data locality |
0.2 | 1 | 2016 | Hardware-Assisted Thread and Data Mapping in Hierarchical Multicore Architectures · ACM Trans. Archit. Code Optim. 2016 |
Parallel and multicore computing › parallel scheduling
NUMA-aware scheduling |
0.2 | 1 | 2016 | Kernel-Based Thread and Data Mapping for Improved Memory Affinity · IEEE Trans. Parallel Distributed Syst. 2016 |
Memory systems › virtual memory management
page mapping |
0.2 | 1 | 2016 | Hardware-Assisted Thread and Data Mapping in Hierarchical Multicore Architectures · ACM Trans. Archit. Code Optim. 2016 |
Parallel and multicore computing › parallel computing
parallel application performance |
0.2 | 1 | 2016 | Kernel-Based Thread and Data Mapping for Improved Memory Affinity · IEEE Trans. Parallel Distributed Syst. 2016 |
Memory systems › memory management › virtual memory › address translation
TLB |
0.2 | 1 | 2016 | Hardware-Assisted Thread and Data Mapping in Hierarchical Multicore Architectures · ACM Trans. Archit. Code Optim. 2016 |
Performance modeling and evaluation
workload characterization |
0.1 | 1 | 2016 | Kernel-Based Thread and Data Mapping for Improved Memory Affinity · IEEE Trans. Parallel Distributed Syst. 2016 |
Methods — techniques the papers use, named apart from their topics
page fault tracing · 0.2intense pages mapping · 0.2integrated thread and data mapping · 0.2TLB-based access behavior analysis · 0.2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Mitigating execution unit contention in parallel applications using instruction-aware mappingabstractSummary Parallel applications running on simultaneous multithreading (SMT) processors naturally compete for execution units when their threads are mapped to the same core. This issue is further aggravated when such threads execute similar instructions that stress the same execution unit type, making their execution to behave very similarly as if the threads were running sequentially. This, in turn, will lead to performance degradation and underutilization of hardware resources. This work proposes a completely transparent framework (no modifications to the source code are necessary) that automatically maps threads of multiple parallel applications on SMT processors. The framework focuses on improving performance by mitigating the contention on execution units, considering each thread's instruction types, which are detected at runtime by our framework. Results show performance gains of 21% (geometric mean), compared to the native scheduler of the operating system. Matheus S. Serpa, Eduardo Henrique Molina da Cruz, Matthias Diener, Arthur Francisco Lorenzon, Antonio Carlos Schneider Beck, Philippe Olivier Alexandre Navaux |
Concurr. Comput. Pract. Exp. | 3 |
| 2020 | Thread Affinity in Software Transactional MemoryabstractSoftware Transactional Memory (STM) is an abstraction to synchronize accesses to shared resources. It simplifies parallel programming by replacing the use of explicit locks and synchronization mechanisms with atomic blocks. A wellknown approach to improve performance of STM applications is to serialize transactions to avoid conflicts using schedulers and mapping algorithms. However, in current architectures with complex memory hierarchies it is also important to consider where the memory of the program is allocated and how it is accessed. An important technique for improving memory locality is to map threads and data of an application based on their memory access behavior. This technique is called sharing-aware mapping. In this paper, we introduce a method to detect sharing behavior directly inside the STM library by tracking and analyzing how threads perform STM operations. This information is then used to perform an optimized mapping of the application's threads to cores in order to improve the efficiency of STM operations. Experimental results with the STAMP benchmarks show performance gains of up to 9.7x (1.4x on average), and a reduction of the number of aborts of up to 8.5x, compared to the Linux scheduler. Douglas Pereira Pasqualin, Matthias Diener, André Rauber Du Bois, Maurício L. Pilla |
ISPDC | 2 |
| 2020 | Online Sharing-Aware Thread Mapping in Software Transactional MemoryabstractSoftware Transactional Memory (STM) is an alternative abstraction to synchronize processes in parallel programming. One advantage is simplicity since it is possible to replace the use of explicit locks with atomic blocks. Regarding STM performance, many studies already have been made focusing on reducing the number of aborts. However, in current multicore architectures with complex memory hierarchies, it is also important to consider where the memory of a program is allocated and how it is accessed. This paper proposes the use of a technique called sharing-aware mapping, which maps threads to cores of an application based on their memory access behavior, to achieve better performance in STM systems. We introduce STMap, an online, low overhead mechanism to detect the sharing behavior and perform the mapping directly inside the STM library, by tracking and analyzing how threads perform STM operations. In experiments with the STAMP benchmark suite and synthetic benchmarks, STMap shows performance gains of up to 77% on a Xeon system (17.5% on average) and 85% on an Opteron system (9.1% on average), compared to the Linux scheduler. Douglas Pereira Pasqualin, Matthias Diener, André Rauber Du Bois, Maurício L. Pilla |
SBAC-PAD | 2 |
| 2020 | Heterogeneous computing with OpenMP and HydraabstractSummary High‐performance computing relies on accelerators (such as GPGPUs) to achieve fast execution of scientific applications. Traditionally, these accelerators have been programmed with specialized languages, such as CUDA or OpenCL. In recent years, OpenMP emerged as a promising alternative for supporting accelerators, providing advantages such as maintaining a single code base for the host and different accelerator types and providing a simple way to extend support for accelerators to existing application codes. Efficiently using this support requires solving several challenges, related to performance, work partitioning, and concurrent execution on multiple device types. In this article, we discuss our experiences with using OpenMP for accelerators and present performance guidelines. We also introduce a library, Hydra, that addresses several of the challenges of using OpenMP for such devices. We apply Hydra to a scientific application, PlasCom2, that has not previously been able to use accelerators. Experiments on three architectures show that Hydra results in performance gains of up to 10× compared with CPU‐only execution. Concurrent execution on the host and GPU resulted in additional gains of up to 20% compared to running on the GPU only. Matthias Diener, Laxmikant V. Kalé, Daniel J. Bodony |
Concurr. Comput. Pract. Exp. | 1 |
| 2019 | Exploring Instance Heterogeneity in Public Cloud Providers for HPC Applications
Eduardo Roloff, Matthias Diener, Luciano Paschoal Gaspary, Philippe Olivier Alexandre Navaux |
CLOSER | 2 |
| 2019 | Multi-phased Task Placement of HPC Applications in the CloudabstractMany high-performance computing applications present different phases during their execution. Nevertheless, thread and process placement techniques usually provide static-only methods to improve the data and thread locality. Similarly, cloud computing datacenters may present variations in terms of latency over the execution time of applications. To overcome these two problems, in this paper we analyze scientific applications that have different communication patterns along with its execution. For such applications, we evaluate the performance variation of traditional static placement techniques to our new approach that uses code annotations to perform the new placement of tasks, matching also the variations on network performance of Virtual Machines (VMs) during the run time. For our experiments, we use applications from the NAS parallel benchmark suite, running them on two VM sizes with 32 and 64 cores respectively, from the same family of instance types at the West US datacenter from Azure. Results show that compared to traditional static process mapping, our multi-phased placement mechanism achieves average performance gains of 13.57% up to 28.32% on the evaluated scenarios. These results show that there is an opportunity to improve performance by correctly identifying the network variations and reacting by generating a new task-to-instance mapping. Emmanuell D. Carreño, Marco A. Z. Alves, Matthias Diener, Eduardo Roloff, Philippe Olivier Alexandre Navaux |
ISPDC | 3 |
| 2019 | Memory Performance and Bottlenecks in Multicore and GPU ArchitecturesabstractNowadays, there are several different architectures available not only for the industry, but also for normal consumers. Traditional multicore processors, GPUs, accelerators such as the Sunway SW26010, or even energy efficiency-driven processors such as the ARM family, present very different architectural characteristics. This wide range of characteristics presents a challenge for the developers of applications. Developers must deal with different instruction sets, memory hierarchies, or even different programming paradigms when programming for these architectures. Therefore, the same application can perform well when executing on one architecture, but poorly on another architecture. To optimize an application, it is important to have a deep understanding of how it behaves on different architectures. The related work in this area mostly focuses on a limited analysis encompassing execution time and energy. In this paper, we perform a detailed investigation on the impact of the memory subsystem of different architectures, which is one of the most important aspects to be considered. For this study, we performed experiments in the Broadwell CPU and Pascal GPU, using applications from the Rodinia benchmark suite. In this way, we were able to understand why an application performs well on one architecture and poorly on others. Matheus S. Serpa, Francis B. Moreira 0001, Philippe Olivier Alexandre Navaux, Eduardo Henrique Molina da Cruz, Matthias Diener, Dalvan Griebler, Luiz Gustavo Fernandes |
PDP | 5 |
| 2019 | Managing Power Demand and Load Imbalance to Save Energy on Systems with Heterogeneous CPU SpeedsabstractDifferent simulations of real problems have been executed in High Performance Computing systems. However, the power consumption of these systems is an increasing concern once more energy are consumed to large simulations. In this context, load balancers emerge as a promising alternative for supporting the computational science methods. In response to this challenge, we developed a new heterogeneous energy-aware load balancer called H-ENERGYLB to reduce the average power demand of systems with heterogeneous processors and save energy when scientific applications with imbalanced load are executed. Our new load balancing strategy combines dynamic load balancing with DVFS techniques to mitigate the imbalanced workloads in order to reduce the clock frequency of underloaded computing cores which experience some residual imbalance even after tasks are remapped. Experiments with three applications on two different heterogeneous architectures show that H-ENERGYLB results in power reductions of 7.14% in average with the energy saving of 36.6% in average compared to others load balancers. Edson L. Padoin, Matthias Diener, Philippe Olivier Alexandre Navaux, Jean-François Méhaut |
SBAC-PAD | 2 |
| 2018 | Multi-Level Load Balancing with an Integrated Runtime ApproachabstractThe recent trend of increasing numbers of cores per chip has resulted in vast amounts of on-node parallelism. These high core counts result in hardware variability that introduces imbalance. Applications are also becoming more complex, re-sulting in dynamic load imbalance. Load imbalance of any kind can result in loss of performance and system utilization. We address the challenge of handling both transient and persistent load imbalances while maintaining locality with low overhead. In this paper, we propose an integrated runtime system that combines the Charm++ distributed programming model with concurrent tasks to mitigate load imbalances within and across shared memory address spaces. It utilizes a periodic assignment of work to cores based on load measurement, in combination with user created tasks to handle load imbalance. We integrate OpenMP with Charm++ to enable creation of potential tasks via OpenMP's parallel loop construct. This is also available to MPI applications through the Adaptive MPI implementation. We demonstrate the benefits of our work on three applications. We show improvements of Lassen by 29.6% on Cori and 46.5% on Theta. We also demonstrate the benefits on a Charm++ application, ChaNGa by 25.7% on Theta, as well as an MPI proxy application, Kripke, using Adaptive MPI. Seonmyeong Bak, Harshitha Menon, Sam White, Matthias Diener, Laxmikant V. Kalé |
CCGrid | 4 |
| 2018 | Exploiting Load Imbalance Patterns for Heterogeneous Cloud Computing Platforms
Eduardo Roloff, Matthias Diener, Luciano Paschoal Gaspary, Philippe Olivier Alexandre Navaux |
CLOSER | 2 |
| 2018 | Improving Communication and Load Balancing with Thread Mapping in Manycore SystemsabstractCommunication and load balancing have a significant impact on the performance of parallel applications and have been the subject of extensive research in multicore architectures. Thread mapping has been one of the solutions adopted in multicore architectures to address both communication and load balancing. However, the impact of such issues on more recently introduced manycore architectures is still unknown. Most related work on manycore architectures focus on execution time and idleness information for scheduling decisions. In this paper, we improve the state of the art by performing a very detailed analysis of the impact of thread mapping on communication and load balancing in two manycore systems from Intel, namely Knights Corner and Knights Landing. We observed that the widely used metric of CPU time provides very inaccurate information for load balancing. We also evaluated the usage of thread mapping based on the communication and load information of the applications to improve the performance of manycore systems. Eduardo Henrique Molina da Cruz, Matthias Diener, Matheus S. Serpa, Philippe Olivier Alexandre Navaux, Laércio Lima Pilla, Israel Koren |
PDP | 2 |
| 2017 | Leveraging Cloud Heterogeneity for Cost-Efficient Execution of Parallel Applications
Eduardo Roloff, Matthias Diener, Emmanuell D. Carreño, Luciano Paschoal Gaspary, Philippe Olivier Alexandre Navaux |
Euro-Par | 2 |
| 2017 | HPC Application Performance and Cost Efficiency in the CloudabstractUnlike traditional cluster systems, the Cloud Computing paradigm provides access to an execution environment without upfront investments in hardware and facilities. Due to the elasticity and the pay-per-use billing model, it is possible to configure experimental environments with minimal idle costs. In this paper, we perform an extensive evaluation of the major commercial public clouds. Our results show that performance degradation due to virtualization and other cloud overheads is insignificant. However, the network interconnection in the cloud still remains a large bottleneck for HPC application performance. Eduardo Roloff, Matthias Diener, Luciano Paschoal Gaspary, Philippe Olivier Alexandre Navaux |
PDP | 2 |
| 2016 | Automatic Communication Optimization of Parallel Applications in Public CloudsabstractOne of the most important aspects that influences the performance of parallel applications is the speed of communication between their tasks. To optimize communication, tasks that exchange lots of data should be mapped to processing units that have a high network performance. This technique is called communication-aware task mapping and requires detailed information about the underlying network topology for an accurate mapping. Previous work on task mapping focuses on network clusters or shared memory architectures, in which the topology can be determined directly from the hardware environment. Cloud computing adds significant challenges to task mapping, since information about network topologies is not available to end users. Furthermore, the communication performance might change due to external factors, such as different usage patterns of other users. In this paper, we present a novel solution to perform communication-aware task mapping in the context of commercial cloud environments with multiple instances. Our proposal consists of a short profiling phase to discover the network topology and speed between cloud instances. The profiling can be executed before each application start as it causes only a negligible overhead. This information is then used together with the communication pattern of the parallel application to group tasks based on the amount of communication and to map groups with a lot of communication between them to cloud instances with a high network performance. In this way, application performance is increased, and data traffic between instances is reduced. We evaluated our proposal in a public cloud with a variety of MPI-based parallel benchmarks from the HPC domain, as well as a large scientific application. In the experiments, we observed substantial performance improvements (up to 11 times faster) compared to the default scheduling policies. Emmanuell D. Carreño, Matthias Diener, Eduardo Henrique Molina da Cruz, Philippe Olivier Alexandre Navaux |
CCGrid | 2 |
| 2016 | Large vector extensions inside the HMC
Marco A. Z. Alves, Matthias Diener, Paulo C. Santos 0001, Luigi Carro |
DATE | 2 |
| 2016 | A Sharing-Aware Memory Management Unit for Online Mapping in Multi-core Architectures
Eduardo Henrique Molina da Cruz, Matthias Diener, Laércio Lima Pilla, Philippe Olivier Alexandre Navaux |
Euro-Par | 2 |
| 2016 | Communication in Shared Memory: Concepts, Definitions, and Efficient DetectionabstractOptimizing the communication behavior of parallel applications has emerged as an important topic in parallel processing. In shared memory architectures, threads communicate implicitly through memory accesses to shared memory areas. The communication behavior can be improved by mapping threads that communicate a lot to processing units that are close to each other in the memory hierarchy, such that they can benefit from shared caches and faster interconnections. An important aspect of such a communication-aware thread mapping is the accurate and efficient detection of communication in shared memory. Previous work used impromptu definitions, without an evaluation of the complexities of different communication types. In this paper, we perform an in-depth, systematic evaluation of communication in shared memory, focusing on its architectural effects. We present an efficient way to detect communication, which is orders of magnitude faster than a cache simulator, while maintaining a high accuracy. Matthias Diener, Eduardo Henrique Molina da Cruz, Marco A. Z. Alves, Philippe Olivier Alexandre Navaux |
PDP | 1 |
| 2016 | Analyzing and Improving Memory Access Patterns of Large Irregular Applications on NUMA MachinesabstractImproving the memory access behavior of parallel applications is one of the most important challenges in high-performance computing. Non-Uniform Memory Access (NUMA) architectures pose particular challenges in this context: they contain multiple memory controllers and the selection of a controller to serve a page request influences the overall locality and balance of memory accesses, which in turn affect performance. In this paper, we analyze and improve the memory access pattern and overall memory usage of large-scale irregular applications on NUMA machines. We selected HashSieve, a very important algorithm in the context of lattice-based cryptography, as a representative example, due to (1) its extremely irregular memory pattern, (2) large memory requirements and (3) unsuitability to other computer architectures, such as GPUs. We optimize HashSieve with a variety of techniques, focusing both on the algorithm itself as well as the mapping of memory pages to NUMA nodes, achieving a speedup of over 2x. Artur Mariano, Matthias Diener, Christian H. Bischof, Philippe Olivier Alexandre Navaux |
PDP | 2 |
| 2016 | Exploring Cache Size and Core Count Tradeoffs in Systems with Reduced Memory Access LatencyabstractOne of the main challenges for computer architects is how to hide the high average memory access latency from the processor. In this context, Hybrid Memory Cubes (HMCs) can provide substantial energy and bandwidth improvements compared to traditional memory organizations. However, it is not clear how this reduced average memory access latency will impact the LLC. For applications with high cache miss ratios, the latency to search for the data inside the cache memory will impact negatively on the performance. The importance of this overhead depends on the memory access latency. In this paper, we present an evaluation of the L3 cache importance on a high performance processor using HMC also exploring chip area tradeoffs between the cache size and number of processor cores. We show that the high bandwidth provided by HMC memories can eliminate the need for L3 caches, removing hardware and making room for more processing power. Our evaluations show that performance increased 37% and the EDP improved 12% while maintaining the same original chip area in a wide range of parallel applications, when compared to DDR3 memories. Paulo C. Santos 0001, Marco A. Z. Alves, Matthias Diener, Luigi Carro, Philippe Olivier Alexandre Navaux |
PDP | 3 |
| 2016 | LAPT: A locality-aware page table for thread and data mapping
Eduardo Henrique Molina da Cruz, Matthias Diener, Marco A. Z. Alves, Laércio Lima Pilla, Philippe Olivier Alexandre Navaux |
Parallel Comput. | 2 |
| 2016 | A dynamic block-level execution profiler
Francis B. Moreira 0001, Marco A. Z. Alves, Matthias Diener, Philippe Olivier Alexandre Navaux, Israel Koren |
Parallel Comput. | 3 |
| 2016 | Hardware-Assisted Thread and Data Mapping in Hierarchical Multicore ArchitecturesabstractThe performance and energy efficiency of modern architectures depend on memory locality, which can be improved by thread and data mappings considering the memory access behavior of parallel applications. In this article, we propose intense pages mapping, a mechanism that analyzes the memory access behavior using information about the time the entry of each page resides in the translation lookaside buffer. It provides accurate information with a very low overhead. We present experimental results with simulation and real machines, with average performance improvements of 13.7% and energy savings of 4.4%, which come from reductions in cache misses and interconnection traffic. Eduardo Henrique Molina da Cruz, Matthias Diener, Laércio Lima Pilla, Philippe Olivier Alexandre Navaux |
ACM Trans. Archit. Code Optim. | 2 |
| 2016 | Kernel-Based Thread and Data Mapping for Improved Memory AffinityabstractReducing the cost of memory accesses, both in terms of performance and energy consumption, is a major challenge in shared-memory architectures. Modern systems have deep and complex memory hierarchies with multiple cache levels and memory controllers, leading to a Non-Uniform Memory Access (NUMA) behavior. In such systems, there are two ways to improve the memory affinity: First, by mapping threads that share data to cores with a shared cache, cache usage and communication performance are optimized. Second, by mapping memory pages to memory controllers that perform the most accesses to them and are not overloaded, the average cost of accesses is reduced. We call these two techniques thread mapping and data mapping, respectively. Thread and data mapping should be performed in an integrated way to achieve a compounding effect that results in higher improvements overall. Previous work in this area requires expensive tracing operations to perform the mapping, or require changes to the hardware or to the parallel application. In this paper, we propose kMAF, a mechanism that performs integrated thread and data mapping in the kernel. kMAF uses the page faults of parallel applications to characterize their memory access behavior and performs the mapping during the execution of the application based on the detected behavior. In an evaluation with a large set of parallel benchmarks executing on three NUMA architectures, kMAF achieved substantial performance and energy efficiency improvements, close to an Oracle-based mechanism and significantly higher than previous proposals. Matthias Diener, Eduardo Henrique Molina da Cruz, Marco A. Z. Alves, Philippe Olivier Alexandre Navaux, Anselm Busse, Hans-Ulrich Heiß |
IEEE Trans. Parallel Distributed Syst. | 1 |
| 2015 | Saving memory movements through vector processing in the DRAMabstractDespite the ability of modern processors to execute a variety of algorithms efficiently through instructions based on registers with ever-increasing widths, some applications present poor performance due to the limited interconnection bandwidth between main memory and processing units. Near-data processing has started to gain acceptance as an accelerator device due to the technology constraints and high costs associated with data transfer. However, previous approaches to near-data computing do not provide general-purpose processing, or require large amounts of logic and do not fully use the potential of the DRAM devices. These issues limited its wide adoption. In this paper, we present the Memory Vector Extensions (MVX), which implement vector instructions directly inside the DRAM devices, therefore avoiding data movement between memory and processing units, while requiring a lower amount of logic than previous approaches. MVX is able to obtain up to 211× increase in performance for application kernels with a high spatial locality and a low temporal locality. Comparing to an embedded processor with 8 cores and 2 memory channels that supports AVX-512 instructions, MVX performs 24× faster on average for three well known algorithms. Marco A. Z. Alves, Paulo C. Santos 0001, Francis B. Moreira 0001, Matthias Diener, Luigi Carro |
CASES | 4 |
| 2015 | Locality and Balance for Communication-Aware Thread Mapping in Multicore Systems
Matthias Diener, Eduardo Henrique Molina da Cruz, Marco A. Z. Alves, Mohammad Shadi Al Hakeem, Philippe Olivier Alexandre Navaux, Hans-Ulrich Heiß |
Euro-Par | 1 |
| 2015 | An Efficient Algorithm for Communication-Based Task MappingabstractThe communication between tasks of a parallel application is an important characteristic to consider when mapping tasks to computing cores due to possible differences in communication performance. Within a machine, performance differences are introduced by the memory hierarchy, in which cache memories can be shared by groups of cores and intra-chip interconnections are faster than inter-chip interconnections. In cluster and grid systems, the network imposes an additional communication latency. By mapping tasks that communicate to cores nearby on the memory hierarchy, or to the same nodes in clusters or grids, the communication of parallel applications is optimized, leading to increased performance and energy efficiency. In the task mapping context, one of the most important aspects to be considered is the mapping algorithm, as it determines the improvements that can be achieved. Since the problem of finding the best mapping is NP-Hard, heuristics must be employed to find an approximate solution in feasible time. In this paper, we present Eager Map, a new algorithm to perform communication-based mapping that is based on a greedy grouping strategy applied hierarchically. Experimental evaluation indicates that the execution time of our algorithm is 10 times faster than the state-of-the-art, and presents higher performance improvements. Due to its low execution time and high stability, Eager Map is also suitable for online task mapping, where tasks are migrated during execution. Eduardo Henrique Molina da Cruz, Matthias Diener, Laércio Lima Pilla, Philippe Olivier Alexandre Navaux |
PDP | 2 |
| 2015 | Locality vs. Balance: Exploring Data Mapping Policies on NUMA SystemsabstractIn parallel architectures that have a Non-Uniform Memory Access (NUMA) behavior, the mapping of memory pages to NUMA nodes influences the performance of parallel applications. In order to improve traditional data mapping policies, two basic strategies can be employed: optimizing locality or balance of memory accesses. In a locality-based policy, memory pages are mapped to nodes that access the page the most. In a balance-based policy, memory pages are mapped such that the number of memory accesses resolved by each memory controller is similar. In this paper, we perform an in-depth exploration of these data mapping policies on the performance of parallel applications. We introduce metrics that describe their memory access behavior and evaluate their suitability for data mapping. We also present new mapping policies that focus on locality, balance or both. These policies were evaluated on three different NUMA architectures with applications from the NAS-OMP and PARSEC benchmark suites. Results show that the performance improvements of each policy depend on the characteristics of the applications and machines. Choosing the wrong policy can actually hurt the performance compared to the default first-touch mapping. Compared to traditional mapping policies and to policies that only focus on either locality or balance, taking into account both locality and balance results in the highest improvements. Furthermore, it avoids the performance reduction caused by the wrong data mapping. Matthias Diener, Eduardo Henrique Molina da Cruz, Philippe Olivier Alexandre Navaux |
PDP | 1 |
| 2015 | Communication-aware thread mapping using the translation lookaside bufferabstractSummary Threads of parallel applications need to communicate in order to fulfill their tasks. The communication performance between the cores in modern multi‐core architectures differs because of the memory and interconnection hierarchies. In these architectures, it is important to map the threads of parallel applications by taking into account the communication between them, to improve their performance and energy consumption. In parallel applications based on shared memory, communication is implicit, which makes it difficult to detect the communication pattern between the threads. In this paper, we introduce a new lightweight mechanism to detect the communication pattern between threads of shared memory applications using the translation lookaside buffer. Our mechanism relies on hardware features, which make it transparent to the programmer and allow the detection to be performed by the operating system during the execution of the application. We also developed a heuristic mapping algorithm that uses the detected pattern to dynamically map the threads to cores. Experiments were performed with applications from the NAS‐OMP and PARSEC parallel benchmark suites in a simulated machine as well as a real machine. Results show that our mechanism can substantially improve parallel application performance, as well as processor and DRAM energy consumption. Copyright © 2015 John Wiley & Sons, Ltd. Eduardo Henrique Molina da Cruz, Matthias Diener, Philippe Olivier Alexandre Navaux |
Concurr. Comput. Pract. Exp. | 2 |
| 2015 | Communication-aware process and thread mapping using online communication detection
Matthias Diener, Eduardo Henrique Molina da Cruz, Philippe Olivier Alexandre Navaux, Anselm Busse, Hans-Ulrich Heiß |
Parallel Comput. | 1 |
| 2015 | Characterizing communication and page usage of parallel applications for thread and data mapping
Matthias Diener, Eduardo Henrique Molina da Cruz, Laércio Lima Pilla, Fabrice Dupros, Philippe Olivier Alexandre Navaux |
Perform. Evaluation | 1 |
| 2014 | kMAF: automatic kernel-level management of thread and data affinityabstractOne of the main challenges for parallel architectures is the increasing complexity of the memory hierarchy, which consists of several levels of private and shared caches, as well as interconnections between separate memories in NUMA machines. To make full use of this hierarchy, it is necessary to improve the locality of memory accesses by reducing accesses to remote caches and memories, and using local ones instead. Two techniques can be used to increase the memory access locality: executing threads and processes that access shared data close to each other in the memory hierarchy (thread affinity), and placing the memory pages they access on the NUMA node they are executing on (data affinity). Most related work in this area focuses on either thread or data affinity, but not both, which limits the improvements. Other mechanisms require expensive operations, such as memory access traces or binary analysis, require changes to hardware or work only on specific parallel APIs. Matthias Diener, Eduardo Henrique Molina da Cruz, Philippe Olivier Alexandre Navaux, Anselm Busse, Hans-Ulrich Heiß |
PACT | 1 |
| 2014 | Optimizing Memory Locality Using a Locality-Aware Page TableabstractOne of the main challenges for modern parallel shared-memory architectures are accesses to main memory. In current systems, the performance and energy efficiency of memory accesses depend on their locality: accesses to remote caches and NUMA nodes are more expensive than accesses to local ones. Increasing the locality requires knowledge about how the threads of a parallel application access memory pages. With this information, pages can be migrated to the NUMA nodes that access them (data mapping), as well as threads that access the same pages can be migrated to the same node such that locality can be improved even further (thread mapping). In this paper, we propose LAPT, a mechanism to store the memory access pattern of parallel applications in the page table, which is updated by the hardware during TLB misses. This information is used by the operating system to perform an optimized thread and data mapping during the execution of the parallel application. In contrast to previous work, LAPT does not require any previous information about the behavior of the applications, or changes to the application or runtime libraries. Extensive experiments with the NAS Parallel Benchmarks (NPB) and PARSEC showed performance and energy efficiency improvements of up to 19.2% and 15.7%, respectively, (6.7% and 5.3% on average). Eduardo Henrique Molina da Cruz, Matthias Diener, Marco A. Z. Alves, Laércio Lima Pilla, Philippe Olivier Alexandre Navaux |
SBAC-PAD | 2 |
| 2014 | Dynamic thread mapping of shared memory applications by exploiting cache coherence protocols
Eduardo Henrique Molina da Cruz, Matthias Diener, Marco A. Z. Alves, Philippe Olivier Alexandre Navaux |
J. Parallel Distributed Comput. | 2 |
| 2013 | Communication-Based Mapping Using Shared PagesabstractIn current shared memory architectures, the complexity of the cache and memory hierarchies is increasing. Therefore, it is becoming more important to analyze the communication behavior of parallel applications when mapping threads to cores, to improve performance and energy efficiency. However, communication is implicit in most programming models for shared memory, which makes it difficult to detect the communication pattern between the threads in an accurate and low-overhead way. We propose a new mechanism to detect the communication pattern of shared memory applications by monitoring page table accesses. Combining this mechanism with a dynamic migration algorithm allows mapping to be performed dynamically by the operating system. We implemented our mechanism in the Linux kernel and performed experiments with applications from the NAS Parallel Benchmarks. Results show a reduction of up to 16.7% of the execution time and 63% of the cache misses, compared to the original scheduler of the operating system. Furthermore, we decrease total processor and DRAM energy consumption by up to 14.7% and 28.5%, respectively. Matthias Diener, Eduardo Henrique Molina da Cruz, Philippe Olivier Alexandre Navaux |
IPDPS | 1 |
| 2013 | Energy Efficient Last Level Caches via Last Read/Write PredictionabstractThe size of the Last Level Caches (LLC) in multi-core architectures is increasing, and so is their power consumption. However, most of this power is wasted on unused or invalid cache lines. For dirty cache lines, the LLC waits until the line is evicted to be written back to memory. Hence, dirty lines compete for the memory bandwidth with read requests (prefetch and demand), increasing pressure on the memory controller. This paper proposes a Dead Line and Early Write-Back Predictor (DEWP) to improve the energy efficiency of the LLC. DEWP early evicts dead cache lines with an average accuracy of 94%, and only 2% false positives. DEWP also allows scheduling of dirty lines for early eviction, allowing earlier write-backs. Using DEWP over a set of single and multi-threaded benchmarks, we obtain an average of 61% static energy savings, while maintaining the performance, for both inclusive and non-inclusive LLCs. Marco A. Z. Alves, Carlos Villavieja, Matthias Diener, Philippe Olivier Alexandre Navaux |
SBAC-PAD | 3 |
| 2012 | Evaluating High Performance Computing on the Windows Azure PlatformabstractUsing the Cloud Computing paradigm for High-Performance Computing (HPC) is currently a hot topic in the research community and the industry. The attractiveness of Cloud Computing for HPC is the capability to run large applications on powerful, scalable hardware without needing to actually own or maintain this hardware. Most current research focuses on running HPC applications on the Amazon Cloud Computing platform, which is relatively easy because it supports environments that are similar to existing HPC solutions, such as clusters and supercomputers. In this paper, we evaluate the possibility of using Microsoft Windows Azure as a platform for HPC applications. Since most HPC applications are based on the Unix programming model, their source code has to be ported to the Windows programming model in addition to porting it to the Azure platform. We outline the challenges we encountered during porting applications and their resolutions. Furthermore, we introduce a metric to measure the efficiency of Cloud Computing platforms in terms of performance and price. We compared the performance and efficiency of running these benchmarks on a real machine, an Amazon EC2 instance and a Windows Azure instance. Results show that the performance of Azure is close to the performance of running on real machines, and that it is a viable alternative for running HPC applications when compared to other Cloud Computing solutions. Eduardo Roloff, Francis B. Moreira 0001, Matthias Diener, Alexandre Carissimi, Philippe Olivier Alexandre Navaux |
IEEE CLOUD | 3 |
| 2012 | High Performance Computing in the cloud: Deployment, performance and cost efficiencyabstractHigh-Performance Computing (HPC) in the cloud has reached the mainstream and is currently a hot topic in the research community and the industry. The attractiveness of cloud for HPC is the capability to run large applications on powerful, scalable hardware without needing to actually own or maintain this hardware. In this paper, we conduct a detailed comparison of HPC applications running on three cloud providers, Amazon EC2, Microsoft Azure and Rackspace. We analyze three important characteristics of HPC, deployment facilities, performance and cost efficiency and compare them to a cluster of machines. For the experiments, we used the well-known NAS parallel benchmarks as an example of general scientific HPC applications to examine the computational and communication performance. Our results show that HPC applications can run efficiently on the cloud. However, care must be taken when choosing the provider, as the differences between them are large. The best cloud provider depends on the type and behavior of the application, as well as the intended usage scenario. Furthermore, our results show that HPC in the cloud can have a higher performance and cost efficiency than a traditional cluster, up to 27% and 41%, respectively. Eduardo Roloff, Matthias Diener, Alexandre Carissimi, Philippe Olivier Alexandre Navaux |
CloudCom | 2 |
| 2012 | Using the Translation Lookaside Buffer to Map Threads in Parallel Applications Based on Shared MemoryabstractThe communication latency between the cores in multiprocessor architectures differs depending on the memory hierarchy and the interconnections. With the increase of the number of cores per chip and the number of threads per core, this difference between the communication latencies is increasing. Therefore, it is important to map the threads of parallel applications taking into account the communication between them. In parallel applications based on the shared memory paradigm, the communication is implicit and occurs through accesses to shared variables. For this reason, it is difficult to detect the communication pattern between the threads. Traditional approaches use simulation to monitor the memory accesses performed by the application, requiring modifications to the source code and drastically increasing the overhead. In this paper, we introduce a new light-weight mechanism to detect the communication pattern of threads using the Translation Look aside Buffer (TLB). Our mechanism relies entirely on hardware features, which makes the thread mapping transparent to the programmer and allows it to be performed dynamically by the operating system. Moreover, no time consuming task, such as simulation, is required. We evaluated our mechanism with the NAS Parallel Benchmarks (NPB) and achieved an accurate representation of the communication patterns. Using the detected communication patterns, we generated thread mappings using a heuristic method based on the Edmonds graph matching algorithm. Running the applications with these mappings resulted in performance improvements of up to 15.3%, reducing the number of cache misses by up to 31.1%. Eduardo Henrique Molina da Cruz, Matthias Diener, Philippe Olivier Alexandre Navaux |
IPDPS | 2 |
| 2010 | Evaluating Thread Placement Based on Memory Access Patterns for Multi-core ProcessorsabstractProcess placement is a technique widely used on parallel machines with heterogeneous interconnects to reduce the overall communication time. For instance, two processes which communicate frequently are mapped close to each other. Finding the optimal mapping between threads and cores in a shared-memory environment (for example, OpenMP and Pthreads) is an even more complex task due to implicit communication. In this work, we examine data sharing patterns between threads in different workloads and use those patterns in a similar way as messages are used to map processes in cluster computers. We evaluated our technique on a state-of-the-art multicore processor and achieved moderate improvements in the common case and considerable improvements in some cases, reducing execution time by up to 45%. Matthias Diener, Felipe Lopes Madruga, Eduardo Rocha Rodrigues, Marco A. Z. Alves, Jörg Schneider 0001, Philippe Olivier Alexandre Navaux, Hans-Ulrich Heiß |
HPCC | 1 |