Mark Plesko

dblp:59/1660 · DBLP profile ↗
← Back
2ranked-venue papers
0as first author
0since 2021 · last 2006
—ORCID · none

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

Software engineering, systems software and programming languages · 2

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
2 papers
Concurrent programming · 38% Compilers and program optimization · 35% Runtime systems and virtual machines · 19%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 100%

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

TopicWeightPapersLastEvidence papers
Concurrent programming › atomicity
atomic sections
0.112006
Optimizing memory transactions · PLDI 2006
Runtime systems and virtual machines
garbage collection
0.112006
Optimizing memory transactions · PLDI 2006
Concurrent programming
transactional memory
0.112006
Optimizing memory transactions · PLDI 2006
Compilers and program optimization
compiler correctness
0.012000
A certifying compiler for Java · PLDI 2000
Program verification
proof-carrying code
0.012000
A certifying compiler for Java · PLDI 2000
Compilers and program optimization
verified compilation
0.012000
A certifying compiler for Java · PLDI 2000
Systems and software security
memory safety
0.012000
A certifying compiler for Java · PLDI 2000

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

runtime filtering · 0.1direct access implementation · 0.1type inference · 0.1proof checking · 0.1
YearPublicationVenuePosition
2006 Optimizing memory transactions
abstract
Atomic blocks allow programmers to delimit sections of code as 'atomic', leaving the language's implementation to enforce atomicity. Existing work has shown how to implement atomic blocks over word-based transactional memory that provides scalable multi-processor performance without requiring changes to the basic structure of objects in the heap. However, these implementations perform poorly because they interpose on all accesses to shared memory in the atomic block, redirecting updates to a thread-private log which must be searched by reads in the block and later reconciled with the heap when leaving the block.This paper takes a four-pronged approach to improving performance: (1) we introduce a new 'direct access' implementation that avoids searching thread-private logs, (2) we develop compiler optimizations to reduce the amount of logging (e.g. when a thread accesses the same data repeatedly in an atomic block), (3) we use runtime filtering to detect duplicate log entries that are missed statically, and (4) we present a series of GC-time techniques to compact the logs generated by long-running atomic blocks.Our implementation supports short-running scalable concurrent benchmarks with less than 50\% overhead over a non-thread-safe baseline. We support long atomic blocks containing millions of shared memory accesses with a 2.5-4.5x slowdown.
Tim Harris 0001, Mark Plesko, Avraham Shinnar, David Tarditi
PLDI2
2000 A certifying compiler for Java
abstract
This paper presents the initial results of a project to determine if the techniques of proof-carrying code and certifying compilers can be applied to programming languages of realistic size and complexity. The experiment shows that: (1) it is possible to implement a certifying native-code compiler for a large subset of the Java programming language; (2) the compiler is freely able to apply many standard local and global optimizations; and (3) the PCC binaries it produces are of reasonable size and can be rapidly checked for type safety by a small proof-checker. This paper also presents further evidence that PCC provides several advantages for compiler development. In particular, generating proofs of the target code helps to identify compiler bugs, many of which would have been dicult to discover by testing.
Christopher Colby, Peter Lee 0001, George C. Necula, Fred Blau, Mark Plesko, Kenneth Cline
PLDI5