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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Christian Fensch

dblp:66/6455 · DBLP profile ↗
← Back
11ranked-venue papers
2as first author
1since 2021 · last 2021
—ORCID · none

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

Systems, architecture and hardware · 10 · 2 first-author · 1 since 2021Software engineering, systems software and programming languages · 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
4 papers
Parallel and multicore computing · 28% Processor architecture and microarchitecture · 25% Memory systems · 21%
Software engineering, system software, and programming languages
1 paper
Operating systems · 100%

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

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel scheduling
runtime scheduling
0.512021
Device Hopping: Transparent Mid-Kernel Runtime Switching for Heterogeneous Systems · ACM Trans. Archit. Code Optim. 2021
Memory systems
cache coherence
0.222013
Designing a Physical Locality Aware Coherence Protocol for Chip-Multiprocessors · IEEE Trans. Computers 2013
An OS-based alternative to full hardware coherence on tiled CMPs · HPCA 2008
Processor architecture and microarchitecture
chip multiprocessor
0.222013
Designing a Physical Locality Aware Coherence Protocol for Chip-Multiprocessors · IEEE Trans. Computers 2013
An OS-based alternative to full hardware coherence on tiled CMPs · HPCA 2008
High-performance computing › performance optimization
auto-tuning
0.212013
PARTANS: An autotuning framework for stencil computation on multi-GPU systems · ACM Trans. Archit. Code Optim. 2013
Memory systems › cache coherence
cache coherence protocol
0.212013
Designing a Physical Locality Aware Coherence Protocol for Chip-Multiprocessors · IEEE Trans. Computers 2013
Processor architecture and microarchitecture
many-core architecture
0.212013
Designing a Physical Locality Aware Coherence Protocol for Chip-Multiprocessors · IEEE Trans. Computers 2013
GPUs and heterogeneous computing
multi-GPU computing
0.212013
PARTANS: An autotuning framework for stencil computation on multi-GPU systems · ACM Trans. Archit. Code Optim. 2013
High-performance computing
stencil computation
0.212013
PARTANS: An autotuning framework for stencil computation on multi-GPU systems · ACM Trans. Archit. Code Optim. 2013
Processor architecture and microarchitecture › chip multiprocessor
tiled CMP
0.112008
An OS-based alternative to full hardware coherence on tiled CMPs · HPCA 2008
Parallel and multicore computing
data distribution
0.012013
PARTANS: An autotuning framework for stencil computation on multi-GPU systems · ACM Trans. Archit. Code Optim. 2013
Operating systems › resource management › memory management
virtual memory
0.012008
An OS-based alternative to full hardware coherence on tiled CMPs · HPCA 2008

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

