Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Andi Drebes

dblp:146/0699 · DBLP profile ↗
← Back
7ranked-venue papers
4as first author
2since 2021 · last 2022
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 6 · 3 first-author · 2 since 2021Software engineering, systems software and programming languages · 2 · 1 first-author · 1 since 2021

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
4 papers
Memory systems · 36% Parallel and multicore computing · 28% Performance modeling and evaluation · 20%
Software engineering, system software, and programming languages
1 paper
Compilers and program optimization · 100%

Topics — the 15 heaviest of 15, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization
machine learning compiler
0.612022
OCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2022
Hardware accelerators and domain-specific architectures › machine learning accelerator
in-memory computing accelerator
0.612022
OCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2022
Memory systems › memory management
memory allocation
0.422016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Performance modeling and evaluation › performance monitoring
hardware performance counters
0.312017
Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions · ACM Trans. Archit. Code Optim. 2017
Performance modeling and evaluation
profiling
0.312017
Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions · ACM Trans. Archit. Code Optim. 2017
Parallel and multicore computing › parallel scheduling
NUMA-aware scheduling
0.212016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Memory systems › non-uniform memory access
NUMA data placement
0.212016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Parallel and multicore computing › parallel programming runtimes
task-based runtime
0.212016
NUMA-aware scheduling and memory allocation for data-flow task-parallel applications · PPoPP 2016
Parallel and multicore computing › parallel scheduling
locality-aware scheduling
0.212014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Memory systems
non-uniform memory access
0.212014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Parallel and multicore computing
task scheduling
0.212014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014
Memory systems › emerging memory technologies
memristor crossbar
0.212022
OCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2022
Memory systems
non-volatile memory
0.212022
OCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2022
Performance modeling and evaluation
benchmarking
0.112017
Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions · ACM Trans. Archit. Code Optim. 2017
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing
0.112014
Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages · ACM Trans. Archit. Code Optim. 2014

Methods — techniques the papers use, named apart from their topics

