EDBT 2026 Demo / reviewers in the wild / expert
Charles E. Leiserson
dblp:l/CELeiserson
· DBLP profile ↗
87ranked-venue papers
26as first author
3since 2021 · last 2025
0000-0001-6386-5552ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 51 · 12 first-author · 2 since 2021Theory of computation · 26 · 13 first-authorSoftware engineering, systems software and programming languages · 3Applied, interdisciplinary, general and emerging computing · 3Artificial intelligence and machine learning · 2 · 1 since 2021Databases, data management, data science and information retrieval · 2 · 1 first-authorGraphics, computer vision, multimedia, augmented reality and games · 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.
| Computer architecture, parallel and distributed computing, and storage systems
33 papers |
Parallel and multicore computing · 53% Performance modeling and evaluation · 24% Memory systems · 9% | |
| Artificial intelligence
2 papers |
Graph learning · 52% Language models and text generation · 24% Multi-agent systems · 24% | |
| Software engineering, system software, and programming languages
13 papers |
Program synthesis and code generation · 62% Compilers and program optimization · 21% Concurrent programming · 13% | |
| Theoretical computer science
11 papers |
Algorithms and data structures · 78% Computational complexity · 20% Combinatorics and discrete mathematics · 1% |
Topics — the 30 heaviest of 93, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Natural language and speech › Language models and text generation
large language model |
0.9 | 1 | 2025 | Lessons Learned: A Multi-Agent Framework for Code LLMs to Learn and Improve · NeurIPS 2025 |
Knowledge, reasoning and agents › Multi-agent systems › multi-agent collaboration
LLM-based multi-agent collaboration |
0.9 | 1 | 2025 | Lessons Learned: A Multi-Agent Framework for Code LLMs to Learn and Improve · NeurIPS 2025 |
Program synthesis and code generation
code generation with language models |
0.9 | 1 | 2025 | Lessons Learned: A Multi-Agent Framework for Code LLMs to Learn and Improve · NeurIPS 2025 |
Performance modeling and evaluation
software performance engineering |
0.9 | 1 | 2025 | Setting a Course for Post-Moore Software Performance · PPoPP 2025 |
Machine learning › Graph learning
dynamic graph learning |
0.4 | 1 | 2020 | EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs · AAAI 2020 |
Machine learning › Graph learning › dynamic graph learning
dynamic node classification |
0.4 | 1 | 2020 | EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs · AAAI 2020 |
Machine learning › Graph learning › graph neural network
graph convolutional network |
0.4 | 1 | 2020 | EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs · AAAI 2020 |
Machine learning › Graph learning
graph neural network |
0.4 | 1 | 2020 | EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs · AAAI 2020 |
Parallel and multicore computing › parallel programming models › task parallelism
fork-join parallelism |
0.4 | 2 | 2017 | Tapir: Embedding Fork-Join Parallelism into LLVM's Intermediate Representation · PPoPP 2017 Helper locks for fork-join parallel programming · PPoPP 2010 |
Algorithms and data structures
dynamic programming |
0.3 | 2 | 2016 | AUTOGEN: automatic discovery of cache-oblivious parallel recursive algorithms for solving dynamic programs · PPoPP 2016 Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations · OOPSLA 2016 |
Compilers and program optimization
intermediate representation |
0.3 | 1 | 2017 | Tapir: Embedding Fork-Join Parallelism into LLVM's Intermediate Representation · PPoPP 2017 |
Program synthesis and code generation
constraint-based synthesis |
0.2 | 1 | 2016 | Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations · OOPSLA 2016 |
Program synthesis and code generation
deductive program synthesis |
0.2 | 1 | 2016 | Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations · OOPSLA 2016 |
Program synthesis and code generation
inductive program synthesis |
0.2 | 1 | 2016 | Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations · OOPSLA 2016 |
Parallel and multicore computing › parallel algorithms
divide-and-conquer |
0.2 | 1 | 2016 | AUTOGEN: automatic discovery of cache-oblivious parallel recursive algorithms for solving dynamic programs · PPoPP 2016 |
Parallel and multicore computing
parallel programming models |
0.2 | 3 | 2010 | Helper locks for fork-join parallel programming · PPoPP 2010 The Cilk++ concurrency platform · DAC 2009 The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998 |
Parallel and multicore computing › load balancing › dynamic load balancing
work stealing |
0.2 | 5 | 2008 | Adaptive work-stealing with parallelism feedback · ACM Trans. Comput. Syst. 2008 Adaptive work stealing with parallelism feedback · PPoPP 2007 Provably Efficient Online Nonclairvoyant Adaptive Scheduling · IEEE Trans. Parallel Distributed Syst. 2008 |
Memory systems › memory hierarchy
cache hierarchy |
0.2 | 2 | 2012 | Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012 Cache-Oblivious Algorithms · FOCS 1999 |
Memory systems › cache
cache-oblivious algorithms |
0.2 | 2 | 2012 | Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012 Cache-Oblivious Algorithms · FOCS 1999 |
Parallel and multicore computing
parallel programming runtimes |
0.2 | 2 | 2012 | Deterministic parallel random-number generation for dynamic-multithreading platforms · PPoPP 2012 The Implementation of the Cilk-5 Multithreaded Language · PLDI 1998 |
Computational complexity › algebraic complexity
matrix multiplication |
0.1 | 1 | 2012 | Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012 |
Algorithms and data structures › sequence algorithms
sorting |
0.1 | 1 | 2012 | Cache-Oblivious Algorithms · ACM Trans. Algorithms 2012 |
Parallel and multicore computing › parallel scheduling
runtime scheduling |
0.1 | 2 | 2007 | Adaptive work stealing with parallelism feedback · PPoPP 2007 Adaptive scheduling with parallelism feedback · PPoPP 2006 |
Machine learning › Graph learning
link prediction |
0.1 | 1 | 2020 | EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs · AAAI 2020 |
Parallel and multicore computing
parallel scheduling |
0.1 | 3 | 2008 | Adaptive work-stealing with parallelism feedback · ACM Trans. Comput. Syst. 2008 Space-Efficient Scheduling of Multithreaded Computations · SIAM J. Comput. 1998 Space-efficient scheduling of multithreaded computations · STOC 1993 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2009 | The Cilk++ concurrency platform · DAC 2009 |
Compilers and program optimization
parallelizing compiler |
0.1 | 1 | 2009 | The Cilk++ concurrency platform · DAC 2009 |
Parallel and multicore computing › load balancing
runtime load balancing |
0.1 | 1 | 2009 | The Cilk++ concurrency platform · DAC 2009 |
Parallel and multicore computing › parallel programming models
task-based programming |
0.1 | 1 | 2009 | The Cilk++ concurrency platform · DAC 2009 |
Embedded and real-time systems › real-time scheduling
multiprocessor scheduling |
0.1 | 1 | 2008 | Provably Efficient Online Nonclairvoyant Adaptive Scheduling · IEEE Trans. Parallel Distributed Syst. 2008 |
Methods — techniques the papers use, named apart from their topics
multi-agent framework · 1.7lesson-based collaboration · 1.7vectorization · 0.9meta-programming · 0.9loop unrolling · 0.9caching · 0.9recursive access pattern identification · 0.8automatic algorithm discovery · 0.8LLVM · 0.6refinement types · 0.5deductive reasoning · 0.5constraint solving · 0.5recurrent neural network · 0.4trim analysis · 0.3pedigree mechanism · 0.3work stealing · 0.2ideal-cache model · 0.1LRU replacement · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Lessons Learned: A Multi-Agent Framework for Code LLMs to Learn and ImproveabstractRecent studies show that LLMs possess different skills and specialize in different tasks. In fact, we observe that their varied performance occur in several levels of granularity. For example, in the code optimization task, code LLMs excel at different optimization categories and no one dominates others. This observation prompts the question of how one leverages multiple LLM agents to solve a coding problem without knowing their complementary strengths a priori. We argue that a team of agents can learn from each other's successes and failures so as to improve their own performance. Thus, a lesson is the knowledge produced by an agent and passed on to other agents in the collective solution process. We propose a lesson-based collaboration framework, design the lesson solicitation--banking--selection mechanism, and demonstrate that a team of small LLMs with lessons learned can outperform a much larger LLM and other multi-LLM collaboration methods. Yuanzhe Liu 0001, Ryan Deng, Tim Kaler, Xuhao Chen 0001, Charles E. Leiserson, Jie Chen 0007 |
NeurIPS | 5 |
| 2025 | Setting a Course for Post-Moore Software PerformanceabstractSoftware performance engineering is the science and art of making code run fast or otherwise limiting its consumption of resources, such as energy, memory footprint, network utilization, response time, etc. Performance engineering encompasses parallel computing, but it also includes other techniques, such as caching, vectorization, algorithms, bit tricks, loop unrolling, compiler-switch selection, tailoring code to the architecture, exploiting sparsity, changing data representation, metaprogramming, etc. I will explain why the end of Moore's Law makes software performance engineering a critical technical skill for the future. I will also argue that the PPoPP community is ideally positioned to show leadership in SPE and that it would be wise to change the meaning of its acronym to "Principles and Practice of Performance Programming." Charles E. Leiserson |
PPoPP | 1 |
| 2023 | The Connection Machine CM-5, Moore's Law, and the Future of Computational PerformanceabstractIn June 1993, the Connection Machine Model CM-5 Supercomputer [6] manufactured by Thinking Machines Corporation was the most powerful computer in the world [10]. At the time, Moore's Law [8, 9] was about halfway through its roughly 60-year reign, and indeed, your smartphone today is likely more powerful than the CM-5, no matter how you want to measure it: FLOPS, bisection bandwidth, storage, etc. As one of the earliest commercially successful parallel supercomputers, the CM-5 network architecture introduced many innovations: a user-level network interface, a fat-tree [5] data network, a global synchronization network, and a system-wide parallel diagnostic network. The CM-5 architecture delivered unprecedented computing power for its day while also simplifying the process of coding for parallel performance. Bradley C. Kuszmaul, Charles E. Leiserson |
SPAA | 2 |
| 2020 | EvolveGCN: Evolving Graph Convolutional Networks for Dynamic GraphsabstractGraph representation learning resurges as a trending research subject owing to the widespread use of deep learning for Euclidean data, which inspire various creative designs of neural networks in the non-Euclidean domain, particularly graphs. With the success of these graph neural networks (GNN) in the static setting, we approach further practical scenarios where the graph dynamically evolves. Existing approaches typically resort to node embeddings and use a recurrent neural network (RNN, broadly speaking) to regulate the embeddings and learn the temporal dynamics. These methods require the knowledge of a node in the full time span (including both training and testing) and are less applicable to the frequent change of the node set. In some extreme scenarios, the node sets at different time steps may completely differ. To resolve this challenge, we propose EvolveGCN, which adapts the graph convolutional network (GCN) model along the temporal dimension without resorting to node embeddings. The proposed approach captures the dynamism of the graph sequence through using an RNN to evolve the GCN parameters. Two architectures are considered for the parameter evolution. We evaluate the proposed approach on tasks including link prediction, edge classification, and node classification. The experimental results indicate a generally higher performance of EvolveGCN compared with related approaches. The code is available at https://github.com/IBM/EvolveGCN. Aldo Pareja, Giacomo Domeniconi, Jie Chen 0007, Tengfei Ma 0001, Toyotaro Suzumura, Hiroki Kanezashi, Tim Kaler, Tao B. Schardl, Charles E. Leiserson |
AAAI | 9 |
| 2018 | The Resurgence of Software Performance EngineeringabstractToday, most application developers write code without much regard for how quickly it will run. Moreover, once the code is written, it is rare for it to be reengineered to run faster. But two technology trends of historic proportions are instigating a resurgence in software performance engineering, the art of making code run fast. The first is the emergence of cloud computing, where the economics of renting computation, as opposed to buying it, heightens the utility of application speed. The second is the end of Moore's Law, the 50-year technology trend which has, until recently, relentlessly doubled the number of transistors on a semiconductor chip every two years. The end of Moore's Law will cause industry to look beyond semiconductor manufacturers for computing performance. As a result of these two trends, application programmers will increasingly find themselves turning to software performance engineering in order to develop innovative products and applications. Charles E. Leiserson |
SPAA | 1 |
| 2018 | Brief Announcement: Open CilkabstractOpen Cilk is a new open-source platform to support Cilk multithreaded programming, especially for researchers and teachers. Open Cilk aims to provide a full-featured implementation of Cilk that is easy to modify and extend. Based on the award-winning Tapir/LLVM compiler, Open Cilk will provide a streamlined runtime system and feature comprehensive static instrumentation for dynamic-analysis tools. As a community-infrastructure project, Open Cilk encourages contributions from researchers in the areas of languages, compilers, runtime systems, tools, libraries, and benchmarks. Tao B. Schardl, I-Ting Angelina Lee, Charles E. Leiserson |
SPAA | 3 |
| 2017 | Tapir: Embedding Fork-Join Parallelism into LLVM's Intermediate RepresentationabstractThis paper explores how fork-join parallelism, as supported by concurrency platforms such as Cilk and OpenMP, can be embedded into a compiler's intermediate representation (IR). Mainstream compilers typically treat parallel linguistic constructs as syntactic sugar for function calls into a parallel runtime. These calls prevent the compiler from performing optimizations across parallel control constructs. Remedying this situation is generally thought to require an extensive reworking of compiler analyses and code transformations to handle parallel semantics. Tao B. Schardl, William S. Moses, Charles E. Leiserson |
PPoPP | 3 |
| 2017 | Autotuning divide-and-conquer stencil computationsabstractSummary This paper explores autotuning strategies for serial divide‐and‐conquer stencil computations, comparing the efficacy of traditional “heuristic” autotuning with that of “pruned‐exhaustive” autotuning. We present a pruned‐exhaustive autotuner called Ztune that searches for optimal divide‐and‐conquer trees for stencil computations. Ztune uses three pruning properties—space‐time equivalence, divide subsumption, and favored dimension—that greatly reduce the size of the search domain without significantly sacrificing the quality of the autotuned code. We compared the performance of Ztune with that of a state‐of‐the‐art heuristic autotuner called OpenTuner in tuning the divide‐and‐conquer algorithm used in Pochoir stencil compiler. Over a nightly run on ten application benchmarks across two machines with different hardware configurations, the Ztuned code ran 5%–12%faster on average, and the OpenTuner tuned code ran from 9%slower to 2%faster on average, than Pochoir's default code. In the best case, the Ztuned code ran 40%faster, and the OpenTuner tuned code ran 33%faster than Pochoir's code. Whereas the autotuning time of Ztune for each benchmark could be measured in minutes, to achieve comparable results, the autotuning time of OpenTuner was typically measured in hours or days. Surprisingly, for some benchmarks, Ztune actually autotuned faster than the time it takes to perform the stencil computation once. Ekanathan Palamadai Natarajan, Maryam Mehri Dehnavi, Charles E. Leiserson |
Concurr. Comput. Pract. Exp. | 3 |
| 2016 | Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformationsabstractWe introduce a framework allowing domain experts to manipulate computational terms in the interest of deriving better, more efficient implementations.It employs deductive reasoning to generate provably correct efficient implementations from a very high-level specification of an algorithm, and inductive constraint-based synthesis to improve automation. Semantic information is encoded into program terms through the use of refinement types. Shachar Itzhaky, Rohit Singh 0002, Armando Solar-Lezama, Kuat Yessenov, Yongquan Lu, Charles E. Leiserson, Rezaul Alam Chowdhury |
OOPSLA | 6 |
| 2016 | AUTOGEN: automatic discovery of cache-oblivious parallel recursive algorithms for solving dynamic programsabstractWe present AUTOGEN---an algorithm that for a wide class of dynamic programming (DP) problems automatically discovers highly efficient cache-oblivious parallel recursive divide-and-conquer algorithms from inefficient iterative descriptions of DP recurrences. AUTOGEN analyzes the set of DP table locations accessed by the iterative algorithm when run on a DP table of small size, and automatically identifies a recursive access pattern and a corresponding provably correct recursive algorithm for solving the DP recurrence. We use AUTOGEN to autodiscover efficient algorithms for several well-known problems. Our experimental results show that several autodiscovered algorithms significantly outperform parallel looping and tiled loop-based algorithms. Also these algorithms are less sensitive to fluctuations of memory and bandwidth compared with their looping counterparts, and their running times and energy profiles remain relatively more stable. To the best of our knowledge, AUTOGEN is the first algorithm that can automatically discover new nontrivial divide-and-conquer algorithms. Rezaul Alam Chowdhury, Pramod Ganapathi, Jesmin Jahan Tithi, Charles Bachmeier, Bradley C. Kuszmaul, Charles E. Leiserson, Armando Solar-Lezama |
PPoPP | 6 |
| 2016 | On the efficiency of localized work stealing
Warut Suksompong, Charles E. Leiserson, Tao B. Schardl |
Inf. Process. Lett. | 2 |
| 2016 | A simple deterministic algorithm for guaranteeing the forward progress of transactionsabstractThis paper describes a remarkably simple deterministic (not probabilistic) contention-management algorithm for guaranteeing the forward progress of transactions — avoiding deadlocks , livelocks, and other anomalies. The transactions must be finite (no infinite loops), but on each restart, a transaction may access different shared-memory locations. The algorithm supports irrevocable transactions as long as the transaction satisfies a simple ordering constraint. In particular, a transaction that accesses only one shared-memory location is never aborted. The algorithm is suitable for both hardware and software transactional-memory systems. It also can be used in some contexts as a locking protocol for implementing transactions “by hand.” Charles E. Leiserson |
Inf. Syst. | 1 |
| 2016 | Upper Bounds on Number of Steals in Rooted Trees
Charles E. Leiserson, Tao B. Schardl, Warut Suksompong |
Theory Comput. Syst. | 1 |
| 2015 | The Cilkprof Scalability ProfilerabstractCilkprof is a scalability profiler for multithreaded Cilk computations. Unlike its predecessor Cilkview, which analyzes only the whole-program scalability of a Cilk computation, Cilkprof collects work (serial running time) and span (critical-path length) data for each call site in the computation to assess how much each call site contributes to the overall work and span. Profiling work and span in this way enables a programmer to quickly diagnose scalability bottlenecks in a Cilk program. Despite the detail and quantity of information required to collect these measurements, Cilkprof runs with only constant asymptotic slowdown over the serial running time of the parallel computation. As an example of Cilkprof's usefulness, we used Cilkprof to diagnose a scalability bottleneck in an 1800-line parallel breadth-first search (PBFS) code. By examining Cilkprof's output in tandem with the source code, we were able to zero in on a call site within the PBFS routine that imposed a scalability bottleneck. A minor code modification then improved the parallelism of PBFS by a factor of 5. Using Cilkprof, it took us less than two hours to find and fix a scalability bug which had, until then, eluded us for months. This paper describes the Cilkprof algorithm and proves theoretically using an amortization argument that Cilkprof incurs only constant overhead compared with the application's native serial running time. Cilkprof was implemented by compiler instrumentation, that is, by modifying the LLVM compiler to insert instrumentation into user programs. On a suite of 16 application benchmarks, Cilkprof incurs a geometric-mean multiplicative overhead of only 1.9 and a maximum multiplicative overhead of only 7.4 compared with running the benchmarks without instrumentation. Tao B. Schardl, Bradley C. Kuszmaul, I-Ting Angelina Lee, William M. Leiserson, Charles E. Leiserson |
SPAA | 5 |
| 2014 | Ordering heuristics for parallel graph coloringabstractThis paper introduces the largest-log-degree-first (LLF) and smallest-log-degree-last (SLL) ordering heuristics for parallel greedy graph-coloring algorithms, which are inspired by the largest-degree-first (LF) and smallest-degree-last (SL) serial heuristics, respectively. We show that although LF and SL, in practice, generate colorings with relatively small numbers of colors, they are vulnerable to adversarial inputs for which any parallelization yields a poor parallel speedup. In contrast, LLF and SLL allow for provably good speedups on arbitrary inputs while, in practice, producing colorings of competitive quality to their serial analogs. William Hasenplaugh, Tim Kaler, Tao B. Schardl, Charles E. Leiserson |
SPAA | 4 |
| 2014 | Executing dynamic data-graph computations deterministically using chromatic schedulingabstractA data-graph computation — popularized by such programming systems as Galois, Pregel, GraphLab, PowerGraph, and GraphChi — is an algorithm that performs local updates on the vertices of a graph. During each round of a data-graph computation, an update function atomically modifies the data associated with a vertex as a function of the vertex's prior data and that of adjacent vertices. A dynamic data-graph computation updates only an active subset of the vertices during a round, and those updates determine the set of active vertices for the next round. Tim Kaler, William Hasenplaugh, Tao B. Schardl, Charles E. Leiserson |
SPAA | 4 |
| 2013 | On-the-fly pipeline parallelismabstractPipeline parallelism organizes a parallel program as a linear sequence of s stages. Each stage processes elements of a data stream, passing each processed data element to the next stage, and then taking on a new element before the subsequent stages have necessarily completed their processing. Pipeline parallelism is used especially in streaming applications that perform video, audio, and digital signal processing. Three out of 13 benchmarks in PARSEC, a popular software benchmark suite designed for shared-memory multiprocessors, can be expressed as pipeline parallelism. I-Ting Angelina Lee, Charles E. Leiserson, Tao B. Schardl, Jim Sukha, Zhunping Zhang |
SPAA | 2 |
| 2012 | Deterministic parallel random-number generation for dynamic-multithreading platformsabstractExisting concurrency platforms for dynamic multithreading do not provide repeatable parallel random-number generators. This paper proposes that a mechanism called pedigrees be built into the runtime system to enable efficient deterministic parallel random-number generation. Experiments with the open-source MIT Cilk runtime system show that the overhead for maintaining pedigrees is negligible. Specifically, on a suite of 10 benchmarks, the relative overhead of Cilk with pedigrees to the original Cilk has a geometric mean of less than 1%. Charles E. Leiserson, Tao B. Schardl, Jim Sukha |
PPoPP | 1 |
| 2012 | Cache-conscious scheduling of streaming applicationsabstractThis paper considers the problem of scheduling streaming applications on uniprocessors in order to minimize the number of cache-misses. Streaming applications are represented as a directed graph (or multigraph), where nodes are computation modules and edges are channels. When a module fires, it consumes some data-items from its input channels and produces some items on its output channels. In addition, each module may have some state (either code or data) which represents the memory locations that must be loaded into cache in order to execute the module. We consider synchronous dataflow graphs where the input and output rates of modules are known in advance and do not change during execution. We also assume that the state size of modules is known in advance. Kunal Agrawal 0001, Jeremy T. Fineman, Jordan Krage, Charles E. Leiserson, Sivan Toledo |
SPAA | 4 |
| 2012 | Memory-mapping support for reducer hyperobjectsabstractReducer hyperobjects (reducers) provide a linguistic abstraction for dynamic multithreading that allows different branches of a parallel program to maintain coordinated local views of the same nonlocal variable. In this paper, we investigate how thread-local memory mapping (TLMM) can be used to improve the performance of reducers. Existing concurrency platforms that support reducer hyperobjects, such as Intel Cilk Plus and Cilk++, take a hypermap approach in which a hash table is used to map reducer objects to their local views. The overhead of the hash table is costly --- roughly 12x overhead compared to a normal L1-cache memory access on an AMD Opteron 8354. We replaced the Intel Cilk Plus runtime system with our own Cilk-M runtime system which uses TLMM to implement a reducer mechanism that supports a reducer lookup using only two memory accesses and a predictable branch, which is roughly a 3x overhead compared to an ordinary L1-cache memory access. An empirical evaluation shows that the Cilk-M memory-mapping approach is close to 4x faster than the Cilk Plus hypermap approach. Furthermore, the memory-mapping approach admits better locality than the hypermap approach during parallel execution, which allows an application using reducers to scale better. I-Ting Angelina Lee, Aamir Shafi, Charles E. Leiserson |
SPAA | 3 |
| 2012 | Cache-Oblivious AlgorithmsabstractThis article presents asymptotically optimal algorithms for rectangular matrix transpose, fast Fourier transform (FFT), and sorting on computers with multiple levels of caching. Unlike previous optimal algorithms, these algorithms are cache oblivious : no variables dependent on hardware parameters, such as cache size and cache-line length, need to be tuned to achieve optimality. Nevertheless, these algorithms use an optimal amount of work and move data optimally among multiple levels of cache. For a cache with size M and cache-line length B where M = Ω ( B 2 ), the number of cache misses for an m × n matrix transpose is Θ (1 + mn / B ). The number of cache misses for either an n -point FFT or the sorting of n numbers is Θ (1 + ( n / B )(1 + log M n )). We also give a Θ ( mnp )-work algorithm to multiply an m × n matrix by an n × p matrix that incurs Θ (1 + ( mn + np + mp )/ B + mnp / B √ M ) cache faults. We introduce an “ideal-cache” model to analyze our algorithms. We prove that an optimal cache-oblivious algorithm designed for two levels of memory is also optimal for multiple levels and that the assumption of optimal replacement in the ideal-cache model can be simulated efficiently by LRU replacement. We offer empirical evidence that cache-oblivious algorithms perform well in practice. Matteo Frigo, Charles E. Leiserson, Harald Prokop, Sridhar Ramachandran |
ACM Trans. Algorithms | 2 |
| 2011 | The pochoir stencil compilerabstractA stencil computation repeatedly updates each point of a d-dimensional grid as a function of itself and its near neighbors. Parallel cache-efficient stencil algorithms based on "trapezoidal decompositions" are known, but most programmers find them difficult to write. The Pochoir stencil compiler allows a programmer to write a simple specification of a stencil in a domain-specific stencil language embedded in C++ which the Pochoir compiler then translates into high-performing Cilk code that employs an efficient parallel cache-oblivious algorithm. Pochoir supports general d-dimensional stencils and handles both periodic and aperiodic boundary conditions in one unified algorithm. The Pochoir system provides a C++ template library that allows the user's stencil specification to be executed directly in C++ without the Pochoir compiler (albeit more slowly), which simplifies user debugging and greatly simplified the implementation of the Pochoir compiler itself. A host of stencil benchmarks run on a modern multicore machine demonstrates that Pochoir outperforms standard parallelloop implementations, typically running 2-10 times faster. The algorithm behind Pochoir improves on prior cache-efficient algorithms on multidimensional grids by making "hyperspace" cuts, which yield asymptotically more parallelism for the same cache efficiency. Rezaul Alam Chowdhury, Bradley C. Kuszmaul, Chi-Keung Luk, Charles E. Leiserson |
SPAA | 5 |
| 2010 | Using memory mapping to support cactus stacks in work-stealing runtime systemsabstractMany multithreaded concurrency platforms that use a work-stealing runtime system incorporate a "cactus stack," wherein a function's accesses to stack variables properly respect the function's calling ancestry, even when many of the functions operate in parallel. Unfortunately, such existing concurrency platforms fail to satisfy at least one of the following three desirable criteria: I-Ting Angelina Lee, Silas Boyd-Wickizer, Zhiyi Huang 0001, Charles E. Leiserson |
PACT | 4 |
| 2010 | Executing task graphs using work-stealingabstractNABBIT is a work-stealing library for execution of task graphs with arbitrary dependencies which is implemented as a library for the multithreaded programming language Cilk++. We prove that Nabbit executes static task graphs in parallel in time which is asymptotically optimal for graphs whose nodes have constant in-degree and out-degree. To evaluate the performance of Nabbit, we implemented a dynamic program representing the Smith-Waterman algorithm, an irregular dynamic program on a two-dimensional grid. Our experiments indicate that when task-graph nodes are mapped to reasonably sized blocks, Nabbit exhibits low overhead and scales as well as or better than other scheduling strategies. The Nabbit implementation that solves the dynamic program using a task graph even manages in some cases to outperform a divide-and-conquer implementation for directly solving the same dynamic program. Finally, we extend both the Nabbit implementation and the completion-time bounds to handle dynamic task graphs, that is, graphs whose nodes and edges are created on the fly at runtime. Kunal Agrawal 0001, Charles E. Leiserson, Jim Sukha |
IPDPS | 2 |
| 2010 | Helper locks for fork-join parallel programmingabstractHelper locks allow programs with large parallel critical sections, called parallel regions, to execute more efficiently by enlisting processors that might otherwise be waiting on the helper lock to aid in the execution of the parallel region. Suppose that a processor p is executing a parallel region A after having acquired the lock L protecting A. If another processor p′ tries to acquire L, then instead of blocking and waiting for p to complete A, processor p′ joins p to help it complete A. Additional processors not blocked on L may also help to execute A. Kunal Agrawal 0001, Charles E. Leiserson, Jim Sukha |
PPoPP | 2 |
| 2010 | The Cilkview scalability analyzerabstractThe Cilkview scalability analyzer is a software tool for profiling, estimating scalability, and benchmarking multithreaded Cilk++ applications. Cilkview monitors logical parallelism during an instrumented execution of the Cilk++ application on a single processing core. As Cilkview executes, it analyzes logical dependencies within the computation to determine its work and span (critical-path length). These metrics allow Cilkview to estimate parallelism and predict how the application will scale with the number of processing cores. In addition, Cilkview analyzes cheduling overhead using the concept of a "burdened dag," which allows it to diagnose performance problems in the application due to an insufficient grain size of parallel subcomputations. Yuxiong He, Charles E. Leiserson, William M. Leiserson |
SPAA | 2 |
| 2010 | A work-efficient parallel breadth-first search algorithm (or how to cope with the nondeterminism of reducers)abstractWe have developed a multithreaded implementation of breadth-first search (BFS) of a sparse graph using the Cilk++ extensions to C++. Our PBFS program on a single processor runs as quickly as a standar. C++ breadth-first search implementation. PBFS achieves high work-efficiency by using a novel implementation of a multiset data structure, called a "bag," in place of the FIFO queue usually employed in serial breadth-first search algorithms. For a variety of benchmark input graphs whose diameters are significantly smaller than the number of vertices -- a condition met by many real-world graphs -- PBFS demonstrates good speedup with the number of processing cores. Charles E. Leiserson, Tao B. Schardl |
SPAA | 1 |
| 2010 | The Cilk++ concurrency platform
Charles E. Leiserson |
J. Supercomput. | 1 |
| 2009 | The Cilk++ concurrency platformabstractThe availability of multicore processors across a wide range of computing platforms has created a strong demand for software frameworks that can harness these resources. This paper overviews the Cilk++ programming environment, which incorporates a compiler, a runtime system, and a race-detection tool. The Cilk++ runtime system guarantees to load-balance computations effectively. To cope with legacy codes containing global variables, Cilk++ provides a "hyperobject" library which allows races on nonlocal variables to be mitigated without lock contention or substantial code restructuring. Charles E. Leiserson |
DAC | 1 |
| 2009 | Parallel sparse matrix-vector and matrix-transpose-vector multiplication using compressed sparse blocksabstractThis paper introduces a storage format for sparse matrices, called compressed sparse blocks (CSB), which allows both Ax and A,x to be computed efficiently in parallel, where A is an n×n sparse matrix with nnzen nonzeros and x is a dense n-vector. Our algorithms use Θ(nnz) work (serial running time) and Θ(√nlgn) span (critical-path length), yielding a parallelism of Θ(nnz/√nlgn), which is amply high for virtually any large matrix. The storage requirement for CSB is the same as that for the more-standard compressed-sparse-rows (CSR) format, for which computing Ax in parallel is easy but A,x is difficult. Benchmark results indicate that on one processor, the CSB algorithms for Ax and A,x run just as fast as the CSR algorithm for Ax, but the CSB algorithms also scale up linearly with processors until limited by off-chip memory bandwidth. Aydin Buluç, Jeremy T. Fineman, Matteo Frigo, John R. Gilbert, Charles E. Leiserson |
SPAA | 5 |
| 2009 | Reducers and other Cilk++ hyperobjectsabstractThis paper introduces hyperobjects, a linguistic mechanism that allows different branches of a multithreaded program to maintain coordinated local views of the same nonlocal variable. We have identified three kinds of hyperobjects that seem to be useful -- reducers, holders, and splitters -- and we have implemented reducers and holders in Cilk++, a set of extensions to the C++ programming language that enables "dynamic" multithreaded programming in the style of MIT Cilk. We analyze a randomized locking methodology for reducers and show that a work-stealing scheduler can support reducers without incurring significant overhead. Matteo Frigo, Pablo Halpern, Charles E. Leiserson, Stephen Lewin-Berlin |
SPAA | 3 |
| 2008 | A consistency architecture for hierarchical shared cachesabstractHierarchical Cache Consistency (HCC) is a scalable cache-con-sistency architecture for chip multiprocessors in which caches are shared hierarchically. HCC’s cache-consistency protocol is embed-ded in the message-routing network that interconnects the caches, providing a distributed and scalable alternative to bus-based and directory-based consistency mechanisms. The HCC consistency protocol is “progressive ” in that every message makes monotonic progress without timeouts, retries, negative acknowledgments, or retreating in any way. The latency is at most proportional to the di-ameter of the network. For HCC with a binary fat-tree network, the protocol requires at most 13 bits of additional state per cache line, no matter how large the system. We prove that the HCC protocol is deadlock free and provides sequential consistency. Edya Ladan-Mozes, Charles E. Leiserson |
SPAA | 2 |
| 2008 | Adaptive work-stealing with parallelism feedbackabstractMultiprocessor scheduling in a shared multiprogramming environment can be structured as two-level scheduling, where a kernel-level job scheduler allots processors to jobs and a user-level thread scheduler schedules the work of a job on its allotted processors. We present a randomized work-stealing thread scheduler for fork-join multithreaded jobs that provides continual parallelism feedback to the job scheduler in the form of requests for processors. Our A-STEAL algorithm is appropriate for large parallel servers where many jobs share a common multiprocessor resource and in which the number of processors available to a particular job may vary during the job's execution. Assuming that the job scheduler never allots a job more processors than requested by the job's thread scheduler, A-STEAL guarantees that the job completes in near-optimal time while utilizing at least a constant fraction of the allotted processors. We model the job scheduler as the thread scheduler's adversary, challenging the thread scheduler to be robust to the operating environment as well as to the job scheduler's administrative policies. For example, the job scheduler might make a large number of processors available exactly when the job has little use for them. To analyze the performance of our adaptive thread scheduler under this stringent adversarial assumption, we introduce a new technique called trim analysis, which allows us to prove that our thread scheduler performs poorly on no more than a small number of time steps, exhibiting near-optimal behavior on the vast majority. More precisely, suppose that a job has work T 1 and span T ∞ . On a machine with P processors, A-STEAL completes the job in an expected duration of O ( T 1 / P˜ + T ∞ + L lg P ) time steps, where L is the length of a scheduling quantum, and P˜ denotes the O ( T ∞ + L lg P )-trimmed availability. This quantity is the average of the processor availability over all time steps except the O ( T ∞ + L lg P ) time steps that have the highest processor availability. When the job's parallelism dominates the trimmed availability, that is, P˜ < T 1 / T ∞ , the job achieves nearly perfect linear speedup. Conversely, when the trimmed mean dominates the parallelism, the asymptotic running time of the job is nearly the length of its span, which is optimal. We measured the performance of A-STEAL on a simulated multiprocessor system using synthetic workloads. For jobs with sufficient parallelism, our experiments confirm that A-STEAL provides almost perfect linear speedup across a variety of processor availability profiles. We compared A-STEAL with the ABP algorithm, an adaptive work-stealing thread scheduler developed by Arora et al. [1998] which does not employ parallelism feedback. On moderately to heavily loaded machines with large numbers of processors, A-STEAL typically completed jobs more than twice as quickly as ABP, despite being allotted the same number or fewer processors on every step, while wasting only 10% of the processor cycles wasted by ABP. Kunal Agrawal 0001, Charles E. Leiserson, Yuxiong He, Wen-Jing Hsu |
ACM Trans. Comput. Syst. | 2 |
| 2008 | Provably Efficient Online Nonclairvoyant Adaptive SchedulingabstractMultiprocessor scheduling in a shared multiprogramming environment can be structured in two levels, where a kernel-level job scheduler allots processors to jobs and a user-level thread scheduler maps the ready threads of a job onto the allotted processors. We present two provably-efficient two-level scheduling schemes called G-RAD and S-RAD respectively. Both schemes use the same job scheduler RAD for the processor allotments that ensures fair allocation under all levels of workload. In G-RAD, RAD is combined with a greedy thread scheduler suitable for centralized scheduling; in S-RAD, RAD is combined with a work-stealing thread scheduler more suitable for distributed settings. Both G-RAD and S-RAD are non-clairvoyant. Moreover, they provide effective control over the scheduling overhead and ensure efficient utilization of processors. We also analyze the competitiveness of both G-RAD and S-RAD with respect to an optimal clairvoyant scheduler. In terms of makespan, both schemes can achieve O(1)-competitiveness for any set of jobs with arbitrary release time. In terms of mean response time, both schemes are O(1)-competitive for arbitrary batched jobs. To the best of our knowledge, G-RAD and S-RAD are the first non-clairvoyant scheduling algorithms that guarantee provable efficiency, fairness and minimal overhead. Yuxiong He, Wen-Jing Hsu, Charles E. Leiserson |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 2007 | Adaptive Scheduling with Parallelism FeedbackabstractMultiprocessor scheduling in a shared multiprogramming environment can be structured as two-level scheduling, where a kernel-level job scheduler allots processors to jobs and a user-level thread scheduler schedules the work of a job on the allotted processors. In this context, the number of processors allotted to a particular job may vary during the job's execution, and the thread scheduler must adapt to these changes in processor resources. For overall system efficiency, the thread scheduler should also provide parallelism feedback to the job scheduler to avoid allotting a job more processors than it can use productively. This paper provides an overview of several adaptive thread schedulers we have developed that provide provably good history-based feedback about the job's parallelism without knowing the future of the job. These thread schedulers complete the job in near-optimal time while guaranteeing low waste. We have analyzed these thread schedulers under stringent adversarial conditions, showing that the thread schedulers are robust to various system environments and allocation policies. To analyze the thread schedulers under this adversarial model, we have developed a new technique, called trim analysis, which can be used to show that the thread scheduler provides good behavior on the vast majority of time steps, and performs poorly on only a few. When our thread schedulers are used with dynamic equipartitioning and other related job scheduling algorithms, they are O(1)-competitive against an optimal offline scheduling algorithm with respect to both mean response time and makespan for batched jobs and nonbatched jobs, respectively. Our algorithms are the first nonclairvoy-ant scheduling algorithms to offer such guarantees. Kunal Agrawal 0001, Yuxiong He, Wen-Jing Hsu, Charles E. Leiserson |
IPDPS | 4 |
| 2007 | Provably Efficient Online Non-clairvoyant Adaptive SchedulingabstractScheduling competing jobs on multiprocessors has always been an important issue for parallel and distributed systems. The challenge is to ensure global, system-wide efficiency while offering a level of fairness to user jobs. Various degrees of successes have been achieved over years. However, few existing schemes address both efficiency and fairness over a wide range of work loads. Moreover, in order to obtain analytical results, most of them require prior information about jobs, which may be difficult to obtain in real applications. This paper presents a novel adaptive scheduling algorithm GRAD that ensures fair allocation under all levels of workload, and it offers provable efficiency without requiring prior information of job's parallelism. Moreover, it provides effective control over the scheduling overhead and ensures efficient utilization of processors. Specifically, we show that GRAD is O(1)-competitive against an optimal offline scheduling algorithm with respect to both mean response time and makespan for batched jobs and non-batched jobs respectively. To the best of our knowledge, GRAD is the first non-clairvoyant scheduling algorithm that offers such guarantees. We also believe that our new approach of resource request-allotment protocol deserves further exploration. The simulation results show that, for non-batched jobs, the makespan produced by GRAD is no more than 1.39 times of the optimal on average. For batched jobs, the mean response time produced by GRAD is no more than 2.37 times of the optimal on average. Yuxiong He, Wen-Jing Hsu, Charles E. Leiserson |
IPDPS | 3 |
| 2007 | Adaptive work stealing with parallelism feedbackabstractWe present an adaptive work-stealing thread scheduler, A-Steal, for fork-join multithreaded jobs, like those written using the Cilk multithreaded language or the Hood work-stealing library. The A-Steal algorithm is appropriate for large parallel servers where many jobs share a common multiprocessor resource and in which the number of processors available to a particular job may vary during the job's execution. A-Steal provides continual parallelism feedback to a job scheduler in the form of processor requests, and the job must adaptits execution to the processors allotted to it. Assuming that the job scheduler never allots any job more processors than requested by thejob's thread scheduler, A-Steal guarantees that the job completes in near-optimal time while utilizing at least a constant fraction of the allotted processors. Kunal Agrawal 0001, Yuxiong He, Charles E. Leiserson |
PPoPP | 3 |
| 2006 | An Empirical Evaluation ofWork Stealing with Parallelism FeedbackabstractA-STEAL is a provably good adaptive work-stealing thread scheduler that provides parallelism feedback to a multiprocessor job scheduler. A-STEAL uses a simple multiplicative-increase, multiplicative-decrease algorithm to provide continual parallelism feedback to the job scheduler in the form of processor requests. Although jobs scheduled by A-STEAL can be shown theoretically to complete in near-optimal time asymptotically while utilizing at least a constant fraction of the allotted processors, the constants in the analysis leave it open on whether A-STEAL works well in practice. This paper confirms with simulation studies that A-STEAL performs well when scheduling adaptively parallel work-stealing jobs on large-scale multiprocessors. Our studies monitored the behavior of A-STEAL on a simulated multiprocessor system using synthetic workloads. We measured the completion time and waste of A-STEAL on over 2300 job runs using a variety of processor availability profiles. Linear-regression analysis indicates that ASTEAL provides almost perfect linear speedup. In addition, A-STEAL typically wasted less than 20% of the processor cycles allotted to the job. We compared A-STEAL with the ABP algorithm, an adaptive work-stealing thread scheduler developed by Arora, Blumofe, and Plaxton which does not employ parallelism feedback. On moderately to heavily loaded large machines with predetermined availability profiles, A-STEAL typically completed jobs more than twice as quickly, despite being allotted the same or fewer processors on every step, while wasting only 10% of the processor cycles wasted by ABP. We compared the utilization of A-STEAL and ABP when many jobs with varying characteristics are using the same multiprocessor. These experiments provide evidence that A-STEAL consistently provides higher utilization than ABP for a variety of job mixes. Kunal Agrawal 0001, Yuxiong He, Charles E. Leiserson |
ICDCS | 3 |
| 2006 | Provably Efficient Two-Level Adaptive Scheduling
Yuxiong He, Wen-Jing Hsu, Charles E. Leiserson |
JSSPP | 3 |
| 2006 | Adaptive scheduling with parallelism feedbackabstractMultiprocessor scheduling in a shared multiprogramming environment is often structured as two-level scheduling, where a kernel-level job scheduler allots processors to jobs and a user-level task scheduler schedules the work of a job on the allotted processors. In this context, the number of processors allotted to a particular job may vary during the job's execution, and the task scheduler must adapt to these changes in processor resources. For overall system efficiency, the task scheduler should also provide parallelism feedback to the job scheduler to avoid the situation where a job is allotted processors that it cannot use productively.We present an adaptive task scheduler for multitasked jobs with dependencies that provides continual parallelism feedback to the job scheduler in the form of requests for processors. Our scheduler guarantees that a job completes near optimally while utilizing at least a constant fraction of the allotted processor cycles. Our scheduler can be applied to schedule data-parallel programs, such as those written in High Performance Fortran (HPF), *Lisp, C*, NESL, and ZPL.Our analysis models the job scheduler as the task scheduler's adversary, challenging the task scheduler to be robust to the system environment and the job scheduler's administrative policies. For example, the job scheduler can make available a huge number of processors exactly when the job has little use for them. To analyze the performance of our adaptive task scheduler under this stringent adversarial assumption, we introduce a new technique called "trim analysis," which allows us to prove that our task scheduler performs poorly on at most a small number of time steps, exhibiting near-optimal behavior on the vast majority.To be precise, suppose that a job has work T1 and critical-path length T∞ and is running on a machine with P processors. Using trim analysis, we prove that our scheduler completes the job in O(T1/P + T∞ + Llg P) time steps, where L is the length of a scheduling quantum and P denotes the O(T∞ + L lg P)-trimmed availability. This quantity is the average of the processor availability over all time steps excluding the O(T∞ + L lg P) time steps with the highest processor availability. When T1/T∞ >> P (the job's parallelism dominates the O(T∞ + L lg P)-trimmed availability), the job achieves nearly perfect linear speedup. Conversely, when T1/T∞ << P, the asymptotic running time of the job is nearly the length of its critical path. Kunal Agrawal 0001, Yuxiong He, Wen-Jing Hsu, Charles E. Leiserson |
PPoPP | 4 |
| 2006 | Programming with exceptions in JCilk
John S. Danaher, I-Ting Angelina Lee, Charles E. Leiserson |
Sci. Comput. Program. | 3 |
| 2005 | Unbounded Transactional MemoryabstractHardware transactional memory should support unbounded transactions: transactions of arbitrary size and duration. We describe a hardware implementation of unbounded transactional memory, called UTM, which exploits the common case for performance without sacrificing correctness on transactions whose footprint can be nearly as large as virtual memory. We performed a cycle-accurate simulation of a simplified architecture, called LTM. LTM is based on UTM but is easier to implement, because it does not change the memory subsystem outside of the processor. LTM allows nearly unbounded transactions, whose footprint is limited only by physical memory size and whose duration by the length of a timeslice. We assess UTM and LTM through microbenchmarking and by automatically converting the SPECjvm98 Java benchmarks and the Linux 2.4.19 kernel to use transactions instead of locks. We use both cycle-accurate simulation and instrumentation to understand benchmark behavior. Our studies show that the common case is small transactions that commit, even when contention is high, but that some applications contain very large transactions. For example, although 99.9% of transactions in the Linux study touch 54 cache lines or fewer, some transactions touch over 8000 cache lines. Our studies also indicate that hardware support is required, because some applications spend over half their time in critical regions. Finally, they suggest that hardware support for transactions can make Java programs run faster than when run using locks and can increase the concurrency of the Linux kernel by as much as a factor of 4 with no additional programming work. C. Scott Ananian, Krste Asanovic, Bradley C. Kuszmaul, Charles E. Leiserson, Sean Lie |
HPCA | 4 |
| 2005 | Adversarial contention resolution for simple channelsabstractThis paper analyzes the worst-case performance of randomized backoff on simple multiple-access channels. Most previous analysis of backoff has assumed a statistical arrival model. For batched arrivals, in which all n packets arrive at time 0, we show the following tight high-probability bounds. Randomized binary exponential backoff has makespan Θ(nlgn), and more generally, for any constant r, r-exponential backoff has makespan Θ(nlog lgr n). Quadratic backoff has makespan Θ((n/lg n) 3/2), and more generally, for r> 1, r-polynomial backoff has makespan Θ((n/lg n) 1+1/r). Thus, for batched inputs, both exponential and polynomial backoff are highly sensitive to backoff constants. We exhibit a monotone superpolynomial subexponential backoff algorithm, called loglog-iterated backoff, that achieves makespan Θ(nlg lgn/lg lglgn). We provide a matching lower bound showing that this strategy is optimal among all monotone backoff algorithms. Of independent interest is that this lower bound was proved with a delay sequence argument. In the adversarial-queuing model, we present the following stability and instability results for exponential backoff and loglogiterated backoff. Given a (λ,T)-stream, in which at most n = λT packets arrive in any interval of size T, exponential backoff is stable for arrival rates of λ = O(1/lgn) and unstable for arrival rates of λ = Ω(lglgn/lg n); loglog-iterated backoff is stable for arrival rates of λ = O(1/(lg lgnlgn)) and unstable for arrival rates of λ = Ω(1/lg n). Our instability results show that bursty input is close to being worst-case for exponential backoff and variants and that even small bursts can create instabilities in the channel. Michael A. Bender, Martin Farach-Colton, Simai He, Bradley C. Kuszmaul, Charles E. Leiserson |
SPAA | 5 |
| 2004 | On-the-fly maintenance of series-parallel relationships in fork-join multithreaded programsabstractA key capability of data-race detectors is to determine whether one thread executes logically in parallel with another or whether the threads must operate in series. This paper provides two algorithms, one serial and one parallel, to maintain series-parallel (SP) relationships "on the fly" for fork-join multithreaded programs. The serial SP-order algorithm runs in O(1) amortized time per operation. In contrast, the previously best algorithm requires a time per operation that is proportional to Tarjan's functional inverse of Ackermann's function. SP-order employs an order-maintenance data structure that allows us to implement a more efficient "English-Hebrew" labeling scheme than was used in earlier race detectors, which immediately yields an improved determinacy-race detector. In particular, any fork-join program running in T1 time on a single processor can be checked on the fly for determinacy races in O(T1) time. Corresponding improved bounds can also be obtained for more sophisticated data-race detectors, for example, those that use locks.By combining SP-order with Feng and Leiserson's serial SP-bags algorithm, we obtain a parallel SP-maintenance algorithm, called SP-hybrid. Suppose that a fork-join program has n threads, T1 work, and a critical-path length of T∞. When executed on P processors, we prove that SP-hybrid runs in O((T1/P +PT,/i>∞)lg Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, Charles E. Leiserson |
SPAA | 4 |
| 2003 | Cache-Oblivious Algorithms
Charles E. Leiserson |
CIAC | 1 |
| 2000 | A New Competitive Analysis of Randomized Caching
Ching Law, Charles E. Leiserson |
ISAAC | 2 |
| 1999 | Cache-Oblivious AlgorithmsabstractThis paper presents asymptotically optimal algorithms for rectangular matrix transpose, FFT, and sorting on computers with multiple levels of caching. Unlike previous optimal algorithms, these algorithms are cache oblivious: no variables dependent on hardware parameters, such as cache size and cache-line length, need to be tuned to achieve optimality. Nevertheless, these algorithms use an optimal amount of work and move data optimally among multiple levels of cache. For a cache with size Z and cache-line length L where Z=/spl Omega/(L/sup 2/) the number of cache misses for an m/spl times/n matrix transpose is /spl Theta/(1+mn/L). The number of cache misses for either an n-point FFT or the sorting of n numbers is /spl Theta/(1+(n/L)(1+log/sub Z/n)). We also give an /spl Theta/(mnp)-work algorithm to multiply an m/spl times/n matrix by an n/spl times/p matrix that incurs /spl Theta/(1+(mn+np+mp)/L+mnp/L/spl radic/Z) cache faults. We introduce an "ideal-cache" model to analyze our algorithms. We prove that an optimal cache-oblivious algorithm designed for two levels of memory is also optimal for multiple levels and that the assumption of optimal replacement in the ideal-cache model. Can be simulated efficiently by LRU replacement. We also provide preliminary empirical results on the effectiveness of cache-oblivious algorithms in practice. Matteo Frigo, Charles E. Leiserson, Harald Prokop, Sridhar Ramachandran |
FOCS | 2 |
| 1999 | Design and Analysis of Algorithms for Shared-Memory Multiprocessors (Abstract)
Charles E. Leiserson |
WADS | 1 |
| 1999 | Scheduling Multithreaded Computations by Work StealingabstractThis paper studies the problem of efficiently schedulling fully strict (i.e., well-structured) multithreaded computations on parallel computers. A popular and practical method of scheduling this kind of dynamic MIMD-style computation is “work stealing,” in which processors needing work steal computational threads from other processors. In this paper, we give the first provably good work-stealing scheduler for multithreaded computations with dependencies. Specifically, our analysis shows that the expected time to execute a fully strict computation on P processors using our work-stealing scheduler is T 1 / P + O ( T ∞ , where T 1 is the minimum serial execution time of the multithreaded computation and ( T ∞ is the minimum execution time with an infinite number of processors. Moreover, the space required by the execution is at most S 1 P , where S 1 is the minimum serial space requirement. We also show that the expected total communication of the algorithm is at most O ( PT ∞ ( 1 + n d ) S max ), where S max is the size of the largest activation record of any thread and n d is the maximum number of times that any thread synchronizes with its parent. This communication bound justifies the folk wisdom that work-stealing schedulers are more communication efficient than their work-sharing counterparts. All three of these bounds are existentially optimal to within a constant factor. Robert D. Blumofe, Charles E. Leiserson |
J. ACM | 2 |
| 1999 | Efficient Detection of Determinacy Races in Cilk Programs
Mingdong Feng, Charles E. Leiserson |
Theory Comput. Syst. | 2 |
| 1998 | The Implementation of the Cilk-5 Multithreaded LanguageabstractThe 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 |
PLDI | 2 |
| 1998 | Detecting Data Rase in Cilk Programs That use LocksabstractWhen 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 |
SPAA | 3 |
| 1998 | An Experimental Analysis of Parallel Sorting Algorithms
Guy E. Blelloch, Charles E. Leiserson |
Theory Comput. Syst. | 2 |
| 1998 | Space-Efficient Scheduling of Multithreaded ComputationsabstractThis paper considers the problem of scheduling dynamic parallel computations to achieve linear speedup without using significantly more space per processor than that required for a single-processor execution. Utilizing a new graph-theoretic model of multithreaded computation, execution efficiency is quantified by three important measures: T 1 is the time required for executing the computation on a 1 processor, $T_\infty$ is the time required by an infinite number of processors, and S 1 is the space required to execute the computation on a 1 processor. A computation executed on P processors is time-efficient if the time is $O(T_1/P + T_\infty)$, that is, it achieves linear speedup when $P=O(T_1/T_\infty)$, and it is space-efficient if it uses O(S 1 P ) total space, that is, the space per processor is within a constant factor of that required for a 1-processor execution. The first result derived from this model shows that there exist multithreaded computations such that no execution schedule can simultaneously achieve efficient time and efficient space. But by restricting attention to "strict" computations---those in which all arguments to a procedure must be available before the procedure can be invoked---much more positive results are obtainable. Specifically, for any strict multithreaded computation, a simple online algorithm can compute a schedule that is both time-efficient and space-efficient. Unfortunately, because the algorithm uses a global queue, the overhead of computing the schedule can be substantial. This problem is overcome by a decentralized algorithm that can compute and execute a P-processor schedule online in expected time $O(T_1/P + T_\infty\lg P)$ and worst-case space $O(S_1P\lg P)$, including overhead costs. Robert D. Blumofe, Charles E. Leiserson |
SIAM J. Comput. | 2 |
| 1997 | Algorithmic Analysis of Multithreaded Algorithms (Abstract)
Charles E. Leiserson |
ISAAC | 1 |
| 1997 | Efficient Detection of Determinacy Races in Cilk ProgramsabstractA parallel multithreaded program that is ostensibly deterministic may nevertheless behave nondeterministically due to bugs in the code.These bugs are called determinacy races, and they result when one thread updates a location in shared memory while another thread is concurrently accessing the location.We have implemented a provabl y efficient determinacy-race detector for Cilk, an algorithmic multithreaded programming language.If a Cilk program run on a given input data set has a determinacy race, our debugging tool, which we call the "Nondeterrninator," guarantees to detect and localize the race.The core of the Nondeterrninator is an asymptotically efficient serial algorithm (inspired by Tarjan's nearly linear-time leastcommon-ancestors algorithm) for detecting deterrninacy races in series-parallel directed acyclic graphs.For a Cilk program that runs in T time on one processor and uses v shared-memory locations, the Nondeterminator runs in 0( Tct(v, v)) time, where ct is Tarjan's functional inverse of Ackermann's function, a very slowly growing function which, for all practical purposes, is bounded above by 4. The Nondeterminator uses at most a constant factor more space than does the original program.On a variety of Cifk program benchmarks, the Nondeterminator exhibits a slowdown of less than 12 compared with the serial execution time of the original optimized code, which we contend is an acceptable slowdown for debugging purposes.'l%isresearch was supported in PM by tbe Oefense Advanced Research Projects Agency under GrsntNOO014-941 -0985.Mingdong Feng did this work as a Postdoctoral Fellow in the MIT Laboratory for Computer Science.Parsllel computingfacilities were providedby the MSTXOISS Project througha generousdonationby Mingdong Feng, Charles E. Leiserson |
SPAA | 2 |
| 1997 | Optimizing two-phase, level-clocked circuitryabstractWe investigate two strategies for reducing the clock period of a two-phase, level-clocked circuit: clock tuning, which adjusts the waveforms that clock the circuit, and retiming, which relocates circuit latches.These methods can be used to convert a circuit with edge-triggered latches into a faster level-clocked one.We model a two-phase circuit as a graph G ϭ (V, E) whose vertex set V is a collection of combinational logic blocks, and whose edge set E is a set of interconnections.Each interconnection passes through zero or more latches, where each latch is clocked by one of two periodic, nonoverlapping waveforms, or phases.We give efficient polynomial-time algorithms for problems involving the timing verification and optimization of two-phase circuitry.Included are algorithms for -verifying proper timing: O(VE) time.-minimizing the clock period by clock tuning: O(VE) time.-retiming to achieve a given clock period when the phases are symmetric: O(VE ϩ V 2 lg V) time.-retiming to achieve a given clock period when either the duty cycle (high time) of one phase or the ratio of the phases' duty cycles is fixed: O(V 3 ) time.We give fully polynomial-time approximation schemes for clock period minimization, within any given relative error ⑀ Ͼ 0, by -retiming and tuning when the duty cycles of the two phases are required to be equal:-retiming and tuning when either the duty cycle of one phase is fixed or the ratio of the phases' duty cycles is fixed: O(V 3 lg(V/⑀)) time.-simultaneous retiming and clock tuning with no conditions on the duty cycles of the two phases:The first two of these approximation algorithms can be used to obtain the optimum clock period in the special case where all propagation delays are integers.We generalize most of the results for two-phase clocking schemes to simple multiphase clocking disciplines, including ones with overlapping phases.Typically, the algorithms to verify and optimize Alexander T. Ishii, Charles E. Leiserson, Marios C. Papaefthymiou |
J. ACM | 2 |
| 1997 | Efficient Out-of-Core Algorithms for Linear Relaxation Using Blocking Covers
Charles E. Leiserson, Satish Rao, Sivan Toledo |
J. Comput. Syst. Sci. | 1 |
| 1997 | Parallel Algorithms for the Circuit Value Update Problem
Charles E. Leiserson, Keith H. Randall |
Theory Comput. Syst. | 1 |
| 1996 | An Analysis of Dag-Consistent Distributed Shared-Memory AlgorithmsabstractIn 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 |
SPAA | 4 |
| 1996 | Cilk: An Efficient Multithreaded Runtime SystemabstractCilk (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. | 4 |
| 1996 | The Network Architecture of the Connection Machine CM-5
Charles E. Leiserson, Zahi S. Abuhamdeh, David C. Douglas, Carl R. Feynman, Mahesh N. Ganmukhi, Jeffrey V. Hill, W. Daniel Hillis, Bradley C. Kuszmaul, Margaret A. St. Pierre, David S. Wells, Monica C. Wong-Chan, Shaw-Wen Yang, Robert Zak |
J. Parallel Distributed Comput. | 1 |
| 1995 | Cilk: An Efficient Multithreaded Runtime SystemabstractCilk (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 |
PPoPP | 4 |
| 1995 | Parallel Algorithms for the Circuit Value Update ProblemabstractArticle 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 |
SPAA | 1 |
| 1993 | Efficient Out-of-Core Algorithms for Linear Relaxation Using Blocking Covers (Extended Abstract)abstractWhen a numerical computation fails to fit in the primary memory of a serial or parallel computer, a so-called "out-of-core" algorithm must be used which moves data between primary and secondary memories. In this paper, we study out-of-core algorithms for sparse linear relaxation problems in which each iteration of the algorithm updates the state of every vertex in a graph with a linear combination of the states of its neighbors. We give a general method that can save substantially on the I/O traffic for many problems. For example, our technique allows a computer with M words of primary memory to perform T=/spl Omega/(M/sup 1/5/) cycles of a multigrid algorithm for a two-dimensional elliptic solver over an n-point domain using only /spl Theta/(nT/M/sup 1/5/) I/O transfers, as compared with the naive algorithm which requires /spl Omega/(nT) I/O's.> Charles E. Leiserson, Satish Rao, Sivan Toledo |
FOCS | 1 |
| 1993 | Space-efficient scheduling of multithreaded computationsabstract. This paper considers the problem of scheduling dynamic parallel computations to achieve linear speedup without using significantly more space per processor than that required for a single-processor execution. Utilizing a new graph-theoretic model of multithreaded computation, execution efficiency is quantified by three important measures: T 1 is the time required for executing the computation on 1 processor, T1 is the time required by an infinite number of processors, and S 1 is the space required to execute the computation on 1 processor. A computation executed on P processors is time-efficient if the time is O(T 1 =P + T1 ), that is, it achieves linear speedup when P = O(T 1 =T1 ), and it is space-efficient if it uses O(S 1 P ) total space, that is, the space per processor is within a constant factor of that required for a 1-processor execution. The first result derived from this model shows that there exist multithreaded computations such that no execution schedule can simultan... Robert D. Blumofe, Charles E. Leiserson |
STOC | 2 |
| 1992 | The Network Architecture of the Connection Machine CM-5 (Extended Abstract)
Charles E. Leiserson, Zahi S. Abuhamdeh, David C. Douglas, Carl R. Feynman, Mahesh N. Ganmukhi, Jeffrey V. Hill, W. Daniel Hillis, Bradley C. Kuszmaul, Margaret A. St. Pierre, David S. Wells, Monica C. Wong, Shaw-Wen Yang, Robert Zak |
SPAA | 1 |
| 1991 | A Comparison of Sorting Algorithms for the Connection Machine CM-2abstractWe have implemented three parallel sorting algorithms on the Connection Machine Supercomputer model CM-2: B atcher's bitonic sort, a parallel radix sor~and a sample sort similar to Reif and Valiant's flashsort.We have also evaluated the implementation of many other sorting algorithms proposed in the literature.Our computational experiments show that the sample sort algorithm, which is a theoretically efficient "randomized" algorithm, is the fastest of the three algorithms on large data sets.On a 64Kprocessor CM-2, our sample sort implementation can sort 32 x 106 64-bit keys in 5.1 seconds, which is over 10 times faster than the CM-2 library sort.Our implementation of radix sort, although not as fast on large data sets, is deterministic, much simpler to code, stable, faster with small keys, and faster on small data sets (few elements per processor), Our implementation of bitonic sor~which is pipelined to use all the hypercube wires simultaneously, is the least efficient of the three on large data sets, but is the most efficient on small data sets, and is considerably more space efficient.This paper analyzes the three algorithms in detail and discusses many practical issues that led us to the particular implementations. Guy E. Blelloch, Charles E. Leiserson, Bruce M. Maggs, C. Greg Plaxton, Stephen J. Smith, Marco Zagha |
SPAA | 2 |
| 1991 | Retiming Synchronous Circuitry
Charles E. Leiserson, James B. Saxe |
Algorithmica | 1 |
| 1990 | A Hyperconcentrator Swith for Routing Bit-Serial Messages
Thomas H. Cormen, Charles E. Leiserson |
J. Parallel Distributed Comput. | 2 |
| 1990 | The Organization of Permutation Architectures with Bused InterconnectionsabstractThe problem of efficiently permuting data stored in VLSI chips in accordance with a predetermined set of permutations is explored. By connecting chips with shared bus interconnections, as opposed to point-to-point interconnections, it is shown that the number of pins per chip can often be reduced. As an example, for infinitely many n, the authors exhibit permutation architectures that can realize any of the n cyclic shifts on n chips in one clock tick, where the upper limit on the number of pins per chip is the greatest integer> Joe Kilian, Shlomo Kipnis, Charles E. Leiserson |
IEEE Trans. Computers | 3 |
| 1988 | Communication-Efficient Parallel Algorithms for Distributed Random-Access Machines
Charles E. Leiserson, Bruce M. Maggs |
Algorithmica | 1 |
| 1987 | The Organization of Permutation Architectures with Bussed Interconnections (Extended Abstract)abstractThis paper explores the problem of efficiently permuting data stored in VLSI chips in accordance with a predetermined set of permutations. By connecting chips with shared bus interconnections, as opposed to point-to-point interconnections, we show that the number of pins per chip can often be reduced. For example, for infinitely many n, we exhibit permutation architectures with ⌈√n⌉ pins per chip that can realize any of the n cyclic shifts on n chips in one clock tick. When the set of permutations forms a group with p elements, any permutation in the group can be realized in one clock tick by an architecture with O(√p lg p) pins per chip. When the permutation group is abelian, O(√p) pins suffice. These results are all derived from a mathematical characterization of uniform permutation architectures based on the combinatorial notion of a difference cover. Joe Kilian, Shlomo Kipnis, Charles E. Leiserson |
FOCS | 3 |
| 1986 | A Hyperconcentrator Switch for Routing Bit-Serial Messages
Thomas H. Cormen, Charles E. Leiserson |
ICPP | 2 |
| 1986 | Communication-Efficient Parallel Graph Algorithms
Charles E. Leiserson, Bruce M. Maggs |
ICPP | 1 |
| 1986 | An application of number theory to the organization of raster-graphics memoryabstractA high-resolution raster-graphics display is usually combined with processing power and a memory organization that facilitates basic graphics operations. For many applications, including interactive text processing, the ability to quickly move or copy small rectangles of pixels is essential. This paper proposes a novel organization of raster-graphics memory that permits all small rectangles to be moved efficiently. The memory organization is based on a doubly periodic assignment of pixels to M memory chips according to a “Fibonacci” lattice. The memory organization guarantees that, if a rectilinearly oriented rectangle contains fewer than M / @@@@5 pixels, then all pixels will reside in different memory chips and thus can be accessed simultaneously. Moreover, any M consecutive pixels, arranged either horizontally or vertically, can be accessed simultaneously. We also define a continuous analog of the problem, which can be posed as: “What is the maximum density of a set of points in the plane such that no two points are contained in the interior of a rectilinearly oriented rectangle of unit area?” We show the existence of such a set with density 1/ @@@@5, and prove this is optimal by giving a matching upper bound. Benny Chor, Charles E. Leiserson, Ronald L. Rivest, James B. Shearer |
J. ACM | 2 |
| 1985 | Randomized Routing on Fat-Trees (Preliminary Version)abstractFat-trees are a class of routing networks for hardwareefficient parallel computation. This paper presents a randomized algorithm for routing messages on a fat-tree. The quality of the algorithm is measured in terms of the load factor of a set of messages to be routed, which is a lower bound on the time required to deliver the messages. We show that if a set of messages has load factor λ = Ω(lg n lg lg n) on a fat-tree with n processors, the number of delivery cycles (routing attempts) that the algorithm requires is O(λ) with probability 1-O(1/n). The best previous bound was O(λ lg n) for the off-line problem where switch settings can be determined in advance. In a VLSI-like model where hardware cost is equated with physical volume, we use the routing algorithm to demonstrate that fat-trees are universal routing networks in the sense that any routing network can be efficiently simulated by a fat-tree of comparable hardware cost. Ronald I. Greenberg, Charles E. Leiserson |
FOCS | 2 |
| 1985 | Fat-Trees: Universal Networks for Hardware-Efficient Supercomputing
Charles E. Leiserson |
ICPP | 1 |
| 1985 | Algorithms for Routing and Testing Routability of Planar VLSI LayoutsabstractThis paper studies the problem of routing wires in a grid among features on one layer of a VLSI chip, when a sketch of the layer is given. A sketch specifies the positions of features and the topology of the interconnecting wires. We give polynomial-time algorithms that (1) determine the routability of a sketch, and (2) produce a routing of a sketch that optimizes both individual and total wire length. These algorithms subsume most of the polynomial-time algorithms in the literature for planar routing and routability testing in the rectilinear grid model. We also provide an explicit construction of a database, called the rubber-band equivalent, to support computation involving the layout topology. Charles E. Leiserson, F. Miller Maley |
STOC | 1 |
| 1985 | Wafer-Scale Integration of Systolic ArraysabstractVLSI technologists are fast developing wafer-scale integration. Rather than partitioning a silicon wafer into chips as is usually done, the idea behind wafer-scale integration is to assemble an entire system (or network of chips) on a single wafer, thus avoiding the costs and performance loss associated with individual packaging of chips. A major problem with assembling a large system of microprocessors on a single wafer, however, is that some of the processors, or cells, on the wafer are likely to be defective. In the paper, we describe practical procedures for integrating "around" such faults. The procedures are designed to minimize the length of the longest wire in the system, thus minimizing the communication time between cells. Although the underlying network problems are NP-complete, we prove that the procedures are reliable by assuming a probabilistic model of cell failure. We also discuss applications of the work to problems in VLSI layout theory, graph theory, fault-tolerant systems, planar geometry, and the probabilistic analysis of algorithms. Frank Thomson Leighton, Charles E. Leiserson |
IEEE Trans. Computers | 2 |
| 1985 | Fat-Trees: Universal Networks for Hardware-Efficient SupercomputingabstractThe author presents a new class of universal routing networks, called fat-trees, which might be used to interconnect the processors of a general-purpose parallel supercomputer. A fat-tree routing network is parameterized not only in the number of processors, but also in the amount of simultaneous communication it can support. Since communication can be scaled independently from the number of processors, substantial hardware can be saved for such applications as finite-element analysis without resorting to a special-purpose architecture. It is proved that a fat-tree of a given size is nearly the best routing network of that size. This universality theorem is established using a three-dimensional VLSI model that incorporates wiring as a direct cost. In this model, hardware size is measured as physical volume. It is proved that for any given amount of communications hardware, a fat-tree built from that amount of hardware can stimulate every other network built from the same amount of hardware, using only slightly more time (a polylogarithmic factor greater). Charles E. Leiserson |
IEEE Trans. Computers | 1 |
| 1983 | Optimal Placement for River RoutingabstractPrograms for integrated circuit layout typically have two phases; placement and routing. The router tries to produce as efficient a layout as possible, but of course the quality of the routing depends heavily on the quality of the placement. On the other hand, the placement procedure ideally should know the impact of its placement decisions on the quality of a routing. In this paper, we present a placement-and-routing problem for which there is perfect interaction between the two phases. The algorithms for this commonly arising problem are fast, simple and optimal. River routing is the problem of connecting in order a set of terminals $a_1 , \cdots ,a_n $ on a line to another set $b_1 , \cdots ,b_n $ across a rectangular channel. The terminals are located on modules which must be placed relative to one another before routing. This placement-and-routing problem arises frequently in design systems like bristle-blocks where stretch lines through a module can effectively break it into several chunks, each of which may be placed separately. In this paper we give concise necessary and sufficient conditions for wirability which are applied to reduce the optimal placement problem to the graph-theoretic single-source-longest-paths problem. For rectilinear wiring, the special structure of graphs that arise allows an optimal solution to be determined quickly. Charles E. Leiserson, Ron Y. Pinter |
SIAM J. Comput. | 1 |
| 1982 | An Application of Number Theory to the Organization of Raster-Graphics Memory (Extended Abstract)abstractA high-resolution raster-graphics display is usually combined with processing power and a memory organization that facilitates basic graphics operations. For many applications, including interactive text processing, the ability to quickly move or copy small rectangles of pixels is essential. This paper proposes a novel organization of raster-graphics memory that permits all small rectangles to be moved efficiently. The memory organization is based on a doubly periodic assignment of pixels to M memory chips according to a "Fibonacci" lattice. The memory organization guarantees that if a rectilinearly oriented rectangle contains fewer than M/√5 pixels, then all pixels will reside in different memory chips, and thus can be accessed simultaneously. We also define a continuous amdogue of the problem which can be posed as, "What is the maximum density of a set of points in the plane such that no two points are contained in the interior of a rectilinearly oriented rectangle of area N." We give a lower bound of 1/2N on the density of such a set, and show that 1/√5N can be achieved. Benny Chor, Charles E. Leiserson, Ronald L. Rivest |
FOCS | 2 |
| 1982 | Wafer-Scale Integration of Systolic Arrays (Extended Abstract)abstractThis paper describes and analyzes several algorithms for constructing systolic array networks from cells on a silicon wafer. Some of the cells may be defective, and thus the networks must be configured to avoid them. We adopt a probabilistic model of cell failure, and attempt to construct networks whose maximum wire length is minimal Although the algorithms presented are designed principally for application to the wafer-scale integration of one and two-dimensional systolic arrays, they can also be used to construct networks in well studied models of geometric complexity. Some of the algorithms are of considerable practical interest. Frank Thomson Leighton, Charles E. Leiserson |
FOCS | 2 |
| 1982 | How to Assemble Tree Machines (Extended Abstract)abstractMany researchers have proposed that ensembles of processing elements be organized as trees. This paper explores how large tree machines may be assembled efficiently from smaller components. A principal constraint that we consider is the limited number of external connections from an integrated circuit chip. We also explore the emerging capability of restructurable VLSI which allows a chip to be customized after fabrication. Sandeep N. Bhatt, Charles E. Leiserson |
STOC | 2 |
| 1981 | Optimizing Synchronous SystemsabstractThe complexity of integrated-circuit chips produced today makes it feasible to build inexpensive, special-purpose subsystems that rapidly solve sophisticated problems on behalf of a general-purpose host computer. This paper contributes to the design methodology of efficient VLSI algorithms. We present a transformation that converts synchronous systems into more time-efficient, systolic implementations by removing combinational rippling. The problem of determining the optimized system can be reduced to the graph-theoretic single-destination-shortest-paths problem. More importantly from an engineering standpoint, however, the kinds of rippling that can be removed from a circuit at essentially no cost can be easily characterized. For example, if the only global communication in a system is broadcasting from the host computer, the broadcast can always be replaced by local communication. Charles E. Leiserson, James B. Saxe |
FOCS | 1 |
| 1980 | Area-Efficient Graph Layouts (for VLSI)abstractMinimizing the area of a circuit is an important problem in the domain of Very Large Scale Integration. We use a theoretical VLSI model to reduce this problem to one of laying out a graph, where the transistors and wires of the circuit are identified with the vertices and edges of the graph. We give an algorithm that produces VLSI layouts for classes of graphs that have good separator theorems. We show in particular that any planar graph of n vertices has an O(n lg2 n) area layout and that any tree of n vertices can be laid out in linear area. The algorithm maintains a sparse representation for layouts that is based on the well-known UNION-FIND data structure, and as a result, the running time devoted to bookkeeping is nearly linear. Charles E. Leiserson |
FOCS | 1 |