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

Keith H. Randall

dblp:80/2393 · DBLP profile ↗
← Back
12ranked-venue papers
1as first author
0since 2021 · last 2002
0009-0000-9075-1737ORCID · corroborated

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

Systems, architecture and hardware · 6Software engineering, systems software and programming languages · 4Databases, data management, data science and information retrieval · 1 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-authorTheory 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
5 papers
Compilers and program optimization · 65% Program analysis · 24% Runtime systems and virtual machines · 6%
Computer architecture, parallel and distributed computing, and storage systems
3 papers
Parallel and multicore computing · 86% Electronic design automation · 11% Integrated circuit design · 3%
Theoretical computer science
1 paper
Automated reasoning and model checking · 100%

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

TopicWeightPapersLastEvidence papers
Compilers and program optimization
code generation
0.012002
Denali: A Goal-directed Superoptimizer · PLDI 2002
Compilers and program optimization › compiler optimization
superoptimization
0.012002
Denali: A Goal-directed Superoptimizer · PLDI 2002
Automated reasoning and model checking
automated theorem proving
0.012002
Denali: A Goal-directed Superoptimizer · PLDI 2002
Compilers and program optimization › compiler optimization › redundancy elimination
array bounds check elimination
0.012001
Related Field Analysis · PLDI 2001
Program analysis
static analysis
0.012001
Related Field Analysis · PLDI 2001
Compilers and program optimization
compiler optimization
0.012000
Field analysis: getting useful and low-cost interprocedural information · PLDI 2000
Program analysis › static analysis
interprocedural analysis
0.012000
Field analysis: getting useful and low-cost interprocedural information · PLDI 2000
Compilers and program optimization › compiler construction
compilation strategies
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Parallel and multicore computing
parallel programming models
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Parallel and multicore computing
parallel programming runtimes
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Runtime systems and virtual machines › parallel runtime systems
multithreaded runtime
0.011995
Cilk: An Efficient Multithreaded Runtime System · PPoPP 1995
Parallel and multicore computing › task scheduling › dynamic scheduling
work-stealing scheduler
0.011995
Cilk: An Efficient Multithreaded Runtime System · PPoPP 1995
Electronic design automation
timing analysis
0.011993
TIM: A Timing Package for Two-Phase, Level-Clocked Circuitry · DAC 1993
Programming languages and type systems › object-oriented programming
java
0.012001
Related Field Analysis · PLDI 2001
Compilers and program optimization
optimizing compiler
0.012001
Related Field Analysis · PLDI 2001
Concurrent programming › synchronization
mutual exclusion
0.011998
The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998
Parallel and multicore computing
load balancing
0.011995
Cilk: An Efficient Multithreaded Runtime System · PPoPP 1995

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

