EDBT 2026 Demo / reviewers in the wild / expert
Marek Olszewski
dblp:84/5149
· DBLP profile ↗
9ranked-venue papers
4as first author
0since 2021 · last 2012
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 8 · 4 first-authorSoftware engineering, systems software and programming languages · 4 · 2 first-author
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 |
Concurrent programming · 37% Program analysis · 24% Programming languages and type systems · 10% | |
| Computer architecture, parallel and distributed computing, and storage systems
3 papers |
Parallel and multicore computing · 63% Processor architecture and microarchitecture · 22% High-performance computing · 15% |
Topics — the 13 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2012 | Aikido: accelerating shared data dynamic analyses · ASPLOS 2012 |
Program analysis
dynamic analysis |
0.1 | 1 | 2012 | Aikido: accelerating shared data dynamic analyses · ASPLOS 2012 |
Compilers and program optimization
autotuning |
0.1 | 1 | 2009 | PetaBricks: a language and compiler for algorithmic choice · PLDI 2009 |
Concurrent programming
determinism |
0.1 | 1 | 2009 | Kendo: efficient deterministic multithreading in software · ASPLOS 2009 |
Concurrent programming › deterministic execution
deterministic multithreading |
0.1 | 1 | 2009 | Kendo: efficient deterministic multithreading in software · ASPLOS 2009 |
Programming languages and type systems
language design |
0.1 | 1 | 2009 | PetaBricks: a language and compiler for algorithmic choice · PLDI 2009 |
Parallel and multicore computing › deterministic execution
deterministic multithreading |
0.1 | 1 | 2009 | Kendo: efficient deterministic multithreading in software · ASPLOS 2009 |
Program analysis › dynamic analysis
dynamic instrumentation |
0.1 | 1 | 2007 | JIT instrumentation: a novel approach to dynamically instrument operating systems · EuroSys 2007 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.1 | 1 | 2007 | JIT instrumentation: a novel approach to dynamically instrument operating systems · EuroSys 2007 |
Operating systems
kernel instrumentation |
0.1 | 1 | 2007 | JIT instrumentation: a novel approach to dynamically instrument operating systems · EuroSys 2007 |
Processor architecture and microarchitecture › chip multiprocessor
shared-memory multicore |
0.0 | 1 | 2012 | Aikido: accelerating shared data dynamic analyses · ASPLOS 2012 |
Parallel and multicore computing
parallel programming models |
0.0 | 1 | 2009 | Kendo: efficient deterministic multithreading in software · ASPLOS 2009 |
High-performance computing › performance engineering
performance portability |
0.0 | 1 | 2009 | PetaBricks: a language and compiler for algorithmic choice · PLDI 2009 |
Methods — techniques the papers use, named apart from their topics
vector clocks · 0.3hardware protection mechanisms · 0.3dynamic binary rewriting · 0.3probe-based instrumentation · 0.1just-in-time compilation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2012 | Aikido: accelerating shared data dynamic analysesabstractDespite a burgeoning demand for parallel programs, the tools available to developers working on shared-memory multicore processors have lagged behind. One reason for this is the lack of hardware support for inspecting the complex behavior of these parallel programs. Inter-thread communication, which must be instrumented for many types of analyses, may occur with any memory operation. To detect such thread communication in software, many existing tools require the instrumentation of all memory operations, which leads to significant performance overheads. To reduce this overhead, some existing tools resort to random sampling of memory operations, which introduces false negatives. Unfortunately, neither of these approaches provide the speed and accuracy programmers have traditionally expected from their tools. In this work, we present Aikido, a new system and framework that enables the development of efficient and transparent analyses that operate on shared data. Aikido uses a hybrid of existing hardware features and dynamic binary rewriting to detect thread communication with low overhead. Aikido runs a custom hypervisor below the operating system, which exposes per-thread hardware protection mechanisms not available in any widely used operating system. This hybrid approach allows us to benefit from the low cost of detecting memory accesses with hardware, while maintaining the word-level accuracy of a software-only approach. To evaluate our framework, we have implemented an Aikido-enabled vector clock race detector. Our results show that the Aikido enabled race-detector outperforms existing techniques that provide similar accuracy by up to 6.0x, and 76% on average, on the PARSEC benchmark suite. Marek Olszewski, David Koh, Jason Ansel, Saman P. Amarasinghe |
ASPLOS | 1 |
| 2012 | Siblingrivalry: online autotuning through local competitionsabstractModern high performance libraries, such as ATLAS and FFTW, and programming languages, such as PetaBricks, have shown that autotuning computer programs can lead to significant speedups. However, autotuning can be burdensome to the deployment of a program, since the tuning process can take a long time and should be re-run whenever the program, microarchitecture, execution environment, or tool chain changes. Failure to re-autotune programs often leads to widespread use of sub-optimal algorithms. With the growth of cloud computing, where computations can run in environments with unknown load and migrate between different (possibly unknown) microarchitectures, the need for online autotuning has become increasingly important. Jason Ansel, Maciej Pacula, Yee Lok Wong, Cy P. Chan, Marek Olszewski, Una-May O'Reilly, Saman P. Amarasinghe |
CASES | 5 |
| 2011 | Language and compiler support for auto-tuning variable-accuracy algorithmsabstractApproximating ideal program outputs is a common technique for solving computationally difficult problems, for adhering to processing or timing constraints, and for performance optimization in situations where perfect precision is not necessary. To this end, programmers often use approximation algorithms, iterative methods, data resampling, and other heuristics. However, programming such variable accuracy algorithms presents difficult challenges since the optimal algorithms and parameters may change with different accuracy requirements and usage environments. This problem is further compounded when multiple variable accuracy algorithms are nested together due to the complex way that accuracy requirements can propagate across algorithms and because of the size of the set of allowable compositions. As a result, programmers often deal with this issue in an ad-hoc manner that can sometimes violate sound programming practices such as maintaining library abstractions. In this paper, we propose language extensions that expose trade-offs between time and accuracy to the compiler. The compiler performs fully automatic compile-time and installtime autotuning and analyses in order to construct optimized algorithms to achieve any given target accuracy. We present novel compiler techniques and a structured genetic tuning algorithm to search the space of candidate algorithms and accuracies in the presence of recursion and sub-calls to other variable accuracy code. These techniques benefit both the library writer, by providing an easy way to describe and search the parameter and algorithmic choice space, and the library user, by allowing high level specification of accuracy requirements which are then met automatically without the need for the user to understand any algorithm-specific parameters. Additionally, we present a new suite of benchmarks, written in our language, to examine the efficacy of our techniques. Our experimental results show that by relaxing accuracy requirements, we can easily obtain performance improvements ranging from 1.1× to orders of magnitude of speedup. Jason Ansel, Yee Lok Wong, Cy P. Chan, Marek Olszewski, Alan Edelman, Saman P. Amarasinghe |
CGO | 4 |
| 2010 | Simplifying concurrent algorithms by exploiting hardware transactional memoryabstractWe explore the potential of hardware transactional memory (HTM) to improve concurrent algorithms. We illustrate a number of use cases in which HTM enables significantly simpler code to achieve similar or better performance than existing algorithms for conventional architectures. We use Sun's prototype multicore chip, code-named Rock, to experiment with these algorithms, and discuss ways in which its limitations prevent better results, or would prevent production use of algorithms even if they are successful. Our use cases include concurrent data structures such as double ended queues, work stealing queues and scalable non-zero indicators, as well as a scalable malloc implementation and a simulated annealing application. We believe that our paper makes a compelling case that HTM has substantial potential to make effective concurrent programming easier, and that we have made valuable contributions in guiding designers of future HTM features to exploit this potential. David Dice, Yossi Lev, Virendra J. Marathe, Mark Moir, Daniel Nussbaum, Marek Olszewski |
SPAA | 6 |
| 2009 | Kendo: efficient deterministic multithreading in softwareabstractAlthough chip-multiprocessors have become the industry standard, developing parallel applications that target them remains a daunting task. Non-determinism, inherent in threaded applications, causes significant challenges for parallel programmers by hindering their ability to create parallel applications with repeatable results. As a consequence, parallel applications are significantly harder to debug, test, and maintain than sequential programs. Marek Olszewski, Jason Ansel, Saman P. Amarasinghe |
ASPLOS | 1 |
| 2009 | PetaBricks: a language and compiler for algorithmic choiceabstractIt is often impossible to obtain a one-size-fits-all solution for high performance algorithms when considering different choices for data distributions, parallelism, transformations, and blocking. The best solution to these choices is often tightly coupled to different architectures, problem sizes, data, and available system resources. In some cases, completely different algorithms may provide the best performance. Current compiler and programming language techniques are able to change some of these parameters, but today there is no simple way for the programmer to express or the compiler to choose different algorithms to handle different parts of the data. Existing solutions normally can handle only coarse-grained, library level selections or hand coded cutoffs between base cases and recursive cases. Jason Ansel, Cy P. Chan, Yee Lok Wong, Marek Olszewski, Alan Edelman, Saman P. Amarasinghe |
PLDI | 4 |
| 2009 | Scalable reader-writer locksabstractWe present three new reader-writer lock algorithms that scale under high read-only contention. Many previous reader-writer locks suffer significant degradation when many readers attempt to acquire the lock concurrently, even though they are all allowed to hold the lock at the same time. In contrast, our locks scale almost perfectly when there is only read contention on a 4-chip system with a total of 256 hardware threads. Yossi Lev, Victor Luchangco, Marek Olszewski |
SPAA | 3 |
| 2007 | JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory
Marek Olszewski, Jeremy Cutler, J. Gregory Steffan |
PACT | 1 |
| 2007 | JIT instrumentation: a novel approach to dynamically instrument operating systemsabstractAs modern operating systems become more complex, understanding their inner workings is increasingly difficult. Dynamic kernel instrumentation is a well established method of obtaining insight into the workings of an OS, with applications including debugging, profiling and monitoring, and security auditing. To date, all dynamic instrumentation systems for operating systems follow the probe-based instrumentation paradigm. While efficient on fixed-length instruction set architectures, probes are extremely expensive on variable-length ISAs such as the popular Intel x86 and AMD x86-64. We propose using just-in-time (JIT) instrumentation to overcome this problem. While common in user space, JIT instrumentation has not until now been attempted in kernel space. In this work, we show the feasibility and desirability of kernel-based JIT instrumentation for operating systems with our novel prototype, implemented as a Linux kernel module. The prototype is fully SMP capable. We evaluate our prototype against the popular Kprobes Linux instrumentation tool. Our prototype outperforms Kprobes, at both micro and macro levels, by orders of magnitude when applying medium- and fine-grained instrumentation. Marek Olszewski, Keir Mierle, Adam Czajkowski, Angela Demke Brown |
EuroSys | 1 |