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.
Intermittent Deep Neural Network Inference
Graham Gobieski, Nathan Beckmann, and Brandon Lucia. SysML'18.
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.
Improving the Locality of Graph Processing 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.
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.
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.
Cache Calculus: Modeling Caches through Differential Equations
Nathan Beckmann and Daniel Sanchez. CAL'16.
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.
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.