Demo Data from EDBT 2026 / reviewers in the wild / expert
Andy Georges
dblp:56/6134
· DBLP profile ↗
9ranked-venue papers
4as first author
0since 2021 · last 2010
0000-0001-7936-5923ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 4 first-authorSystems, architecture and hardware · 2Security and privacy · 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
5 papers |
Performance modeling and evaluation · 100% | |
| Software engineering, system software, and programming languages
4 papers |
Runtime systems and virtual machines · 74% Compilers and program optimization · 26% |
Topics — the 7 heaviest of 7, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Performance modeling and evaluation
workload characterization |
0.2 | 3 | 2008 | Java performance evaluation through rigorous replay compilation · OOPSLA 2008 Method-level phase behavior in java workloads · OOPSLA 2004 How java programs interact with virtual machines at the microarchitectural level · OOPSLA 2003 |
Runtime systems and virtual machines › virtual machine implementation
java virtual machine |
0.1 | 3 | 2007 | Statistically rigorous java performance evaluation · OOPSLA 2007 How java programs interact with virtual machines at the microarchitectural level · OOPSLA 2003 Method-level phase behavior in java workloads · OOPSLA 2004 |
Performance modeling and evaluation
benchmarking |
0.1 | 2 | 2008 | Java performance evaluation through rigorous replay compilation · OOPSLA 2008 Statistically rigorous java performance evaluation · OOPSLA 2007 |
Runtime systems and virtual machines
dynamic compilation |
0.1 | 1 | 2007 | Using hpm-sampling to drive dynamic compilation · OOPSLA 2007 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.1 | 1 | 2007 | Using hpm-sampling to drive dynamic compilation · OOPSLA 2007 |
Performance modeling and evaluation › performance monitoring
hardware performance monitoring |
0.0 | 1 | 2007 | Using hpm-sampling to drive dynamic compilation · OOPSLA 2007 |
Performance modeling and evaluation › performance monitoring
hardware performance counters |
0.0 | 1 | 2003 | How java programs interact with virtual machines at the microarchitectural level · OOPSLA 2003 |
Methods — techniques the papers use, named apart from their topics
statistical analysis · 0.1hardware performance monitor sampling · 0.1benchmarking · 0.1hardware performance monitoring · 0.1dynamic call graph analysis · 0.1replay compilation · 0.1principal component analysis · 0.1performance counters · 0.1cluster analysis · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2010 | Automated just-in-time compiler tuningabstractManaged runtime systems, such as a Java virtual machine (JVM), are complex pieces of software with many interacting components. The Just-In-Time (JIT) compiler is at the core of the virtual machine, however, tuning the compiler for optimum performance is a challenging task. There are (i) many compiler optimizations and options, (ii) there may be multiple optimization levels (e.g., -O0, -O1, -O2), each with a specific optimization plan consisting of a collection of optimizations, (iii) the Adaptive Optimization System (AOS) that decides which method to optimize to which optimization level requires fine-tuning, and (iv) the effectiveness of the optimizations depends on the application as well as on the hardware platform. Current practice is to manually tune the JIT compiler which is both tedious and very time-consuming, and in addition may lead to suboptimal performance. Kenneth Hoste, Andy Georges, Lieven Eeckhout |
CGO | 2 |
| 2008 | Exploiting Hardware Performance CountersabstractWe introduce the usage of hardware performance counters (HPCs) as a new method that allows very precise access to known side channels and also allows access to many new side channels. Many current architectures provide hardware performance counters, which allow the profiling of software during runtime. Though they allow detailed profiling they are noisy by their very nature; HPC hardware is not validated along with the rest of the microprocessor. They are meant to serve as a relative measure and are most commonly used for profiling software projects or operating systems. Furthermore they are only accessible in restricted mode and can only be accessed by the operating system. We discuss this security model and we show first implementation results, which confirm that HPCs can be used to profile relatively short sequences of instructions with high precision. We focus on cache profiling and confirm our results by rerunning a recently published time based cache attack in which we replaced the time profiling function by HPCs. Leif Uhsadel, Andy Georges, Ingrid Verbauwhede |
FDTC | 2 |
| 2008 | Java performance evaluation through rigorous replay compilationabstractA managed runtime environment, such as the Java virtual machine, is non-trivial to benchmark. Java performance is affected in various complex ways by the application and its input, as well as by the virtual machine (JIT optimizer, garbage collector, thread scheduler, etc.). In addition, non-determinism due to timer-based sampling for JIT optimization, thread scheduling, and various system effects further complicate the Java performance benchmarking process. Andy Georges, Lieven Eeckhout, Dries Buytaert |
OOPSLA | 1 |
| 2007 | Using hpm-sampling to drive dynamic compilationabstractAll high-performance production JVMs employ an adaptive strategy for program execution. Methods are first executed unoptimized and then an online profiling mechanism is used to find a subset of methods that should be optimized during the same execution. This paper empirically evaluates the design space of several profilers for initiating dynamic compilation and shows that existing online profiling schemes suffer from several limitations. They provide an insufficient number of samples, are untimely, and have limited accuracy at determining the frequently executed methods. We describe and comprehensively evaluate HPM-sampling, a simple but effective profiling scheme for finding optimization candidates using hardware performance monitors (HPMs) that addresses the aforementioned limitations. We show that HPM-sampling is more accurate; has low overhead; and improves performance by 5.7% on average and up to 18.3% when compared to the default system in Jikes RVM, without changing the compiler. Dries Buytaert, Andy Georges, Michael Hind, Matthew Arnold, Lieven Eeckhout, Koen De Bosschere |
OOPSLA | 2 |
| 2007 | Statistically rigorous java performance evaluationabstractJava performance is far from being trivial to benchmark because it is affected by various factors such as the Java application, its input, the virtual machine, the garbage collector, the heap size, etc. In addition, non-determinism at run-time causes the execution time of a Java program to differ from run to run. There are a number of sources of non-determinism such as Just-In-Time (JIT) compilation and optimization in the virtual machine (VM) driven by timer-based method sampling, thread scheduling, garbage collection, and various. Andy Georges, Dries Buytaert, Lieven Eeckhout |
OOPSLA | 1 |
| 2006 | Performance prediction based on inherent program similarityabstractA key challenge in benchmarking is to predict the performance of an application of interest on a number of platforms in order to determine which platform yields the best performance. This paper proposes an approach for doing this. We measure a number of microarchitecture-independent characteristics from the application of interest, and relate these characteristics to the characteristics of the programs from a previously profiled benchmark suite. Based on the similarity of the application of interest with programs in the benchmark suite, we make a performance prediction of the application of interest. We propose and evaluate three approaches (normalization, principal components analysis and genetic algorithm) to transform the raw data set of microarchitecture-independent characteristics into a benchmark space in which the relative distance is a measure for the relative performance differences. We evaluate our approach using all of the SPEC CPU2000 benchmarks and real hardware performance numbers from the SPEC website. Our framework estimates per-benchmark machine ranks with a 0.89 average and a 0.80 worst case rank correlation coefficient. Kenneth Hoste, Aashish Phansalkar, Lieven Eeckhout, Andy Georges, Lizy Kurian John, Koen De Bosschere |
PACT | 4 |
| 2004 | Method-level phase behavior in java workloadsabstractJava workloads are becoming more and more prominent on various computing devices. Understanding the behavior of a Java workload which includes the interaction between the application and the virtual machine (VM), is thus of primary importance during performance analysis and optimization. Moreover, as contemporary software projects are increasing in complexity, automatic performance analysis techniques are indispensable. This paper proposes an off-line method-level phase analysis approach for Java workloads that consists of three steps. In the first step, the execution time is computed for each method invocation. Using an off-line tool, we subsequently analyze the dynamic call graph (that is annotated with the method invocations' execution times) to identify method-level phases. Finally, we measure performance characteristics for each of the selected phases. This is done using hardware performance monitors. As such, our approach allows for linking microprocessor-level information at the individual methods in the Java application's source code. This is extremely interesting information during performance analysis and optimization as programmers can use this information to optimize their code. We evaluate our approach in the Jikes RVM on an IA-32 platform using the SPECjvm98 and SPECjbb2000 benchmarks. This is done according to a number of important criteria: the overhead during profiling, the variability within and between the phases, its applicability in Java workload characterization (measuring performance characteristics of the various VM components) and application bottleneck identification. Andy Georges, Dries Buytaert, Lieven Eeckhout, Koen De Bosschere |
OOPSLA | 1 |
| 2004 | JaRec: a portable record/replay environment for multi-threaded Java applicationsabstractAbstract This paper describes JaRec, a portable record/replay system for Java. It correctly replays multi‐threaded, data‐race free Java applications, by recording the order of synchronization operations, and by executing them in the same order during replay. The record/replay infrastructure is developed in Java, and does not require a modification of the Java Virtual Machine (JVM) if it provides the JVM Profiler Interface (JVMPI). If the JVM does not support JVMPI, which is used for intercepting the loaded classes, only a minor modification to the JVM is required in order to run the system. On ystems with limited memory resources, JaRec can be executed in a distributed fashion. This also makes it suitable to aid debugging of multi‐threaded applications on embedded systems. Copyright © 2004 John Wiley & Sons, Ltd. Andy Georges, Mark Christiaens, Michiel Ronsse, Koen De Bosschere |
Softw. Pract. Exp. | 1 |
| 2003 | How java programs interact with virtual machines at the microarchitectural levelabstractJava workloads are becoming increasingly prominent on various platforms ranging from embedded systems, over general-purpose computers to high-end servers. Understanding the implications of all the aspects involved when running Java workloads, is thus extremely important during the design of a system that will run such workloads. In other words, understanding the interaction between the Java application, its input and the virtual machine it runs on, is key to a succesful design. The goal of this paper is to study this complex interaction at the microarchitectural level, e.g., by analyzing the branch behavior, the cache behavior, etc. This is done by measuring a large number of performance characteristics using performance counters on an AMD K7 Duron microprocessor. These performance characteristics are measured for seven virtual machine configurations, and a collection of Java benchmarks with corresponding inputs coming from the SPECjvm98 benchmark suite, the SPECjbb2000 benchmark suite, the Java Grande Forum benchmark suite and an open-source raytracer, called Raja with 19 scene descriptions. This large amount of data is further analyzed using statistical data analysis techniques, namely principal components analysis and cluster analysis. These techniques provide useful insights in an understandable way.From our experiments, we conclude that (i) the behavior observed at the microarchitectural level is primarily determined by the virtual machine for small input sets, e.g., the SPECjvm98 s1 input set; (ii) the behavior can be quite different for various input sets, e.g., short-running versus long-running benchmarks; (iii) for long-running benchmarks with few hot spots, the behavior can be primarily determined by the Java program and not the virtual machine, i.e., all the virtual machines optimize the hot spots to similarly behaving native code; (iv) in general, the behavior of a Java application running on one virtual machine can be significantly different from running on another virtual machine. These conclusions warn researchers working on Java workloads to be careful when using a limited number of Java benchmarks or virtual machines since this might lead to biased conclusions. Lieven Eeckhout, Andy Georges, Koen De Bosschere |
OOPSLA | 2 |