Nathan Beckmann

Assistant Professor in the
Computer Science Department and
ECE Department (by Courtesy)
at Carnegie Mellon University

9021 Gates-Hillman Center
my last

Curriculum Vitae
Google Scholar


For a complete list of publications in chronological order, as well as other useful information, please see my curriculum vitae.
Parallel architectures for intermittent neural network inference

This project aims to enable a new class of intelligent, energy-harvesting computers. Future IoT applications will demand intelligence at the edge, and battery-less systems that harvest ambient energy from their environment are a promising technology. But energy-harvesting devices introduce new problems, since their intermittent power means that the devices suffer frequent power failures, where forward progress is lost. We are exploring the limits of these devices, developing novel software and hardware techniques to enable ubiquitous machine learning on energy-harvesting systems.

Intelligence Beyond the Edge: Inference on Intermittent Embedded Systems
Graham Gobieski, Brandon Lucia, and Nathan Beckmann. ASPLOS'19.

Intermittent Deep Neural Network Inference
Graham Gobieski, Nathan Beckmann, and Brandon Lucia. SysML'18.

Memory services & programmable cache hierarchy

Traditionally, cores access memory through loads and stores. This simple interface is convenient for architects and simple for programmers, but it also forces data to move across the full cache hierarchy even for short computations. This added data movement makes many attractive optimizations impractical, and forces architects to expend significant effort and resources to try to recover applications' intent (e.g., through prefetchers). This project aims to establish a new system architecture where applications can extend the memory hierarchy's interface through memory services, i.e., short computations that execute within the cache hierarchy directly on cached data. We aim to demonstrate the potential of a richer memory interface by developing several exemplar services and by designing a programmable cache hierarchy to support a wide range of services. We have begun by developing services for graph processing.

Exploiting Locality in Graph Analytics through Hardware-Accelerated Traversal Scheduling
Anurag Mukkara, Nathan Beckmann, Maleen Abeydeera, Xiaosong Ma, Daniel Sanchez. MICRO'18.

Cache-Guided Scheduling: Exploiting Caches to Maximize Locality in Graph Processing
Anurag Mukkara, Nathan Beckmann, Daniel Sanchez. AGP Workshop at ISCA'17.

Software-defined caches & dynamic data scheduling

Multicore has turned processors into miniature distributed systems, where data placement is a prime determinant of system performance and energy efficiency. Processors already spend a significant fraction, often more than half, of their time and energy waiting for data. This project introduces a new operating-system-level abstraction: the software-defined cache. Software-defined caches help manage data placement to satisfy application objectives, transparently specializing the memory hierarchy's organization to each application. This project develops new hardware mechanisms to support software-defined caches and the software systems needed to configure them.

Nexus: A New Approach to Replication in Distributed Shared Caches
Po-An Tsai, Nathan Beckmann, and Daniel Sanchez. PACT'17.
[paper] [talk]

Jenga: Software-Defined Cache Hierarchies
Po-An Tsai, Nathan Beckmann, and Daniel Sanchez. ISCA'17.
[paper] [talk]

Whirlpool: Improving Cache Management with Application-Level Data Classification
Anurag Mukkara, Nathan Beckmann, and Daniel Sanchez. ASPLOS'16.
[paper] [talk]

CDCS: Scaling Distributed Cache Hierarchies through Computation and Data Co-Scheduling
Nathan Beckmann, Po-An Tsai, and Daniel Sanchez. HPCA'15. (Best paper nominee)
[paper] [talk]

Jigsaw: Scalable Software-defined Caches
Nathan Beckmann and Daniel Sanchez. PACT'13.
[paper] [extended version] [talk]

Cache analysis and modeling

Caches are pervasive in computer systems and critical to their end-to-end performance. Traditionally, cache analysis has focused on object popularity, assuming that cache requests are largely independent. This is not true of many important workloads, making much of this theory inapplicable in practice. I am interested in theoretically-grounded analysis of caching problems seen in practice, leading to new results on the limits of current systems as well as policies that outperform the best heuristics used in practice.

Practical Bounds on Optimal Caching with Variable Object Sizes
Daniel S Berger, Nathan Beckmann, and Mor Harchol-Balter. SIGMETRICS'18.
[paper] [talk] [code]

LHD: Improving Cache Hit Rate by Maximizing Hit Density
Nathan Beckmann, Haoxian Chen, and Asaf Cidon. NSDI'18.
[paper] [talk] [code]

Maximizing Cache Performance Under Uncertainty
Nathan Beckmann and Daniel Sanchez. HPCA'17.
[paper] [talk] [code]

Cache Calculus: Modeling Caches through Differential Equations
Nathan Beckmann and Daniel Sanchez. CAL'16.

Modeling Cache Performance Beyond LRU
Nathan Beckmann and Daniel Sanchez. HPCA'16.
[paper] [talk]

Talus: A Simple Way to Remove Cliffs in Cache Performance
Nathan Beckmann and Daniel Sanchez. HPCA'15.
[paper] [talk]

Other work

I am also interested in many other areas of computer systems. In past and ongoing work, my research has addressed how to ensure quality-of-service (QoS) at minimal energy in datacenters, operating systems for highly parallel systems (e.g., manycores or datacenters), and efficient but accurate architectural simulation.

Improving Datacenter Efficiency through Partitioning-Aware Scheduling
Harshad Kasture, Xu Ji, Nosayba El-Sayed, Nathan Beckmann, Xiaosong Ma, Daniel Sanchez. PACT'17 (short paper).

Rubik: Fast Analytical Power Management for Latency-Critical Systems
Harshad Kasture, Davide B. Bartolini, Nathan Beckmann, and Daniel Sanchez. MICRO'15.
[paper] [talk]

Design and Analysis of Spatially-Partitioned Shared Caches
Nathan Beckmann. PhD thesis, MIT EECS, Sep 2015. George M. Sprowls Doctoral Thesis Prize.
[thesis] [defense] (Defense content differs slightly from thesis.)

PIKA: A Network Service for Multikernel Operating Systems
Nathan Beckmann, Charles Gruenwald III, Christopher R. Johnson, Harshad Kasture, Filippo Sironi, Anant Agarwal, M. Frans Kaashoek, and Nickolai Zeldovich. CSAIL Technical Report.

An Operating System for Multicores and Clouds
David Wentzlaff, Charles Gruendwald III, Nathan Beckmann, Kevin Modzelewski, Adam Belay, Lamia Youseff, Jason Miller, and Anant Agarwal. SOCC'10.

Graphite: A Distributed Parallel Simulator for Multicores
Jason Miller, Harshad Kasture, George Kurian, Charles Gruenwald, Nathan Beckmann, Christopher Celio, Jonathan Eastep, and Anant Agarwal. HPCA'10.