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.

Hannes Payer

dblp:44/5891 · DBLP profile ↗
← Back
16ranked-venue papers
1as first author
0since 2021 · last 2019
—ORCID · none

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

Software engineering, systems software and programming languages · 8Systems, architecture and hardware · 5 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 2Artificial intelligence and machine learning · 1Human-computer interaction and ubiquitous computing · 1Theory of computation · 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.

Software engineering, system software, and programming languages
5 papers
Runtime systems and virtual machines · 44% Operating systems · 35% Concurrent programming · 21%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Parallel and multicore computing · 48% Emerging computing paradigms · 18% Processor architecture and microarchitecture · 18%

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

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines
garbage collection
0.622018
Cross-component garbage collection · Proc. ACM Program. Lang. 2018
Idle time garbage collection scheduling · PLDI 2016
Operating systems › resource management
memory management
0.422018
Cross-component garbage collection · Proc. ACM Program. Lang. 2018
A Compacting Real-Time Memory Management System · USENIX ATC 2008
Concurrent programming
concurrent data structures
0.212013
Quantitative relaxation of concurrent data structures · POPL 2013
Emerging computing paradigms
approximate computing
0.112012
Incorrect systems: it's not the problem, it's the solution · DAC 2012
Parallel and multicore computing
concurrent data structures
0.112011
Scalability versus semantics of concurrent FIFO queues · PODC 2011
Parallel and multicore computing
concurrent programming
0.112011
Scalability versus semantics of concurrent FIFO queues · PODC 2011
Parallel and multicore computing › concurrent data structures
concurrent queue
0.112011
Scalability versus semantics of concurrent FIFO queues · PODC 2011
Cloud and datacenter computing › resource management › real-time resource allocation
real-time memory management
0.112008
A Compacting Real-Time Memory Management System · USENIX ATC 2008
Runtime systems and virtual machines
managed runtime
0.112016
Idle time garbage collection scheduling · PLDI 2016
Distributed computing theory › concurrent objects
correctness conditions
0.012013
Quantitative relaxation of concurrent data structures · POPL 2013
Distributed systems
distributed coordination
0.012011
Scalability versus semantics of concurrent FIFO queues · PODC 2011

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

