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

Leaf Petersen

dblp:96/5317 · DBLP profile ↗
← Back
7ranked-venue papers
3as first author
0since 2021 · last 2013
—ORCID · none

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

Software engineering, systems software and programming languages · 6 · 3 first-authorSystems, architecture and hardware · 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
3 papers
Programming languages and type systems · 34% Runtime systems and virtual machines · 22% Program analysis · 15%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Parallel and multicore computing · 32% Processor architecture and microarchitecture · 32% Memory systems · 18%

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

TopicWeightPapersLastEvidence papers
Runtime systems and virtual machines
language runtime
0.112007
Enabling scalability and performance in a large scale CMP environment · EuroSys 2007
Processor architecture and microarchitecture
chip multiprocessor
0.112007
Enabling scalability and performance in a large scale CMP environment · EuroSys 2007
Parallel and multicore computing
parallel programming runtimes
0.112007
Enabling scalability and performance in a large scale CMP environment · EuroSys 2007
Program verification › security property verification
memory safety verification
0.112006
A verifiable SSA program representation for aggressive compiler optimization · POPL 2006
Program analysis
program representation
0.112006
A verifiable SSA program representation for aggressive compiler optimization · POPL 2006
Compilers and program optimization › intermediate representation
static single assignment form
0.112006
A verifiable SSA program representation for aggressive compiler optimization · POPL 2006
Programming languages and type systems › type systems
type soundness
0.112006
A verifiable SSA program representation for aggressive compiler optimization · POPL 2006
Programming languages and type systems › type theory
linear type theory
0.012003
A type theory for memory allocation and data layout · POPL 2003
Programming languages and type systems
type theory
0.012003
A type theory for memory allocation and data layout · POPL 2003
Storage systems
data layout
0.012003
A type theory for memory allocation and data layout · POPL 2003
Memory systems › memory management
memory allocation
0.012003
A type theory for memory allocation and data layout · POPL 2003
Runtime systems and virtual machines › garbage collection
copying garbage collection
0.012003
A type theory for memory allocation and data layout · POPL 2003
Runtime systems and virtual machines
garbage collection
0.012003
A type theory for memory allocation and data layout · POPL 2003

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