multilevel rewriting · 1.1statistical distribution comparison · 0.3work stealing · 0.2dataflow analysis · 0.2static memory hierarchy description · 0.2runtime communication analysis · 0.2
YearPublicationVenuePosition
2022 OCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory
abstract
Memristive devices promise an alternative approach toward non-Von Neumann architectures, where specific computational tasks are performed within the memory devices. In the machine learning (ML) domain, crossbar arrays of resistive devices have shown great promise for ML inference, as they allow for hardware acceleration of matrix multiplications. But, to enable widespread adoption of these novel architectures, it is critical to have an automatic compilation flow as opposed to relying on a manual mapping of specific kernels on the crossbar arrays. We demonstrate the programmability of memristor-based accelerators using the new compiler design principle of multilevel rewriting, where a hierarchy of abstractions lowers programs level-by-level and perform code transformations at the most suitable abstraction. In particular, we develop a prototype compiler, which progressively lowers a mathematical notation for tensor operations arising in ML workloads, to fixed-function memristor-based hardware blocks.
Adam Siemieniuk, Lorenzo Chelini, Asif Ali Khan, Jerónimo Castrillón, Andi Drebes, Henk Corporaal, Tobias Grosser, Martin Kong
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.5
2021 Progressive Raising in Multi-level IR
abstract
Multi-level intermediate representations (IR) show great promise for lowering the design costs for domain-specific compilers by providing a reusable, extensible, and non-opini-onated framework for expressing domain-specific and high-level abstractions directly in the IR. But, while such frameworks support the progressive lowering of high-level representations to low-level IR, they do not raise in the opposite direction. Thus, the entry point into the compilation pipeline defines the highest level of abstraction for all subsequent transformations, limiting the set of applicable optimizations, in particular for general-purpose languages that are not semantically rich enough to model the required abstractions. We propose Progressive Raising, a complementary approach to the progressive lowering in multi-level IRs that raises from lower to higher-level abstractions to leverage domain-specific transformations for low-level representations. We further introduce Multilevel Tactics, our declarative approach for progressive raising, implemented on top of the MLIR framework, and demonstrate the progressive raising from affine loop nests specified in a general-purpose language to high-level linear algebra operations. Our raising paths leverage subsequent high-level domain-specific transformations with significant performance improvements.
Lorenzo Chelini, Andi Drebes, Oleksandr Zinenko, Albert Cohen 0001, Nicolas Vasilache, Tobias Grosser, Henk Corporaal
CGO2
2017 Fuse: Accurate Multiplexing of Hardware Performance Counters Across Executions
abstract
Collecting hardware event counts is essential to understanding program execution behavior. Contemporary systems offer few Performance Monitoring Counters (PMCs), thus only a small fraction of hardware events can be monitored simultaneously. We present new techniques to acquire counts for all available hardware events with high accuracy by multiplexing PMCs across multiple executions of the same program, then carefully reconciling and merging the multiple profiles into a single, coherent profile. We present a new metric for assessing the similarity of statistical distributions of event counts and show that our execution profiling approach performs significantly better than Hardware Event Multiplexing.
Richard Neill, Andi Drebes, Antoniu Pop
ACM Trans. Archit. Code Optim.2
2016 Scalable Task Parallelism for NUMA: A Uniform Abstraction for Coordinated Scheduling and Memory Management
abstract
Dynamic task-parallel programming models are popular on shared-memory systems, promising enhanced scalability, load balancing and locality. Yet these promises are undermined by non-uniform memory access (NUMA). We show that using NUMA-aware task and data placement, it is possible to preserve the uniform abstraction of both computing and memory resources for task-parallel programming models while achieving high data locality. Our data placement scheme guarantees that all accesses to task output data target the local memory of the accessing core. The complementary task placement heuristic improves the locality of task input data on a best effort basis. Our algorithms take advantage of data-flow style task parallelism, where the privatization of task data enhances scalability by eliminating false dependences and enabling fine-grained dynamic control over data placement. The algorithms are fully automatic, application-independent, performance-portable across NUMA machines, and adapt to dynamic changes. Placement decisions use information about inter-task data dependences readily available in the run-time system and placement information from the operating system. We achieve 94% of local memory accesses on a 192-core system with 24 NUMA nodes, up to 5x higher performance than NUMA-aware hierarchical work-stealing, and even 5.6x compared to static interleaved allocation. Finally, we show that state-of-the-art dynamic page migration by the operating system cannot catch up with frequent affinity changes between cores and data and thus fails to accelerate task-parallel applications.
Andi Drebes, Antoniu Pop, Karine Heydemann, Albert Cohen 0001, Nathalie Drach-Temam
PACT1
2016 Interactive visualization of cross-layer performance anomalies in dynamic task-parallel applications and systems
abstract
This paper studies the interactive visualization and post-mortem analysis of execution traces generated by task-parallel programs. We focus on the detection of performance anomalies inaccessible to state-of-the-art performance analysis techniques, including anomalies deriving from the interaction of multiple levels of software abstractions, anomalies associated with the hardware, and anomalies resulting from interferences between optimizations in the application and run-time system. Building on our practical experience with the performance debugging of representative task-parallel applications and run-time systems for dynamic dependent task graphs, we designed a new tool called Aftermath. This tool enables the visualization of intricate anomalies involving multiple layers and components in the system. It also supports filtering, aggregation and joint visualization of key metrics and performance indicators, such as task duration, run-time state, hardware performance counters and data transfers. The tool also relates this information to the machine's topology. While not specifically designed for non-uniform memory access (NUMA) architectures, Aftermath takes advantage of the explicit memory regions and dependence information in dependent task models to precisely capture long-distance and inter-core effects. Aftermath supports traces of up to several gigabytes, with fast and intuitive navigation and the on-line configuration of new derived metrics. As it has proven invaluable to optimize both run-time environments and applications, we illustrate Aftermath on genuine cases encountered in the OpenStream project.
Andi Drebes, Antoniu Pop, Karine Heydemann, Albert Cohen 0001
ISPASS1
2016 NUMA-aware scheduling and memory allocation for data-flow task-parallel applications
abstract
Dynamic task parallelism is a popular programming model on shared-memory systems. Compared to data parallel loop-based concurrency, it promises enhanced scalability, load balancing and locality. These promises, however, are undermined by non-uniform memory access (NUMA) systems. We show that it is possible to preserve the uniform hardware abstraction of contemporary task-parallel programming models, for both computing and memory resources, while achieving near-optimal data locality. Our run-time algorithms for NUMA-aware task and data placement are fully automatic, application-independent, performance-portable across NUMA machines, and adapt to dynamic changes. Placement decisions use information about inter-task data dependences and reuse. This information is readily available in the run-time systems of modern task-parallel programming frameworks, and from the operating system regarding the placement of previously allocated memory. Our algorithms take advantage of data-flow style task parallelism, where the privatization of task data enhances scalability through the elimination of false dependences and enables fine-grained dynamic control over the placement of application data. We demonstrate that the benefits of dynamically managing data placement outweigh the privatization cost, even when comparing with target-specific optimizations through static, NUMA-aware data interleaving. Our implementation and the experimental evaluation on a set of high-performance benchmarks executing on a 192-core system with 24 NUMA nodes show that the fraction of local memory accesses can be increased to more than 99%, resulting in a speedup of up to 5× compared to a NUMA-aware hierarchical work-stealing baseline.
Andi Drebes, Antoniu Pop, Karine Heydemann, Nathalie Drach-Temam, Albert Cohen 0001
PPoPP1
2014 Topology-Aware and Dependence-Aware Scheduling and Memory Allocation for Task-Parallel Languages
abstract
We present a joint scheduling and memory allocation algorithm for efficient execution of task-parallel programs on non-uniform memory architecture (NUMA) systems. Task and data placement decisions are based on a static description of the memory hierarchy and on runtime information about intertask communication. Existing locality-aware scheduling strategies for fine-grained tasks have strong limitations: they are specific to some class of machines or applications, they do not handle task dependences, they require manual program annotations, or they rely on fragile profiling schemes. By contrast, our solution makes no assumption on the structure of programs or on the layout of data in memory. Experimental results, based on the OpenStream language, show that locality of accesses to main memory of scientific applications can be increased significantly on a 64-core machine, resulting in a speedup of up to 1.63× compared to a state-of-the-art work-stealing scheduler.
Andi Drebes, Karine Heydemann, Nathalie Drach-Temam, Antoniu Pop, Albert Cohen 0001
ACM Trans. Archit. Code Optim.1