slice-based migration · 0.5machine learning · 0.5simulation · 0.3auto-tuning · 0.2
YearPublicationVenuePosition
2021 Device Hopping: Transparent Mid-Kernel Runtime Switching for Heterogeneous Systems
abstract
Existing OS techniques for homogeneous many-core systems make it simple for single and multithreaded applications to migrate between cores. Heterogeneous systems do not benefit so fully from this flexibility, and applications that cannot migrate in mid-execution may lose potential performance. The situation is particularly challenging when a switch of language runtime would be desirable in conjunction with a migration. We present a case study in making heterogeneous CPU + GPU systems more flexible in this respect. Our technique for fine-grained application migration, allows switches between OpenMP, OpenCL, and CUDA execution, in conjunction with migrations from GPU to CPU, and CPU to GPU. To achieve this, we subdivide iteration spaces into slices, and consider migration on a slice-by-slice basis. We show that slice sizes can be learned offline by machine learning models. To further improve performance, memory transfers are made migration-aware. The complexity of the migration capability is hidden from programmers behind a high-level programming model. We present a detailed evaluation of our mid-kernel migration mechanism with the First Come, First Served scheduling policy. We compare our technique in a focused evaluation scenario against idealized kernel-by-kernel scheduling, which is typical for current systems, and makes perfect kernel to device scheduling decisions, but cannot migrate kernels mid-execution. Models show that up to 1.33× speedup can be achieved over these systems by adding fine-grained migration. Our experimental results with all nine applicable SHOC and Rodinia benchmarks achieve speedups of up to 1.30× (1.08× on average) over an implementation of a perfect but kernel-migration incapable scheduler when migrated to a faster device. Our mechanism and slice size choices introduce an average slowdown of only 2.44% if kernels never migrate. Lastly, our programming model reduces the code size by at least 88% if compared to manual implementations of migratable kernels.
Paul Metzger, Volker Seeker, Christian Fensch, Murray Cole
ACM Trans. Archit. Code Optim.3
2020 Enforcing Deadlines for Skeleton-based Parallel Programming
abstract
High throughput applications with real-time guarantees are increasingly relevant. For these applications, parallelism must be exposed to meet deadlines. Directed Acyclic Graphs (DAGs) are a popular and very general application model that can capture any possible interaction among threads. However, we argue that by constraining the application structure to a set of composable “skeletons”, at the price of losing some generality w.r.t. DAGs, the following advantages are gained: (i) a finer model of the application enables tighter analysis, (ii) specialised scheduling policies are applicable, (iii) programming is simplified, (iv) specialised implementation techniques can be exploited transparently, and (v) the program can be automatically tuned to minimise resource usage while still meeting its hard deadlines. As a first step towards a set of real-time skeletons we conduct a case study with the job farm skeleton and the hard real-time XMOS xCore-200 microcontroller. We present an analytical framework for job farms that reduces the number of required cores by scheduling jobs in batches, while ensuring that deadlines are still met. Our experimental results demonstrate that batching reduces the minimum sustainable period by up to 22%, leading to a reduced number of required cores. The framework chooses the best parameters in 83% of cases and never selects parameters that cause deadline misses. Finally, we show that the overheads introduced by the skeleton abstraction layer are negligible.
Paul Metzger, Murray Cole, Christian Fensch, Marco Aldinucci, Enrico Bini
RTAS3
2018 NUMA Optimizations for Algorithmic Skeletons
Paul Metzger, Murray Cole, Christian Fensch
Euro-Par3
2015 Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code
abstract
Computers have become increasingly complex with the emergence of heterogeneous hardware combining multicore CPUs and GPUs. These parallel systems exhibit tremendous computational power at the cost of increased programming effort resulting in a tension between performance and code portability. Typically, code is either tuned in a low-level imperative language using hardware-specific optimizations to achieve maximum performance or is written in a high-level, possibly functional, language to achieve portability at the expense of performance. We propose a novel approach aiming to combine high-level programming, code portability, and high-performance. Starting from a high-level functional expression we apply a simple set of rewrite rules to transform it into a low-level functional representation, close to the OpenCL programming model, from which OpenCL code is generated. Our rewrite rules define a space of possible implementations which we automatically explore to generate hardware-specific OpenCL implementations. We formalize our system with a core dependently-typed lambda-calculus along with a denotational semantics which we use to prove the correctness of the rewrite rules. We test our design in practice by implementing a compiler which generates high performance imperative OpenCL code. Our experiments show that we can automatically derive hardware-specific implementations from simple functional high-level algorithmic expressions offering performance on a par with highly tuned code for multicore CPUs and GPUs written by experts.
Michel Steuwer, Christian Fensch, Sam Lindley, Christophe Dubach
ICFP2
2013 General chairs' welcome message
abstract
We welcome you to the 22nd International Conference on Parallel Architectures and Compilation Techniques - PACT'13 at the Surgeons' Hall, Edinburgh, Scotland, UK.
Michael F. P. O'Boyle, Christian Fensch
PACT2
2013 MaSiF: Machine learning guided auto-tuning of parallel skeletons
abstract
Parallel skeletons provide a predefined set of parallel templates that can be combined, nested and parameterized with sequential code to produce complex parallel programs. The implementation of each skeleton includes parameters that have a significant effect on performance; so carefully tuning them is vital. The optimization space formed by these parameters is complex, non-linear, exhibits multiple local optima and is program dependent. This makes manual tuning impractical. Effective automatic tuning is therefore essential for the performance of parallel skeleton programs. In this paper we present MaSiF, a novel tool to auto-tune the parallelization parameters of skeleton parallel programs. It reduces the size of the parameter space using a combination of machine learning, via nearest neighbor classification, and linear dimensionality reduction using Principal Components Analysis. To auto-tune a new program, a set of program features is determined statically and used to compute k nearest neighbors from a set of training programs. Previously collected performance data for the nearest neighbors is used to reduce the size of the search space using Principal Components Analysis. Good parallelization parameters are found quickly by searching this smaller search space. We evaluate MaSiF for two existing parallel frameworks: Threading Building Blocks and FastFlow. MaSiF achieves 89% of the performance of the oracle on average. This exploration requires just 45 parameters values on average, which is ~0.05% of the optimization space. In contrast, a state-of-the-art machine learning approach achieves 51%. MaSiF achieves an average speedup of 1.32× over parallelization parameters chosen by human experts.
Alexander Collins, Christian Fensch, Hugh Leather, Murray Cole
HiPC2
2013 PARTANS: An autotuning framework for stencil computation on multi-GPU systems
abstract
GPGPUs are a powerful and energy-efficient solution for many problems. For higher performance or larger problems, it is necessary to distribute the problem across multiple GPUs, increasing the already high programming complexity. In this article, we focus on abstracting the complexity of multi-GPU programming for stencil computation. We show that the best strategy depends not only on the stencil operator, problem size, and GPU, but also on the PCI express layout. This adds nonuniform characteristics to a seemingly homogeneous setup, causing up to 23% performance loss. We address this issue with an autotuner that optimizes the distribution across multiple GPUs.
Thibaut Lutz, Christian Fensch, Murray Cole
ACM Trans. Archit. Code Optim.2
2013 Designing a Physical Locality Aware Coherence Protocol for Chip-Multiprocessors
abstract
Many-core architectures provide an efficient way of harnessing the growing numbers of transistors available. However, energy and latency costs of communication increasingly limit the parallel programs running on these platforms. Existing designs provide a functional communication layer, but not necessarily the most efficient solution. Due to power limitations, efficiency is now a primary concern that motivates us to look again at cache coherence. First, we analyze the communication behavior of parallel applications. The observed sharing patterns reveal considerable locality of shared data accesses between threads with consecutive IDs. This pattern corresponds to strong physical locality between adjacent cores in a chip-multiprocessor (CMP). This paper explores the design of Proximity Coherence: a novel scheme in which L1 load misses are optimistically forwarded to nearby caches via new dedicated links. We exploit these patterns and improve the efficiency of communication. The results show that careful analysis leads to the design of a more efficient coherence protocol. The protocol reduces the latency of load misses by up to 33 percent (17 percent, on average), improving overall execution time by up to 13 percent. Furthermore, it also reduces network-on-chip traffic by 19 percent and energy consumption by up to 30 percent.
Christian Fensch, Nick Barrow-Williams, Robert Mullins 0001, Simon W. Moore
IEEE Trans. Computers1
2012 MaSiF: machine learning guided auto-tuning of parallel skeletons
abstract
We present MaSiF, a novel tool to auto-tune parallelization parameters of skeleton parallel programs. It reduces the cost of searching the optimization space using a combination of machine learning and linear dimensionality reduction. To auto-tune a new program, a set of program features is determined statically and used to compute k nearest neighbors from a set of training programs. Previously collected performance data for the nearest neighbors is used to reduce the size of the search space using Principal Components Analysis. This results in a set of eigenvectors that are used to search the reduced space.
Alexander Collins, Christian Fensch, Hugh Leather
PACT2
2010 Proximity coherence for chip multiprocessors
abstract
Many-core architectures provide an efficient way of harnessing the increasing numbers of transistors available in modern fabrication processes. While they are similar to multi-node systems, they exhibit different communication latency and storage characteristics, providing new design opportunities that were previously not feasible. Traditional cache coherence protocols, although often used in many-core designs, have been developed in the context of multinode systems. As such, they seldom take advantage of the new possibilities that many-core architectures offer.
Nick Barrow-Williams, Christian Fensch, Simon W. Moore
PACT2
2008 An OS-based alternative to full hardware coherence on tiled CMPs
abstract
The interconnect mechanisms (shared bus or crossbar) used in current chip-multiprocessors (CMPs) are expected to become a bottleneck that prevents these architectures from scaling to a larger number of cores. Tiled CMPs offer better scalability by integrating relatively simple cores with a lightweight point-to-point interconnect. However, such interconnects make snooping impractical and, thus, require alternative solutions to cache coherence. This paper proposes a novel, cost-effective mechanism to support shared-memory parallel applications that forgoes hardware maintained cache coherence. The proposed mechanism is based on the key ideas that mapping of lines to physical caches is done at the page level with OS support and that hardware supports remote cache accesses. It allows only some controlled migration and replication of data and provides a sufficient degree of flexibility in the mapping through an extra level of indirection between virtual pages and physical tiles. We evaluate the proposed tiled CMP architecture on the Splash-2 scientific benchmarks and ALPBench multimedia benchmarks against one with private caches and a distributed directory cache coherence mechanism. Experimental results show that the performance degradation is as little as 0%, and 16% on average, compared to the cache coherent architecture across all benchmarks for 16 and 32 processors.
Christian Fensch, Marcelo Cintra
HPCA1