Demo Data from SIGIR 2026 / reviewers in the wild / expert
Peter Collingbourne
dblp:05/8933 · also Peter Cyrus Collingbourne
· DBLP profile ↗
5ranked-venue papers
3as first author
0since 2021 · last 2014
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 2 first-authorSystems, architecture and hardware · 1 · 1 first-authorSecurity and privacy · 1Theory of computation · 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 |
Program analysis · 35% Program verification · 32% Compilers and program optimization · 20% | |
| Network and information security
1 paper |
Systems and software security · 100% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
GPUs and heterogeneous computing · 33% Parallel and multicore computing · 33% Processor architecture and microarchitecture · 33% |
Topics — the 13 heaviest of 14, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
symbolic execution |
0.3 | 2 | 2014 | Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014 Symbolic crosschecking of floating-point and SIMD code · EuroSys 2011 |
Systems and software security › memory safety
control-flow integrity |
0.2 | 1 | 2014 | Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM · USENIX Security Symposium 2014 |
Systems and software security › memory safety › control-flow integrity
forward-edge control-flow integrity |
0.2 | 1 | 2014 | Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM · USENIX Security Symposium 2014 |
Concurrent programming › concurrency bug detection
data race detection |
0.2 | 1 | 2014 | Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014 |
Program analysis
dynamic analysis |
0.2 | 1 | 2014 | Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014 |
Program verification › code-level verification
GPU kernel verification |
0.2 | 1 | 2014 | Engineering a Static Verification Tool for GPU Kernels · CAV 2014 |
Program verification
static verification |
0.2 | 1 | 2014 | Engineering a Static Verification Tool for GPU Kernels · CAV 2014 |
Program verification › hardware verification
floating-point verification |
0.1 | 1 | 2011 | Symbolic crosschecking of floating-point and SIMD code · EuroSys 2011 |
Compilers and program optimization › vectorization
SIMD vectorization |
0.1 | 1 | 2011 | Symbolic crosschecking of floating-point and SIMD code · EuroSys 2011 |
Parallel and multicore computing
data-parallel programming |
0.1 | 1 | 2014 | Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014 |
GPUs and heterogeneous computing
GPU programming |
0.1 | 1 | 2014 | Engineering a Static Verification Tool for GPU Kernels · CAV 2014 |
Processor architecture and microarchitecture
SIMD |
0.1 | 1 | 2014 | Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014 |
Program analysis
symbolic reasoning |
0.0 | 1 | 2011 | Symbolic crosschecking of floating-point and SIMD code · EuroSys 2011 |
Methods — techniques the papers use, named apart from their topics
symbolic execution · 0.5static verification · 0.4expression matching · 0.4constraint solving · 0.4floating-point symbolic reasoning · 0.1KLEE-FP · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2014 | Engineering a Static Verification Tool for GPU Kernels
Ethel Bardsley, Adam Betts, Nathan Chong, Peter Collingbourne, Pantazis Deligiannis, Alastair F. Donaldson, Jeroen Ketema, Daniel Liew, Shaz Qadeer |
CAV | 4 |
| 2014 | Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM
Caroline Tice, Tom Roeder, Peter Collingbourne, Stephen Checkoway, Úlfar Erlingsson, Luis Lozano, Geoff Pike |
USENIX Security Symposium | 3 |
| 2014 | Symbolic Crosschecking of Data-Parallel Floating-Point CodeabstractWe present a symbolic execution-based technique for cross-checking programs accelerated using SIMD or OpenCL against an unaccelerated version, as well as a technique for detecting data races in OpenCL programs. Our techniques are implemented in KLEE-CL, a tool based on the symbolic execution engine KLEE that supports symbolic reasoning on the equivalence between expressions involving both integer and floating-point operations. While the current generation of constraint solvers provide effective support for integer arithmetic, the situation is different for floating-point arithmetic, due to the complexity inherent in such computations. The key insight behind our approach is that floating-point values are only reliably equal if they are essentially built by the same operations. This allows us to use an algorithm based on symbolic expression matching augmented with canonicalisation rules to determine path equivalence. Under symbolic execution, we have to verify equivalence along every feasible control-flow path. We reduce the branching factor of this process by aggressively merging conditionals, if-converting branches into select operations via an aggressive phi-node folding transformation. To support the Intel Streaming SIMD Extension (SSE) instruction set, we lower SSE instructions to equivalent generic vector operations, which in turn are interpreted in terms of primitive integer and floating-point operations. To support OpenCL programs, we symbolically model the OpenCL environment using an OpenCL runtime library targeted to symbolic execution. We detect data races by keeping track of all memory accesses using a memory log, and reporting a race whenever we detect that two accesses conflict. By representing the memory log symbolically, we are also able to detect races associated with symbolically-indexed accesses of memory objects. We used KLEE-CL to prove the bounded equivalence between scalar and data-parallel versions of floating-point programs and find a number of issues in a variety of open source projects that use SSE and OpenCL, including mismatches between implementations, memory errors, race conditions and a compiler bug. Peter Collingbourne, Cristian Cadar, Paul H. J. Kelly |
IEEE Trans. Software Eng. | 1 |
| 2013 | Interleaving and Lock-Step Semantics for Analysis and Verification of GPU Kernels
Peter Collingbourne, Alastair F. Donaldson, Jeroen Ketema, Shaz Qadeer |
ESOP | 1 |
| 2011 | Symbolic crosschecking of floating-point and SIMD codeabstractWe present an effective technique for crosschecking an IEEE 754 floating-point program and its SIMD-vectorized version, implemented in KLEE-FP, an extension to the KLEE symbolic execution tool that supports symbolic reasoning on the equivalence between floating-point values. Peter Collingbourne, Cristian Cadar, Paul H. J. Kelly |
EuroSys | 1 |