Tomas Kalibera

dblp:45/5559 · DBLP profile ↗
← Back
18ranked-venue papers
9as first author
0since 2021 · last 2016
—ORCID · none

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

Systems, architecture and hardware · 9 · 5 first-authorSoftware engineering, systems software and programming languages · 6 · 3 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 first-authorComputer networks · 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
4 papers
Runtime systems and virtual machines · 51% Empirical software engineering · 28% Operating systems · 14%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Embedded and real-time systems · 57% Performance modeling and evaluation · 43%

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

TopicWeightPapersLastEvidence papers
Empirical software engineering › software engineering research methodology
empirical study
0.212016
The Truth, The Whole Truth, and Nothing But the Truth: A Pragmatic Guide to Assessing Empirical Evaluations · ACM Trans. Program. Lang. Syst. 2016
Runtime systems and virtual machines
garbage collection
0.222011
Scheduling real-time garbage collection on uniprocessors · ACM Trans. Comput. Syst. 2011
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
Performance modeling and evaluation
workload characterization
0.112012
A black-box approach to understanding concurrency in DaCapo · OOPSLA 2012
Operating systems › resource management › process management
CPU scheduling
0.112011
Scheduling real-time garbage collection on uniprocessors · ACM Trans. Comput. Syst. 2011
Runtime systems and virtual machines › garbage collection
real-time garbage collection
0.112009
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
Embedded and real-time systems
real-time scheduling
0.112009
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
Embedded and real-time systems › real-time scheduling
schedulability analysis
0.112009
Scheduling Hard Real-Time Garbage Collection · RTSS 2009
Programming languages and type systems
managed languages
0.122011
Scheduling real-time garbage collection on uniprocessors · ACM Trans. Comput. Syst. 2011
Scheduling Hard Real-Time Garbage Collection · RTSS 2009

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

