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. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Peter Pirkelbauer

dblp:31/1579 · DBLP profile ↗
← Back
18ranked-venue papers
8as first author
1since 2021 · last 2025
0000-0003-4185-5008ORCID · corroborated

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

Software engineering, systems software and programming languages · 9 · 4 first-author · 1 since 2021Systems, architecture and hardware · 4 · 3 first-authorApplied, interdisciplinary, general and emerging computing · 3 · 1 first-authorArtificial intelligence and machine learning · 1Databases, data management, data science and information retrieval · 1 · 1 since 2021

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
1 paper
Parallel and multicore computing · 100%

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

TopicWeightPapersLastEvidence papers
Parallel and multicore computing › parallel algorithms › parallel primitives
parallel reduction
0.412019
Blaze-Tasks: A Framework for Computing Parallel Reductions over Tasks · ACM Trans. Archit. Code Optim. 2019
Parallel and multicore computing › parallel programming models
task parallelism
0.412019
Blaze-Tasks: A Framework for Computing Parallel Reductions over Tasks · ACM Trans. Archit. Code Optim. 2019
Parallel and multicore computing
task scheduling
0.412019
Blaze-Tasks: A Framework for Computing Parallel Reductions over Tasks · ACM Trans. Archit. Code Optim. 2019
Parallel and multicore computing
load balancing
0.112019
Blaze-Tasks: A Framework for Computing Parallel Reductions over Tasks · ACM Trans. Archit. Code Optim. 2019
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing
0.112019
Blaze-Tasks: A Framework for Computing Parallel Reductions over Tasks · ACM Trans. Archit. Code Optim. 2019

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

