EDBT 2026 Demo / reviewers in the wild / expert
Tomas Kalibera
dblp:45/5559
· DBLP profile ↗
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
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Empirical software engineering › software engineering research methodology
empirical study |
0.2 | 1 | 2016 | 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.2 | 2 | 2011 | 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.1 | 1 | 2012 | A black-box approach to understanding concurrency in DaCapo · OOPSLA 2012 |
Operating systems › resource management › process management
CPU scheduling |
0.1 | 1 | 2011 | Scheduling real-time garbage collection on uniprocessors · ACM Trans. Comput. Syst. 2011 |
Runtime systems and virtual machines › garbage collection
real-time garbage collection |
0.1 | 1 | 2009 | Scheduling Hard Real-Time Garbage Collection · RTSS 2009 |
Embedded and real-time systems
real-time scheduling |
0.1 | 1 | 2009 | Scheduling Hard Real-Time Garbage Collection · RTSS 2009 |
Embedded and real-time systems › real-time scheduling
schedulability analysis |
0.1 | 1 | 2009 | Scheduling Hard Real-Time Garbage Collection · RTSS 2009 |
Programming languages and type systems
managed languages |
0.1 | 2 | 2011 | 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
| Year | Publication | Venue | Position |
|---|---|---|---|
| 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 RabstractDynamic 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 |
VEE | 1 |
| 2013 | Rigorous benchmarking in reasonable timeabstractExperimental 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 |
ISMM | 1 |
| 2012 | A black-box approach to understanding concurrency in DaCapoabstractIncreasing 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 |
OOPSLA | 1 |
| 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 researchabstractComputer 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 |
EMSOFT | 2 |
| 2011 | Handles revisited: optimising performance and memory costs in a real-time collectorabstractCompacting 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 |
ISMM | 1 |
| 2011 | Replicating real-time garbage collectorabstractAbstract 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 benchmarksabstractAbstract 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 JavaabstractEmbedded 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 uniprocessorsabstractManaged 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 |
TACAS | 2 |
| 2009 | Platform-Specific Restrictions on Concurrency in Model Checking of Java Programs
Pavel Parízek, Tomas Kalibera |
FMICS | 2 |
| 2009 | Scheduling Hard Real-Time Garbage CollectionabstractManaged 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 |
RTSS | 1 |
| 2009 | Accurate garbage collection in uncooperative environments revisitedabstractAbstract 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 ExperienceabstractEngineering 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 |
MASCOTS | 1 |
| 2005 | Repeated results analysis for middleware regression benchmarking
Lubomír Bulej, Tomas Kalibera, Petr Tuma 0001 |
Perform. Evaluation | 2 |
| 2004 | Regression benchmarking with simple middleware benchmarksabstractThe 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 |
IPCCC | 2 |