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 Collingbourne

dblp:05/8933 · also Peter Cyrus Collingbourne · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Program analysis
symbolic execution
0.322014
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.212014
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.212014
Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM · USENIX Security Symposium 2014
Concurrent programming › concurrency bug detection
data race detection
0.212014
Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014
Program analysis
dynamic analysis
0.212014
Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014
Program verification › code-level verification
GPU kernel verification
0.212014
Engineering a Static Verification Tool for GPU Kernels · CAV 2014
Program verification
static verification
0.212014
Engineering a Static Verification Tool for GPU Kernels · CAV 2014
Program verification › hardware verification
floating-point verification
0.112011
Symbolic crosschecking of floating-point and SIMD code · EuroSys 2011
Compilers and program optimization › vectorization
SIMD vectorization
0.112011
Symbolic crosschecking of floating-point and SIMD code · EuroSys 2011
Parallel and multicore computing
data-parallel programming
0.112014
Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014
GPUs and heterogeneous computing
GPU programming
0.112014
Engineering a Static Verification Tool for GPU Kernels · CAV 2014
Processor architecture and microarchitecture
SIMD
0.112014
Symbolic Crosschecking of Data-Parallel Floating-Point Code · IEEE Trans. Software Eng. 2014
Program analysis
symbolic reasoning
0.012011
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
YearPublicationVenuePosition
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
CAV4
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 Symposium3
2014 Symbolic Crosschecking of Data-Parallel Floating-Point Code
abstract
We 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
ESOP1
2011 Symbolic crosschecking of floating-point and SIMD code
abstract
We 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
EuroSys1