slack-based scheduling · 0.4periodic scheduling · 0.4concurrency metrics · 0.3benchmarking · 0.3hybrid scheduling · 0.2
YearPublicationVenuePosition
2016 The Truth, The Whole Truth, and Nothing But the Truth: A Pragmatic Guide to Assessing Empirical Evaluations
Steve Blackburn, Amer Diwan, Matthias Hauswirth, Peter F. Sweeney, José Nelson Amaral, Tim Brecht, Lubomír Bulej, Cliff Click, Lieven Eeckhout, Sebastian Fischmeister, Daniel Frampton, Laurie J. Hendren, Michael Hind, Antony L. Hosking, Richard E. Jones, Tomas Kalibera, Nathan Keynes, Nathaniel Nystrom, Andreas Zeller
ACM Trans. Program. Lang. Syst.16
2014 A fast abstract syntax tree interpreter for R
abstract
Dynamic languages have been gaining popularity to the point that their performance is starting to matter. The effort required to develop a production-quality, high-performance runtime is, however, staggering and the expertise required to do so is often out of reach of the community maintaining a particular language. Many domain specific languages remain stuck with naive implementations, as they are easy to write and simple to maintain for domain scientists. In this paper, we try to see how far one can push a naive implementation while remaining portable and not requiring expertise in compilers and runtime systems. We choose the R language, a dynamic language used in statistics, as the target of our experiment and adopt the simplest possible implementation strategy, one based on evaluation of abstract syntax trees. We build our interpreter on top of a Java virtual machine and use only facilities available to all Java programmers. We compare our results to other implementations of R.
Tomas Kalibera, Petr Maj, Floréal Morandat, Jan Vitek
VEE1
2013 Rigorous benchmarking in reasonable time
abstract
Experimental evaluation is key to systems research. Because modern systems are complex and non-deterministic, good experimental methodology demands that researchers account for uncertainty. To obtain valid results, they are expected to run many iterations of benchmarks, invoke virtual machines (VMs) several times, or even rebuild VM or benchmark binaries more than once. All this repetition costs time to complete experiments. Currently, many evaluations give up on sufficient repetition or rigorous statistical methods, or even run benchmarks only in training sizes. The results reported often lack proper variation estimates and, when a small difference between two systems is reported, some are simply unreliable.
Tomas Kalibera, Richard E. Jones
ISMM1
2012 A black-box approach to understanding concurrency in DaCapo
abstract
Increasing levels of hardware parallelism are one of the main challenges for programmers and implementers of managed runtimes. Any concurrency or scalability improvements must be evaluated experimentally. However, application benchmarks available today may not reflect the highly concurrent applications we anticipate in the future. They may also behave in ways that VM developers do not expect. We provide a set of platform independent concurrency related metrics and an in-depth observational study of current state of the art benchmarks, discovering how concurrent they really are, how they scale the work and how they synchronise and communicate via shared memory.
Tomas Kalibera, Matthew Mole, Richard E. Jones, Jan Vitek
OOPSLA1
2012 Introduction to the Special Issue on Java Technologies for Real-Time and Embedded Systems
Jan Vitek, Tomas Kalibera
Concurr. Comput. Pract. Exp.2
2011 Repeatability, reproducibility, and rigor in systems research
abstract
Computer systems research spans sub-disciplines that include embedded and real-time systems, compilers, networking, and operating systems. Our contention is that a number of structural factors inhibit quality research and decrease the velocity of science. We highlight some of the factors we have encountered in our work and observed in published papers and propose solutions that, if widely adopted, could both increase the productivity of researchers and the quality of their output.
Jan Vitek, Tomas Kalibera
EMSOFT2
2011 Handles revisited: optimising performance and memory costs in a real-time collector
abstract
Compacting garbage collectors must update all references to objects they move. Updating is a lengthy operation but the updates must be transparent to the mutator. The consequence is that no space can be reclaimed until all references have been updated which, in a real-time collector, must be done incrementally. One solution is to replace direct references to objects with handles. Handles offer several advantages to a real-time collector. They eliminate the updating problem. They allow immediate reuse of the space used by evacuated objects. They incur no copy reserve overhead. However, the execution time overhead of handles has led to them being abandoned by most modern systems.
Tomas Kalibera, Richard E. Jones
ISMM1
2011 Replicating real-time garbage collector
abstract
Abstract Real‐time Java is becoming a viable platform for real‐time applications, bringing new challenges to a garbage collector. A real‐time collector has to be incremental as not to cause deadline misses by suspending an application for too long. In particular, if a real‐time collector has to relocate objects in the heap, it must do so incrementally and transparently to the application. This is usually achieved via an indirection that has to be followed on every read and write to the heap. We present an alternative solution, based on object replication, which does not need any special handling for memory reads, but writes are more expensive: every value is written twice. As writes are less frequent than reads, the total overhead is reduced. With our implementation in a research real‐time Java VM and DaCapo, pseudo‐jbb, and SPEC JVM 98 benchmarks, we observe an average speed‐up of 4% on a Linux/x86 platform. Compared with an existing technique for parallel systems, our technique targets uni‐processor green‐threading embedded systems, allowing us to design simpler and more predictable mutator barriers. Thanks to cheap synchronization provided by green threading, our technique features atomic writes to object replicas, providing programmers with the natural behavior in face of unprotected access to shared variables. Copyright © 2010 John Wiley & Sons, Ltd.
Tomas Kalibera
Concurr. Comput. Pract. Exp.1
2011 A family of real-time Java benchmarks
abstract
Abstract Java is becoming a viable platform for real‐time computing. There are production and research real‐time Java VMs, as well as applications in both the military and civil sectors. Technological advances and increased adoption of real‐time Java contrast significantly with the lack of benchmarks. Existing benchmarks are either synthetic micro‐benchmarks, or proprietary, making it difficult to independently verify and repeat reported results. This paper presents the CDx benchmark, a family of open‐source implementations of the same application that target different real‐time virtual machines. CDx is, at its core, a real‐time benchmark with a single periodic task, which implements an idealized aircraft collision detection algorithm. The benchmark can be configured to use different sets of real‐time features and comes with a number of workloads. It can be run on standard Java virtual machines, on real‐time and Safety Critical Java virtual machine, and a C version is provided to compare with native performance. Copyright © 2010 John Wiley & Sons, Ltd.
Tomas Kalibera, Jeff Hagelberg, Petr Maj, Filip Pizlo, Ben L. Titzer, Jan Vitek
Concurr. Comput. Pract. Exp.1
2011 A Hardware Abstraction Layer in Java
abstract
Embedded systems use specialized hardware devices to interact with their environment, and since they have to be dependable, it is attractive to use a modern, type-safe programming language like Java to develop programs for them. Standard Java, as a platform-independent language, delegates access to devices, direct memory access, and interrupt handling to some underlying operating system or kernel, but in the embedded systems domain resources are scarce and a Java Virtual Machine (JVM) without an underlying middleware is an attractive architecture. The contribution of this article is a proposal for Java packages with hardware objects and interrupt handlers that interface to such a JVM. We provide implementations of the proposal directly in hardware, as extensions of standard interpreters, and finally with an operating system middleware. The latter solution is mainly seen as a migration path allowing Java programs to coexist with legacy system components. An important aspect of the proposal is that it is compatible with the Real-Time Specification for Java (RTSJ).
Martin Schoeberl, Stephan Korsholm, Tomas Kalibera, Anders P. Ravn
ACM Trans. Embed. Comput. Syst.3
2011 Scheduling real-time garbage collection on uniprocessors
abstract
Managed languages such as Java and C# are increasingly being considered for hard real-time applications because of their productivity and software engineering advantages. Automatic memory management, or garbage collection, is a key enabler for robust, reusable libraries, yet remains a challenge for analysis and implementation of real-time execution environments. This article comprehensively compares leading approaches to hard real-time garbage collection. There are many design decisions involved in selecting a real-time garbage collection algorithm. For time-based garbage collectors on uniprocessors one must choose whether to use periodic , slack-based or hybrid scheduling. A significant impediment to valid experimental comparison of such choices is that commercial implementations use completely different proprietary infrastructures. We present Minuteman, a framework for experimenting with real-time collection algorithms in the context of a high-performance execution environment for real-time Java. We provide the first comparison of the approaches, both experimentally using realistic workloads, and analytically in terms of schedulability.
Tomas Kalibera, Filip Pizlo, Antony L. Hosking, Jan Vitek
ACM Trans. Comput. Syst.1
2010 Efficient Detection of Errors in Java Components Using Random Environment and Restarts
Pavel Parízek, Tomas Kalibera
TACAS2
2009 Platform-Specific Restrictions on Concurrency in Model Checking of Java Programs
Pavel Parízek, Tomas Kalibera
FMICS2
2009 Scheduling Hard Real-Time Garbage Collection
abstract
Managed languages such as Java and C# are increasingly being considered for hard real-time applications because of their productivity and software engineering advantages. Automatic memory management, or garbage collection, is a key enabler for robust, reusable libraries, yet remains a challenge for analysis and implementation of real-time execution environments. This paper comprehensively compares the two leading approaches to hard real-time garbage collection. While there are many design decisions involved in selecting a real-time garbage collection algorithm, for time-based garbage collectors researchers and practitioners remain undecided as to whether to choose periodic scheduling or slack-based scheduling. A significant impediment to valid experimental comparison is that the commercial implementations use completely different proprietary infrastructures. Here, we present Minuteman, a framework for experimenting with real-time collection algorithms in the context of a high-performance execution environment for real-time Java. We provide the first comparison of the two approaches, both experimentally using realistic workloads, and analytically in terms of schedulability.
Tomas Kalibera, Filip Pizlo, Antony L. Hosking, Jan Vitek
RTSS1
2009 Accurate garbage collection in uncooperative environments revisited
abstract
Abstract Implementing a concurrent programming language such as Java by means of a translator to an existing language is attractive as it provides portability over all platforms supported by the host language and reduces development time—as many low‐level tasks can be delegated to the host compiler. The C and C++ programming languages are popular choices for many language implementations due to the availability of efficient compilers on a wide range of platforms. For garbage‐collected languages, however, they are not a perfect match as no support is provided for accurately discovering pointers to heap‐allocated data on thread stacks. We evaluate several previously published techniques and propose a new mechanism, lazy pointer stacks, for performing accurate garbage collection in such uncooperative environments. We implemented the new technique in the Ovm Java virtual machine with our own Java‐to‐C/C++ compiler using GCC as a back‐end compiler. Our extensive experimental results confirm that lazy pointer stacks outperform existing approaches: we provide a speedup of 4.5% over Henderson's accurate collector with a 17% increase in code size. Accurate collection is essential in the context of real‐time systems, we thus validate our approach with the implementation of a real‐time concurrent garbage collection algorithm. Copyright © 2009 John Wiley & Sons, Ltd.
Jason Baker, Antonio Cunei, Tomas Kalibera, Filip Pizlo, Jan Vitek
Concurr. Comput. Pract. Exp.3
2005 Automated Detection of Performance Regressions: The Mono Experience
abstract
Engineering a large software project involves tracking the impact of development and maintenance changes on the software performance. An approach for tracking the impact is regression benchmarking, which involves automated benchmarking and evaluation of performance at regular intervals. Regression benchmarking must tackle the nondeterminism inherent to contemporary computer systems and execution environments and the impact of the nondeterminism on the results. On the example of a fully automated regression benchmarking environment for the mono open-source project, we show how the problems associated with nondeterminism can be tackled using statistical methods.
Tomas Kalibera, Lubomír Bulej, Petr Tuma 0001
MASCOTS1
2005 Repeated results analysis for middleware regression benchmarking
Lubomír Bulej, Tomas Kalibera, Petr Tuma 0001
Perform. Evaluation2
2004 Regression benchmarking with simple middleware benchmarks
abstract
The paper introduces the concept of regression benchmarking as a variant of regression testing focused at detecting performance regressions. Applying the regression benchmarking in the area of middleware development, the paper explains how regression benchmarking differs from middleware benchmarking in general. On a real-world example of TAO, the paper shows why the existing benchmarks do not give results sufficient for regression benchmarking, and proposes techniques for detecting performance regressions using simple benchmarks.
Lubomír Bulej, Tomas Kalibera, Petr Tuma 0001
IPCCC2