heap snapshot analysis · 0.3cross-component tracing algorithm · 0.3frame time discrepancy metric · 0.2concurrent garbage collection · 0.2
YearPublicationVenuePosition
2019 Concurrent marking of shape-changing objects
abstract
Efficient garbage collection is a key goal in engineering high-performance runtime systems. To reduce pause times, many collector designs traverse the object graph concurrently with the application, an optimization known as concurrent marking. Traditional concurrent marking imposes strict invariants on the object shapes: 1) static type layout of objects, 2) static object memory locations, 3) static object sizes. High performance virtual machines for dynamic languages, for example, the V8 JavaScript virtual machine used in the Google Chrome web browser, generally violate these constraints in pursuit of high throughput for a single thread. Taking V8 as an example, we show that some object shape changes are safe and can be handled by traditional concurrent marking algorithms. For unsafe shape changes, we introduce novel wait-free object snapshotting and lock-based concurrent marking algorithms and prove that they preserve key invariants. We implemented both algorithms in V8 and achieved performance improvements on various JavaScript benchmark suites and real-world web workloads. Concurrent marking of shape-changing objects using the wait-free object snapshotting algorithm is enabled by default in Chrome since version 64.
Ulan Degenbaev, Michael Lippautz, Hannes Payer
ISMM3
2018 Phase-Aware Web Browser Power Management on HMP Platforms
abstract
Over the last years, web browsing has been steadily shifting from desktop computers to mobile devices like smartphones and tablets. However, mobile browsers available today have mainly focused on performance rather than power consumption, although the battery life of a mobile device is one of the most important usability metrics. This is because many of these browsers have originated in the desktop domain and have been ported to the mobile domain. Such browsers have multiple power hungry components such as the rendering engine, and the JavaScript engine, and generate high workload without considering the capabilities and the power consumption characteristics of the underlying hardware platform. Also, the lack of coordination between a browser application and the power manager in the operating system (such as Android) results in poor power savings. In this paper, we propose a power manager that takes into account the internal state of a browser -- that we refer to as a phase -- and show with Google's Chrome running on Android that up to 57.4% more energy can be saved over Android's default power managers. We implemented and evaluated our technique on a heterogeneous multiprocessing (HMP) ARM big.LITTLE platform such as the ones found in most modern smartphones.
Nadja Heitmann, Sangyoung Park, Daniel Clifford, S. Kyostila, Ross McIlroy, Benedikt Meurer, Hannes Payer, Samarjit Chakraborty
ICS7
2018 Cross-component garbage collection
abstract
Embedding a modern language runtime as a component in a larger software system is popular these days. Communication between these systems often requires keeping references to each others' objects. In this paper we present and discuss the problem of cross-component memory management where reference cycles across component boundaries may lead to memory leaks and premature reclamation of objects may lead to dangling cross-component references. We provide a generic algorithm for effective, efficient, and safe garbage collection over component boundaries, which we call cross-component tracing. We designed and implemented cross-component tracing in the Chrome web browser where the JavaScript virtual machine V8 is embedded into the rendering engine Blink. Cross-component tracing from V8's JavaScript heap to Blink's C++ heap improves garbage collection latency and eliminates long-standing memory leaks for real websites in Chrome. We show how cross-component tracing can help web developers to reason about reachability and retainment of objects spanning both V8 and Blink components based on Chrome's heap snapshot memory tool. Cross-component tracing was enabled by default for all websites in Chrome version 57 and is also deployed in other widely used software systems such as Opera, Cobalt, and Electron.
Ulan Degenbaev, Jochen Eisinger, Kentaro Hara, Marcel Hlopko, Michael Lippautz, Hannes Payer
Proc. ACM Program. Lang.6
2016 Local Linearizability for Concurrent Container-Type Data Structures
abstract
Priority queues with parallel access are an attractive data structure for applications like prioritized online scheduling, discrete event simulation, or greedy algorithms. However, a classical priority queue constitutes a severe bottleneck in this context, leading to very small throughput. Hence, there has been significant interest in concurrent priority queues with relaxed semantics. We investigate the complementary quality criteria rank error (how close are deleted elements to the global minimum) and delay (for each element x, how many elements with lower priority are deleted before x). In this paper, we introduce MultiQueues as a natural approach to relaxed priority queues based on multiple sequential priority queues. Their naturally high theoretical scalability is further enhanced by using three orthogonal ways of batching operations on the sequential queues. Experiments indicate that MultiQueues present a very good performance-quality tradeoff and considerably outperform competing approaches in at least one of these aspects. We employ a seemingly paradoxical technique of "wait-free locking" that might be of more general interest to convert sequential data structures to relaxed concurrent data structures.
Andreas Haas, Thomas A. Henzinger, Andreas Holzer, Christoph M. Kirsch, Michael Lippautz, Hannes Payer, Ali Sezgin, Ana Sokolova, Helmut Veith
CONCUR6
2016 Idle time garbage collection scheduling
abstract
Efficient garbage collection is increasingly important in today's managed language runtime systems that demand low latency, low memory consumption, and high throughput. Garbage collection may pause the application for many milliseconds to identify live memory, free unused memory, and compact fragmented regions of memory, even when employing concurrent garbage collection. In animation-based applications that require 60 frames per second, these pause times may be observable, degrading user experience. This paper introduces idle time garbage collection scheduling to increase the responsiveness of applications by hiding expensive garbage collection operations inside of small, otherwise unused idle portions of the application's execution, resulting in smoother animations. Additionally we take advantage of idleness to reduce memory consumption while allowing higher memory use when high throughput is required. We implemented idle time garbage collection scheduling in V8, an open-source, production JavaScript virtual machine running within Chrome. We present performance results on various benchmarks running popular webpages and show that idle time garbage collection scheduling can significantly improve latency and memory consumption. Furthermore, we introduce a new metric called frame time discrepancy to quantify the quality of the user experience and precisely measure the improvements that idle time garbage collection provides for a WebGL-based game benchmark. Idle time garbage collection is shipped and enabled by default in Chrome.
Ulan Degenbaev, Jochen Eisinger, Manfred Ernst, Ross McIlroy, Hannes Payer
PLDI5
2015 Memento mori: dynamic allocation-site-based optimizations
abstract
Languages that lack static typing are ubiquitous in the world of mobile and web applications. The rapid rise of larger applications like interactive web GUIs, games, and cryptography presents a new range of implementation challenges for modern virtual machines to close the performance gap between typed and untyped languages. While all languages can benefit from efficient automatic memory management, languages like JavaScript present extra thrill with innocent-looking but difficult features like dynamically-sized arrays, deletable properties, and prototypes. Optimizing such languages requires complex dynamic techniques with more radical object layout strategies such as dynamically evolving representations for arrays. This paper presents a general approach for gathering temporal allocation site feedback that tackles both the general problem of object lifetime estimation and improves optimization of these problematic language features. We introduce a new implementation technique where allocation mementos processed by the garbage collector and runtime system efficiently tie objects back to allocation sites in the program and dynamically estimate object lifetime, representation, and size to inform three optimizations: pretenuring, pretransitioning, and presizing. Unlike previous work on pretenuring, our system utilizes allocation mementos to achieve fully dynamic allocation-site-based pretenuring in a production system. We implement all of our techniques in V8, a high performance virtual machine for JavaScript, and demonstrate solid performance improvements across a range of benchmarks.
Daniel Clifford, Hannes Payer, Michael Stanton, Ben L. Titzer
ISMM2
2014 ACDC-JS: explorative benchmarking of javascript memory management
abstract
We present ACDC-JS, an open-source JavaScript memory management benchmarking tool. ACDC-JS incorporates a heap model based on real web applications and may be configured to expose virtually any relevant performance characteristics of JavaScript memory management systems. ACDC-JS is based on ACDC, a benchmarking tool for C/C++ that models periodic allocation and deallocation behavior (AC) as well as persistent memory (DC). We identify important characteristics of JavaScript mutator behavior and propose a configurable heap model based on typical distributions of these characteristics as foundation for ACDC-JS. We describe heap analyses of 13 real web applications extending existing work on JavaScript behavior analysis. Our experimental results show that ACDC-JS enables performance benchmarking and debugging of state-of-the-art JavaScript virtual machines such as V8 and SpiderMonkey by exposing key aspects of their memory management performance.
Martin Aigner 0003, Thomas Hütter, Christoph M. Kirsch, Hannes Payer, Mario Preishuber
DLS5
2014 Allocation folding based on dominance
abstract
Memory management system performance is of increasing importance in today's managed languages. Two lingering sources of overhead are the direct costs of memory allocations and write barriers. This paper introduces it allocation folding, an optimization technique where the virtual machine automatically folds multiple memory allocation operations in optimized code together into a single, larger it allocation group. An allocation group comprises multiple objects and requires just a single bounds check in a bump-pointer style allocation, rather than a check for each individual object. More importantly, all objects allocated in a single allocation group are guaranteed to be contiguous after allocation and thus exist in the same generation, which makes it possible to statically remove write barriers for reference stores involving objects in the same allocation group. Unlike object inlining, object fusing, and object colocation, allocation folding requires no special connectivity or ownership relation between the objects in an allocation group. We present our analysis algorithm to determine when it is safe to fold allocations together and discuss our implementation in V8, an open-source, production JavaScript virtual machine. We present performance results for the Octane and Kraken benchmark suites and show that allocation folding is a strong performance improvement, even in the presence of some heap fragmentation. Additionally, we use four hand-selected benchmarks JPEGEncoder, NBody, Soft3D, and Textwriter where allocation folding has a large impact.
Daniel Clifford, Hannes Payer, Michael Starzinger, Ben L. Titzer
ISMM2
2013 Quantitative relaxation of concurrent data structures
abstract
There is a trade-off between performance and correctness in implementing concurrent data structures. Better performance may be achieved at the expense of relaxing correctness, by redefining the semantics of data structures. We address such a redefinition of data structure semantics and present a systematic and formal framework for obtaining new data structures by quantitatively relaxing existing ones. We view a data structure as a sequential specification S containing all "legal" sequences over an alphabet of method calls. Relaxing the data structure corresponds to defining a distance from any sequence over the alphabet to the sequential specification: the k-relaxed sequential specification contains all sequences over the alphabet within distance k from the original specification. In contrast to other existing work, our relaxations are semantic (distance in terms of data structure states). As an instantiation of our framework, we present two simple yet generic relaxation schemes, called out-of-order and stuttering relaxation, along with several ways of computing distances. We show that the out-of-order relaxation, when further instantiated to stacks, queues, and priority queues, amounts to tolerating bounded out-of-order behavior, which cannot be captured by a purely syntactic relaxation (distance in terms of sequence manipulation, e.g. edit distance). We give concurrent implementations of relaxed data structures and demonstrate that bounded relaxations provide the means for trading correctness for performance in a controlled way. The relaxations are monotonic which further highlights the trade-off: increasing k increases the number of permitted sequences, which as we demonstrate can lead to better performance. Finally, since a relaxed stack or queue also implements a pool, we actually have new concurrent pool implementations that outperform the state-of-the-art ones.
Thomas A. Henzinger, Christoph M. Kirsch, Hannes Payer, Ali Sezgin, Ana Sokolova
POPL3
2013 Temporal isolation in real-time systems: the VBS approach
Silviu S. Craciunas, Christoph M. Kirsch, Hannes Payer, Harald Röck, Ana Sokolova
Int. J. Softw. Tools Technol. Transf.3
2012 Incorrect systems: it's not the problem, it's the solution
abstract
We present an overview of state-of-the-art work in the engineering of digital systems (hardware and software) where traditional correctness requirements are relaxed, usually for higher performance and lower resource consumption but possibly also for other non-functional properties such as more robustness and less cost. The work presented here is categorized into work that involves just hardware, hardware and software, and just software. In particular, we discuss work on probabilistic and approximate design of processors, unreliable cores in asymmetric multi-core architectures, best-effort computing, stochastic processors, accuracy-aware program transformations, and relaxed concurrent data structures. As common theme we identify, at least intuitively, "metrics of correctness" in each piece of work which appear to be important for understanding the effects of relaxed correctness requirements and their relationship to performance improvements and resource consumption.
Christoph M. Kirsch, Hannes Payer
DAC2
2012 Performance, Scalability, and Semantics of Concurrent FIFO Queues
Christoph M. Kirsch, Hannes Payer, Harald Röck, Ana Sokolova
ICA3PP (1)2
2011 Scalability versus semantics of concurrent FIFO queues
abstract
Maintaining data structure semantics of concurrent queues such as first-in first-out (FIFO) ordering requires expensive synchronization mechanisms which limit scalability. However, deviating from the original semantics of a given data structure may allow for a higher degree of scalability and yet be tolerated by many concurrent applications. We introduce the notion of a k-FIFO queue which may be out of FIFO order up to a constant k (called semantical deviation). Implementations of k-FIFO queues may be distributed and therefore be accessed unsynchronized while still being starvation-free. We show that k-FIFO queues whose implementations are based on state-of-the-art FIFO queues, which typically do not scale under high contention, provide scalability. Moreover, probabilistic versions of k-FIFO queues improve scalability further but only bound semantical deviation with high probability.
Hannes Payer, Harald Röck, Christoph M. Kirsch, Ana Sokolova
PODC1
2010 Computer-aided classification of zoom-endoscopical images using Fourier filters
abstract
This paper describes an application of machine learning techniques and evolutionary algorithms to colon cancer diagnosis. We propose an automated classification system for endoscopical images, which is supposed to support physicians in making correct decisions. Classification is done according to the pit-pattern scheme, which defines two/six different classes based on the occurrence of patterns on the mucosa. All discriminative information for classification is obtained by filtering an image's frequency domain. A major part of this paper is devoted to the search for proper frequency filters. An extensive experimental study compares different search strategies and the resulting classification accuracies. We result in a top classification accuracy of 96.9% and 86.8% for the two- and six-classes case, respectively, using a database of 484 zoom-endoscopic images. We observe a tendency toward the employment of lower frequency filter structures for the best classification settings.
Michael Häfner, Leonhard Brunauer, Hannes Payer, Robert Resch, Alfred Gangl, Andreas Uhl, Friedrich Wrba, Andreas Vécsei
IEEE Trans. Inf. Technol. Biomed.3
2008 A Compacting Real-Time Memory Management System
Silviu S. Craciunas, Christoph M. Kirsch, Hannes Payer, Ana Sokolova, Horst Stadler, Robert Staudinger
USENIX ATC3
2007 Pit Pattern Classification of Zoom-Endoscopical Colon Images Using DCT and FFT
abstract
This work presents a classification approach for images taken from magnifying colonoscopy. Classification is done according to the pit pattern scheme. Images are not classified directly in the proposed classifier. Instead, they are transformed to a frequency domain using discrete cosine or Fourier transformation. Feature selection is optimized using a genetic algorithm, the actual classification is done using standard methods from statistical pattern recognition (a Bayes normal classifier).
Michael Häfner, Leonhard Brunauer, Hannes Payer, Robert Resch, Friedrich Wrba, Alfred Gangl, Andreas Vécsei, Andreas Uhl
CBMS3