I am a PhD student studying computer architecture and operating systems for warehouse-scale computers (WSCs). I'm especially interested in the concept of resource disaggregation and serverless computing, where the individual components of traditional servers (CPU sockets, acclerators, memory, storage, etc.) are all directly accessible over the network (this is part of the FireBox Project). My work focuses on developing WSC-native programming models and the hardware needed to support those models. In particular, I am interested in integrating accelerators into the serverless programming paradigm.
Evaluating this research vision requires advances in programming models, hardware design, and simulation infrastructure, and so I also work on the FireSim datacenter-scale, cycle-exact, simulator (part of the chipyard agile SoC development framework). My work on FireSim and Chipyard mostly focuses on tools and methodologies for HW/SW co-design. In particular, I work on simplifying and automating the process of building, managing, and evaluating workloads across both functional and cycle-exact simulation with the FireMarshal tool.
For the two years before coming to Berkeley I worked at Oracle Labs. There I worked on a hardware/software co-design project focusing on analytic databases. Before that I was at UC Santa Cruz where I received my bachelor's degree in computer engineering with a focus on computer systems. I grew up in a small town near San Luis Obispo called Los Osos (about 4 hours south of Berkeley on the coast).
Serverless computing includes more than just function-as-a-service. Real serverless applications interact with a variety of cloud services. To aid in researching these systems, we have designed the Serverless Research Kit (SRK); a framework for abstracting common cloud services to facilitate research. SRK is a very early project but is already being used for serverless research within Berkeley.
I am currently working on a project to include GPUs in the serveress ecosystem. In preliminary work, we demonstrated a simple kernel-as-a-service prototype (PyPlover) that allows users to upload a GPU-side function (called a "kernel" in CUDA) to the cloud and have it executed asynchronously on arbitrary hardware. I am currently expanding this work to support more realistic workloads with a data model and more flexible scheduling options. I am closely collaborating with the Cloudburst project on this work. In the future, I hope to investigate similar approaches for novel hardware accelerators like the NVDLA deep learning accelerator (using the Chipyard framework mentioned above).
The FireBox project aims to develop a system architecture for third-generation Warehouse-Scale Computers (WSCs). The proposed Firebox architecture scales up to a ~1 MegaWatt WSC containing up to 10,000 compute nodes and up to an Exabyte (2^60 Bytes) of non-volatile memory connected via a low-latency, high-bandwidth optical switch. The FireBox project will produce custom datacenter SoCs, distributed simulation tools for warehouse-scale machines, and systems software for FireBox-style disaggregated datacenters.
In my masters research, I focused on the problem of exposing remote memory to operating systems as a virtual swap device. This approach is appealing because it is transparent to applications and reuses existing operating system infrastructure. Unfortunately, paging comes with significant software overheads, furthermore, each page fault synchronously interrupts the application. To get around these problems, I designed a modification to the traditional address translation hardware to automatically issue RDMA requests to remote memory without interrupting the operating system. Instead, the OS asynchronously processes paging events in the background without interrupting the application.
FireSim is a cycle-exact, FPGA-accelerated scale-out computer system simulation platform. FireSim can simulate thousands of nodes, connected over a cycle-accurate network model, using real target-RTL. It leverages FPGAs in the cloud to provide elasic scaling of simulation ifrastructure, enabling large-scale simulation at a fraction of the cost of dedicated systems. My work on FireSim focuses on tools and methodologies for managing complex target software stacks in order to accelerate the HW/SW co-design process. My tools make the process of designing and evaluating software benchmarks on novel hardware more robust, interoperable, and most importantly, reproducible.
In addition to being a grad student, I'm also a person.
nathanp AT berkeley DOT edu
Desk: 585-3 Soda Hall (ADEPT Lab)