experimental evaluation · 0.1ordered logic · 0.1modal types · 0.1type system · 0.1SSA · 0.1
YearPublicationVenuePosition
2013 The Intel labs Haskell research compiler
abstract
The Glasgow Haskell Compiler (GHC) is a well supported optimizing compiler for the Haskell programming language, along with its own extensions to the language and libraries. Haskell's lazy semantics imposes a runtime model which is in general difficult to implement efficiently. GHC achieves good performance across a wide variety of programs via aggressive optimization taking advantage of the lack of side effects, and by targeting a carefully tuned virtual machine. The Intel Labs Haskell Research Compiler uses GHC as a frontend, but provides a new whole-program optimizing backend by compiling the GHC intermediate representation to a relatively generic functional language compilation platform. We found that GHC's external Core language was relatively easy to use, but reusing GHC's libraries and achieving full compatibility were harder. For certain classes of programs, our platform provides substantial performance benefits over GHC alone, performing 2x faster than GHC with the LLVM backend on selected modern performance-oriented benchmarks; for other classes of programs, the benefits of GHC's tuned virtual machine continue to outweigh the benefits of more aggressive whole program optimization. Overall we achieve parity with GHC with the LLVM backend. In this paper, we describe our Haskell compiler stack, its implementation and optimization approach, and present benchmark results comparing it to GHC.
Hai Liu 0012, Neal Glew, Leaf Petersen, Todd A. Anderson 0001
Haskell3
2013 Automatic SIMD vectorization for Haskell
abstract
Expressing algorithms using immutable arrays greatly simplifies the challenges of automatic SIMD vectorization, since several important classes of dependency violations cannot occur. The Haskell programming language provides libraries for programming with immutable arrays, and compiler support for optimizing them to eliminate the overhead of intermediate temporary arrays. We describe an implementation of automatic SIMD vectorization in a Haskell compiler which gives substantial vector speedups for a range of programs written in a natural programming style. We compare performance with that of programs compiled by the Glasgow Haskell Compiler.
Leaf Petersen, Dominic A. Orchard, Neal Glew
ICFP1
2012 GC-Safe Interprocedural Unboxing
Leaf Petersen, Neal Glew
CC1
2007 Enabling scalability and performance in a large scale CMP environment
abstract
Hardware trends suggest that large-scale CMP architectures, with tens to hundreds of processing cores on a single piece of silicon, are iminent within the next decade. While existing CMP machines have traditionally been handled in the same way as SMPs, this magnitude of parallelism introduces several fundamental challenges at the architectural level and this, in turn, translates to novel challenges in the design of the software stack for these platforms. This paper presents the "Many Core Run Time" (McRT), a software prototype of an integrated language runtime that was designed to explore configurations of the software stack for enabling performance and scalability on large scale CMP platforms. This paper presents the architecture of McRT and discusses our experiences with the system, including experimental evaluation that lead to several interesting, non-intuitive findings, providing key insights about the structure of the system stack at this scale. A key contribution of this paper is to demonstrate how McRT enables near linear improvements in performance and scalability for desktop workloads such as the popular XviD encoder and a set of RMS (recognition, mining, and synthesis) applications. Another key contribution of this work is its use of McRT to explore non-traditional system configurations such as a light-weight executive in which McRT runs on "bare metal" and replaces the traditional OS. Such configurations are becoming an increasingly attractive alternative to leverage heterogeneous computing uints as seen in today's CPU-GPU configurations.
Bratin Saha, Ali-Reza Adl-Tabatabai, Anwar M. Ghuloum, Mohan Rajagopalan, Richard L. Hudson, Leaf Petersen, Vijay Menon 0002, Brian R. Murphy, Tatiana Shpeisman, Eric Sprangle, Anwar Rohillah, Doug Carmean, Jesse Fang
EuroSys6
2006 A verifiable SSA program representation for aggressive compiler optimization
abstract
We present a verifiable low-level program representation to embed, propagate, and preserve safety information in high perfor-mance compilers for safe languages such as Java and C#. Our representation precisely encodes safety information via static single-assignment (SSA) [11, 3] proof variables that are first-class constructs in the program.We argue that our representation allows a compiler to both (1) express aggressively optimized machine-independent code and (2) leverage existing compiler infrastructure to preserve safety information during optimization. We demonstrate that this approach supports standard compiler optimizations, requires minimal changes to the implementation of those optimizations, and does not artificially impede those optimizations to preserve safety. We also describe a simple type system that formalizes type safety in an SSA-style control-flow graph program representation. Through the types of proof variables, our system enables compositional verification of memory safety in optimized code. Finally, we discuss experiences integrating this representation into the machine-independent global optimizer of STARJIT, a high-performance just-in-time compiler that performs aggressive control-flow, data-flow, and algebraic optimizations and is competitive with top production systems.
Vijay Menon 0002, Neal Glew, Brian R. Murphy, Andrew McCreight, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai, Leaf Petersen
POPL7
2003 A type theory for memory allocation and data layout
abstract
Ordered type theory is an extension of linear type theory in which variables in the context may be neither dropped nor re-ordered. This restriction gives rise to a natural notion of adjacency. We show that a language based on ordered types can use this property to give an exact account of the layout of data in memory. The fuse constructor from ordered logic describes adjacency of values in memory, and the mobility modal describes pointers into the heap. We choose a particular allocation model based on a common implementation scheme for copying garbage collection and show how this permits us to separate out the allocation and initialization of memory locations in such a way as to account for optimizations such as the coalescing of multiple calls to the allocator.
Leaf Petersen, Robert Harper 0001, Karl Crary, Frank Pfenning
POPL1
1997 Subtyping Is Not a Good "Match" for Object-Oriented Languages
Kim B. Bruce, Leaf Petersen, Adrian Fiech
ECOOP2