lock-free techniques · 0.4generic programming · 0.4
YearPublicationVenuePosition
2025 FormalSpecCpp: A Dataset of C++ Formal Specifications created using LLMs
abstract
FormalSpecCpp is a dataset designed to fill the gap in standardized benchmarks for verifying formal specifications in C++ programs. To the best of our knowledge, this is the first comprehensive collection of C++ programs with well-defined preconditions and postconditions. It provides a structured benchmark for evaluating specification inference tools and testing the accuracy of generated specifications. Researchers and developers can use this dataset to benchmark specification inference tools, fine-tune Large Language Models (LLMs) for automated specification generation, and analyze the role of formal specifications in improving program verification and automated testing. By making this dataset publicly available, we aim to advance research in program verification, specification inference, and AIassisted software development. The dataset and the code are available at https://github.com/MadhuNimmo/FormalSpecCpp.
Madhurima Chakraborty, Peter Pirkelbauer, Qing Yi
MSR2
2020 XPlacer: Automatic Analysis of Data Access Patterns on Heterogeneous CPU/GPU Systems
abstract
This paper presents XPlacer, a framework to automatically analyze problematic data access patterns in C++ and CUDA code. XPlacer records heap memory operations in both host and device code for later analysis. To this end, XPlacer instruments read and write operations, function calls, and kernel launches. Programmers mark points in the program execution where the recorded data is analyzed and anomalies diagnosed. XPlacer reports data access anti-patterns, including alternating CPU/GPU accesses to the same memory, memory with low access density, and unnecessary data transfers. The diagnostic also produces summative information about the recorded accesses, which aids users in identifying code that could degrade performance. The paper evaluates XPlacer using LULESH, a Lawrence Livermore proxy application, Rodina benchmarks, and an implementation of the Smith-Waterman algorithm. XPlacer diagnosed several performance issues in these codes. The elimination of a performance problem in LULESH resulted in a 3x speedup on a heterogeneous platform combining Intel CPUs and Nvidia GPUs.
Peter Pirkelbauer, Pei-Hung Lin, Tristan Vanderbruggen, Chunhua Liao
IPDPS1
2020 Optimized Transactional Data Structure Approach to Concurrency Control for In-Memory Databases
abstract
The optimistic concurrency control (OCC) utilized by in-memory databases performs writes on thread-local copies and makes the writes visible upon passing validation. However, high contention workloads suffer from failure of the validation step due to non-semantic memory access conflicts, leading to frequent transaction aborts. In this work, we improve the commit rate of in-memory databases by replacing OCC and the underlying indexing of key-value entries in the Silo database with a lock-free transactional dictionary. To further optimize the transactional commit rate, we present transactional merging, a technique that relaxes the semantic conflict resolution of transactional data structures by merging conflicting operations to reduce aborts. Transactional merging guarantees strict serializability through a strategy that recovers the correct abstract state given that a transaction attempting to merge operations aborts. The experimental evaluation demonstrates that the lock-free transactional dictionary with transactional merging achieves an average speedup of 175% over OCC and the Masstree indexing used in the Silo database for write-dominated workloads on a non-uniform memory access system.
Christina L. Peterson, Amalee Wilson, Peter Pirkelbauer, Damian Dechev
SBAC-PAD3
2019 Exploring dynamic load imbalance solutions with the CoMD proxy application
Olga Pearce, Hadia Ahmed, Rasmus W. Larsen, Peter Pirkelbauer, David F. Richards
Future Gener. Comput. Syst.4
2019 Blaze-Tasks: A Framework for Computing Parallel Reductions over Tasks
abstract
Compared to threads, tasks are a more fine-grained alternative. The task parallel programming model offers benefits in terms of better performance portability and better load-balancing for problems that exhibit nonuniform workloads. A common scenario of task parallel programming is that a task is recursively decomposed into smaller sub-tasks. Depending on the problem domain, the number of created sub-tasks may be nonuniform, thereby creating potential for significant load imbalances in the system. Dynamic load-balancing mechanisms will distribute the tasks across available threads. The final result of a computation may be modeled as a reduction over the results of all sub-tasks. This article describes a simple, yet effective prototype framework, Blaze-Tasks, for task scheduling and task reductions on shared memory architectures. The framework has been designed with lock-free techniques and generic programming principles in mind. Blaze-Tasks is implemented entirely in C++17 and is thus portable. To load-balance the computation, Blaze-Tasks uses task stealing. To manage contention on a task pool, the number of lock-free attempts to steal a task depends on the distance between thief and pool owner and the estimated number of tasks in a victim’s pool. This article evaluates the Blaze framework on Intel and IBM dual-socket systems using nine benchmarks and compares its performance with other task parallel frameworks. While Cilk outperforms Blaze on Intel on most benchmarks, the evaluation shows that Blaze is competitive with OpenMP and other library-based implementations. On IBM, the experiments show that Blaze outperforms other approaches on most benchmarks.
Peter Pirkelbauer, Amalee Wilson, Christina L. Peterson, Damian Dechev
ACM Trans. Archit. Code Optim.1
2017 Ariadne: Hybridizing Directed Model Checking and Static Analysis
abstract
While directed model checking has proven to be a powerful tool in the fight against concurrency bugs, scalability remains a concern due to the combinatorial explosion in size of the state space. Overcoming that combinatorial explosion requires the selection and/or parameterization of meta*-heuristics, but we are left with a persistent problem of having to provide or compute specialized knowledge of the program under consideration, and this limits the practical value of the technique. To circumvent that, this paper investigates directed model checking as a platform for the synthesis of results from other analyses. We introduce an open-source tool, Ariadne, which translates reports of suspected race conditions of a static analyzer (Petablox) to instrumentation using a source-to-source compiler (ROSE) that can be exploited by a model checker (Java Pathfinder). We detail the algorithm used, present experimental results, and outline directions for future research.
Reed Milewicz, Peter Pirkelbauer
ICST2
2017 Refinement of structural heuristics for model checking of concurrent programs through data mining
Reed Milewicz, Peter Pirkelbauer
Comput. Lang. Syst. Struct.2
2016 A Portable Lock-Free Bounded Queue
Peter Pirkelbauer, Reed Milewicz, Juan Felipe Gonzalez
ICA3PP1
2016 Lightweight runtime checking of C programs with RTC
Reed Milewicz, Rajeshwar Vanka, James Tuck 0001, Daniel J. Quinlan, Peter Pirkelbauer
Comput. Lang. Syst. Struct.5
2013 SimpleConcepts: Support for Constraints on Generic Types in C++
Reed Milewicz, Marjan Mernik, Peter Pirkelbauer
FedCSIS3
2010 Understanding and Effectively Preventing the ABA Problem in Descriptor-Based Lock-Free Designs
abstract
An increasing number of modern real-time systems and the nowadays ubiquitous multicore architectures demand the application of programming techniques for reliable and efficient concurrent synchronization. Some recently developed Compare-And-Swap (CAS) based nonblocking techniques hold the promise of delivering practical and safer concurrency. The ABA problem is a fundamental problem to many CAS-based designs. Its significance has increased with the suggested use of CAS as a core atomic primitive for the implementation of portable lock-free algorithms. The ABA problem's occurrence is due to the intricate and complex interactions of the application's concurrent operations and, if not remedied, ABA can significantly corrupt the semantics of a nonblocking algorithm. The current state of the art leaves the elimination of the ABA hazards to the ingenuity of the software designer. In this work we provide the first systematic and detailed analysis of the ABA problem in lock-free Descriptor-based designs. We study the semantics of Descriptor-based lock-free data structures and propose a classification of their operations that helps us better understand the ABA problem and subsequently derive an effective ABA prevention scheme. Our ABA prevention approach outperforms by a large factor the use of the alternative CAS-based ABA prevention schemes. It offers speeds comparable to the use of the architecture-specific CAS2 instruction used for version counting. We demonstrate our ABA prevention scheme by integrating it into an advanced nonblocking data structure, a lock-free dynamically resizable array.
Damian Dechev, Peter Pirkelbauer, Bjarne Stroustrup
ISORC2
2010 Support for the Evolution of C++ Generic Functions
Peter Pirkelbauer, Damian Dechev, Bjarne Stroustrup
SLE1
2010 Source Code Rejuvenation Is Not Refactoring
Peter Pirkelbauer, Damian Dechev, Bjarne Stroustrup
SOFSEM1
2010 Dynamic algorithm selection for runtime concepts
Peter Pirkelbauer, Sean Parent, Mat Marcus, Bjarne Stroustrup
Sci. Comput. Program.1
2010 Design and evaluation of C++ open multi-methods
Peter Pirkelbauer, Yuriy Solodkyy, Bjarne Stroustrup
Sci. Comput. Program.1
2007 Open multi-methods for c++
abstract
Multiple dispatch - the selection of a function to be invoked based on the dynamic type of two or more arguments - is a solution to several classical problems in object-oriented programming. Open multi-methods generalize multiple dispatch towards open-class extensions, which improve separation of concerns and provisions for retroactive design. We present the rationale, design, implementation, and performance of a language feature, called open multi-methods, for C++. Our open multi-methods support both repeated and virtual inheritance. Our call resolution rules generalize both virtual function dispatch and overload resolution semantics. After using all information from argument types, these rules can resolve further ambiguities by using covariant return types. Great care was taken to integrate open multi-methods with existing C++ language features and rules. We describe a model implementation and compare its performance and space requirements to existing open multi-method extensions and workaround techniques for C++. Compared to these techniques, our approach is simpler to use, catches more user mistakes, and resolves more ambiguities through link-time analysis, runs significantly faster, and requires less memory. In particular, the runtime cost of calling an open multi method is constant and less than the cost of a double dispatch (two virtual function calls). Finally, we provide a sketch of a design for open multi-methods in the presence of dynamic loading and linking of libraries.
Peter Pirkelbauer, Yuriy Solodkyy, Bjarne Stroustrup
GPCE1
2006 Lock-Free Dynamically Resizable Arrays
Damian Dechev, Peter Pirkelbauer, Bjarne Stroustrup
OPODIS2
1997 Zero-Overhead Exeption Handling Using Metaprogramming
Markus Hof, Hanspeter Mössenböck, Peter Pirkelbauer
SOFSEM3