automated theorem proving · 0.1work-stealing scheduling · 0.0dijkstra-like mutual-exclusion protocol · 0.0related field analysis · 0.0constraint-based analysis · 0.0critical path analysis · 0.0access modifier analysis · 0.0work-stealing · 0.0work stealing · 0.0timing analysis · 0.0
YearPublicationVenuePosition
2002 The Link Database: Fast Access to Graphs of the Web
abstract
The Connectivity Server is a special-purpose database whose schema models the Web as a graph: a set of nodes (URL) connected by directed edges (hyperlinks). The Link Database provides fast access to the hyperlinks. To support easy implementation of a wide range of graph algorithms we have found it important to fit the Link Database into RAM. In the first version of the Link Database, we achieved this fit by using machines with lots of memory (8 GB), and storing each hyperlink in 32 bits. However, this approach was limited to roughly 100 million Web pages. This paper presents techniques to compress the links to accommodate larger graphs. Our techniques combine well-known compression methods with methods that depend on the properties of the Web graph. The first compression technique takes advantage of the fact that most hyperlinks on most Web pages point to other pages on the same host as the page itself. The second technique takes advantage of the fact that many pages on the same host share hyperlinks, that is, they tend to point to a common set of pages. Together, these techniques reduce space requirements to under 6 bits per link. While (de)compression adds latency to the hyperlink access time, we can still compute the strongly connected components of a 6 billion-edge graph in 22 minutes and run applications such as Kleinberg's HITS in real time. This paper describes our techniques for compressing the Link Database, and provides performance numbers for compression ratios and decompression speed.
Keith H. Randall, Raymie Stata, Janet L. Wiener, Rajiv Wickremesinghe
DCC1
2002 Denali: A Goal-directed Superoptimizer
abstract
This paper provides a preliminary report on a new research project that aims to construct a code generator that uses an automatic theorem prover to produce very high-quality (in fact, nearly mathematically optimal) machine code for modern architectures. The code generator is not intended for use in an ordinary compiler, but is intended to be used for inner loops and critical subroutines in those cases where peak performance is required, no available compiler generates adequately efficient code, and where current engineering practice is to use hand-coded machine language. The paper describes the design of the superoptimizer, and presents some encouraging preliminary results.
Rajeev Joshi, Greg Nelson, Keith H. Randall
PLDI3
2001 Related Field Analysis
abstract
We present an extension of field analysis (sec [4]) called related field analysis which is a general technique for proving relationships between two or more fields of an object. We demonstrate the feasibility and applicability of related field analysis by applying it to the problem of removing array bounds checks. For array bounds check removal, we define a pair of related fields to be an integer field and an array field for which the integer field has a known relationship to the length of the array. This related field information can then be used to remove array bounds checks from accesses to the array field. Our results show that related field analysis can remove an average of 50% of the dynamic array bounds checks on a wide range of applications.We describe the implementation of related field analysis in the Swift optimizing compiler for Java, as well as the optimizations that exploit the results of related field analysis.
Aneesh Aggarwal, Keith H. Randall
PLDI2
2000 Field analysis: getting useful and low-cost interprocedural information
abstract
We present a new limited form of interprocedural analysis called field analysis that can be used by a compiler to reduce the costs of modern language features such as object-oriented programming, automatic memory management, and run-time checks required for type safety. Unlike many previous interprocedural analyses, our analysis is cheap, and does not require access to the entire program. Field analysis exploits the declared access restrictions placed on fields in a modular language (e.g. field access modifiers in Java) in order to determine useful properties of fields of an object. We describe our implementation of field analysis in the Swift optimizing compiler for Java, as well a set of optimizations that exploit the results of field analysis. These optimizations include removal of run-time tests, compile-time resolution of method calls, object inlining, removal of unnecessary synchronization, and stack allocation. Our results demonstrate that field analysis is efficient and effective. Speedups average 7% on a wide range of applications, with some times reduced by up to 27%. Compile time overhead of field analysis is about 10%.
Sanjay Ghemawat, Keith H. Randall, Daniel J. Scales
PLDI2
1998 The Implementation of the Cilk-5 Multithreaded Language
abstract
The fifth release of the multithreaded language Cilk uses a provably good "work-stealing" scheduling algorithm similar to the first system, but the language has been completely redesigned and the runtime system completely reengineered. The efficiency of the new implementation was aided by a clear strategy that arose from a theoretical analysis of the scheduling algorithm: concentrate on minimizing overheads that contribute to the work, even at the expense of overheads that contribute to the critical path. Although it may seem counterintuitive to move overheads onto the critical path, this "work-first" principle has led to a portable Cilk-5 implementation in which the typical cost of spawning a parallel thread is only between 2 and 6 times the cost of a C function call on a variety of contemporary machines. Many Cilk programs run on one processor with virtually no degradation compared to equivalent C programs. This paper describes how the work-first principle was exploited in the design of Cilk-5's compiler and its runtime system. In particular, we present Cilk-5's novel "two-clone" compilation strategy and its Dijkstra-like mutual-exclusion protocol for implementing the ready deque in the work-stealing scheduler.
Matteo Frigo, Charles E. Leiserson, Keith H. Randall
PLDI3
1998 Detecting Data Rase in Cilk Programs That use Locks
abstract
When two parallel threads holding no locks in common access the same memory location and at least one of the threads modifies the location, a "data race" occurs, which is usually a bug.This paper describes the algorithms and strategies used by a debugging tool, called the Nondeterminator-2, which checks for data races in programs coded in the Cilk multithreaded language.Like its predecessor, the Nondeterminator, which checks for simple "determinacy" races, the Nondeterminator-2 is a debugging tool, not a verifier, since it checks for data races only in the computation generated by a serial execution of the program on a given input.We give an algorithm, ALL-SETS, that determines whether the computation generated by a serial execution of a Cilk program on a given input contains a race.For a program that runs serially in time T, accesses V shared memory locations, uses a total of n locks, and holds at most k << n locks simultaneously, ALL-SETS runs in O(r#Tcx(V,V)) time and O(dV) space, where a is Tarjan's functional inverse of Ackermann's function.Since ALL-SETS may be too inefficient in the worst case, we propose a much more efficient algorithm which can be used to detect races in programs that obey the "umbrella" locking discipline, a programming methodology that is more flexible than similar disciplines proposed in the literature.We present an algorithm, BRELLY, which detects violations of the umbrella discipline in O(kT cx(V, V)) time using O(kV) space.We also prove that any "abelian" Cilk program, one whose critical sections commute, produces a determinate final state if it is deadlock free and if it generates any computation which is datarace free.Thus, the Nondeterminator-2's two algorithms can verify the determinacy of a deadlock-free abelian program running on a given input.
Guang-Ien Cheng, Mingdong Feng, Charles E. Leiserson, Keith H. Randall, Andrew F. Stark
SPAA4
1997 Parallel Algorithms for the Circuit Value Update Problem
Charles E. Leiserson, Keith H. Randall
Theory Comput. Syst.2
1996 An Analysis of Dag-Consistent Distributed Shared-Memory Algorithms
abstract
In this paper, we analyze the performance of parallel mttltithreaded algorithms that use dag-consistent distributed shared memory.Specifically, we analyze execution time, page faults, and space requirements for multithreaded algorithms executed by a workstealing thread scheduler and the BACKER coherence algorithm for maintaining dag consistency.We prove that if the accesses to the backing store are random and independent (the BACKER algorithm actually uses hashing), then the expected execution time of a "fully strict" multithreaded computation on P processors, each with an LRU cache of C pages, is O(T1 (C)/P+ ntC7"), where T1(C) is the total work of the computation including page faults, L is its criticalpath length excluding page faults, and m is the minimum page transfer time.As a corollary to this theorem, we show that the expected number of page faults incurred by a computation executed on P pro-
Robert D. Blumofe, Matteo Frigo, Christopher F. Joerg, Charles E. Leiserson, Keith H. Randall
SPAA5
1996 Cilk: An Efficient Multithreaded Runtime System
abstract
Cilk (pronounced “silk”) is a C-based runtime system for multithreaded parallel programming. In this paper, we document the efficiency of the Cilk work-stealing scheduler, both empirically and analytically. We show that on real and synthetic applications, the “work” and “critical-path length” of a Cilk computation can be used to model performance accurately. Consequently, a Cilk programmer can focus on reducing the computation's work and critical-path length, insulated from load balancing and other runtime scheduling issues. We also prove that for the class of “fully strict” (well-structured) programs, the Cilk scheduler achieves space, time, and communication bounds all within a constant factor of optimal. The Cilk runtime system currently runs on the Connection Machine CM5 MPP, the Intel Paragon MPP, the Sun Sparcstation SMP, and the Cilk-NOW network of workstations. Applications written in Cilk include protein folding, graphic rendering, backtrack search, and the ★Socrates chess program, which won second prize in the 1995 ICCA World Computer Chess Championship.
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, Yuli Zhou
J. Parallel Distributed Comput.5
1995 Cilk: An Efficient Multithreaded Runtime System
abstract
Cilk (pronounced “silk”) is a C-based runtime system for multi-threaded parallel programming. In this paper, we document the efficiency of the Cilk work-stealing scheduler, both empirically and analytically. We show that on real and synthetic applications, the “work” and “critical path” of a Cilk computation can be used to accurately model performance. Consequently, a Cilk programmer can focus on reducing the work and critical path of his computation, insulated from load balancing and other runtime scheduling issues. We also prove that for the class of “fully strict” (well-structured) programs, the Cilk scheduler achieves space, time and communication bounds all within a constant factor of optimal.
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, Yuli Zhou
PPoPP5
1995 Parallel Algorithms for the Circuit Value Update Problem
abstract
Article Parallel algorithms for the circuit value update problem Share on Authors: Charles E. Leiserson MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MAView Profile , Keith H. Randall MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MAView Profile Authors Info & Claims SPAA '95: Proceedings of the seventh annual ACM symposium on Parallel algorithms and architecturesJuly 1995 Pages 13–20https://doi.org/10.1145/215399.215406Published:20 July 1995 1citation245DownloadsMetricsTotal Citations1Total Downloads245Last 12 Months0Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
Charles E. Leiserson, Keith H. Randall
SPAA2
1993 TIM: A Timing Package for Two-Phase, Level-Clocked Circuitry
abstract
Article TIM: a timing package for two-phase, level-clocked circuitry Share on Authors: Marios C. Papaefthymiou View Profile , Keith H. Randall View Profile Authors Info & Claims DAC '93: Proceedings of the 30th international Design Automation ConferenceJuly 1993 Pages 497–502https://doi.org/10.1145/157485.164998Online:01 July 1993Publication History 27citation162DownloadsMetricsTotal Citations27Total Downloads162Last 12 Months1Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access
Marios C. Papaefthymiou, Keith H. Randall
DAC2