- Diversity, Equity, and Inclusion
- Research News
- Department Life
- Oral History of Cornell CS
- CS 40th Anniversary Booklet
- ABC Book for Computer Science at Cornell by David Gries
- Department Timeline
- Job Postings
- Ithaca Info
- Internal info
- Graduation Information
- Cornell Tech Colloquium
- Student Colloquium
- Fall 2023 Colloquium
- Conway-Walker Lecture Series
- Salton 2023 Lecture Series
- Seminars / Lectures
- Big Red Hacks
- Cornell University High School Programming Contests 2023
- Game Design Initiative
- CSMore: The Rising Sophomore Summer Program in Computer Science
- Explore CS Research
- ACSU Research Night
- Cornell Junior Theorists' Workshop
The Systems group at Cornell examines the design and implementation of the fundamental software systems that form our computing infrastructure. Below we give just a small representation of the varied systems work going on here, and invite you to visit the project and faculty web pages, as well as read our papers.
The increasing importance of cloud infrastructures, cloud computing and containerization are leading organizations to move growing portions of their enterprise activities out of their own data centers and into the cloud. Hakim Weatherspoon and Robbert van Renesse have been collaborating on improvements to the cloud paradigm. A key enabler here is nested virtualization: the ability to run a virtual machine inside another virtual machine. Nested virtualization gives the user significant powers. For example, it allows a user to migrate their virtual machines between cloud providers, or consolidate multiple lightly loaded virtual machines in a single virtual machine dynamically. Also, as virtual machines often run a single application, access to the virtual machine monitor makes it possible to take down the kernel/user space barrier, leading to significant improvements in performance.
Datacenter applications consist of many communicating components and evolve organically as requirements develop over time. Lorenzo Alvisi and Robbert van Renesse are working on two projects that try to support such organic growth. The first project, Escher, recognizes that components of a distributed systems may themselves be distributed systems. Escher introduces a communication abstraction that hides the internals of a distributed component, and in particular how to communicate with it, from other components. Using Escher, a replicated server can invoke another replicated server without either server having to even know that the servers are replicated. The second project, Ziplog, presents a datacenter-scale totally ordered logging service. Logs are increasingly a central component in many datacenter applications, but existing totally ordered log implementations make a trade-off between scale and latency, while log reconfigurations can lead to significant hiccups in the performance of those applications. Ziplog provides large scale and ultra-low latencies and supports seamless reconfiguration operations that allow it to scale up and down without any downtime.
Starting in 2017, Ken Birman's group worked to create a new library for building highly assured cloud computing systems that use replication and coordinate actions. Derecho achieves blinding speeds by leveraging RDMA hardware -- in fact it is faster than standard systems even over standard TCP protocols, and the Derecho version of the collective computing primitives (analogous to NCCL and Open MPI's CCL) outperform even those widely popular, heavily used options. The core of Derecho gains speed not just by mapping efficiently to fast networking, although that is definitely one aspect of the advantage: The other is that Derecho as a whole uses versions of state machine replication (Paxos) that have been "refactored" with ultra-high bandwidths (and fairly low latencies) in mind.
In newer work, Ken's group used Derecho to create Cascade: a novel platform for hosting the data used in ML and AI applications and while simultaneously hosting the runtime environments used by AI platforms like PyTorch and Tensor Flow and Databricks on those same machines. This work starts with a widely discussed issue: AIs such as computer vision tools and ChatBots are running slowly and yet inefficiently: unless requests are batched and performed in large jobs, platform utilization is quite low. Cascade speeds up AI in settings where speedy responses matter and batching isn't really practical, by tackling this issue of platform inefficiency directly.
The most important innovatio centers on reducing the amount of copying that needs to occur as applications excute. This one step enables huge speedups, but it isn't an easy step to take because AI applications are hard to modify: they have become so big and so complex that many users are forced to work with them as off-the-shelf black boxes. Thus, to get the AI to interact with memory, or storage, or a network in a non-standard way we have to fool the AI into using our new techniques by virtualizing them to be indistinguishable from the more standard but slower approaches. Under the hood, Cascade has a novel form of zero-copy lock-free data access, so that the instant data arrives it can trigger the desired ML or AI computation. Data is cached in host memory or in the GPU for additional speed, and unlike a standard KVS, Cascade is able to plan both data placement and task placement to optimize for high resource utilizations with ultra-low latency. Early uses of Cascade include an industrial IIoT platform that leverages the Siemens Mendix product as a dashboard but integrates tightly with Cascade's fast data paths, digital agriculture work aimed at smart farms or larger-scale regional planning, onboard flight applications for fly-by-wire aircraft and smart power grid control. Down the road, our thinking is to expand Cascade to have a new kind of dual hosting ability, with part of an AI application living near the edge, but another part hosted on the cloud, to enable totally transparent use of cloud resources while also gaining the huge latency benefits of proximity to sensors such as cameras.
For summaries of additional cloud computing research at Cornell see cloudcomputing.cornell.edu.
Cornell is particularly well-known for its foundational and practical work on fault-tolerant distributed systems. Ken Birman's book on reliable distributed systems is widely used in classrooms and industry. His Isis toolkit system was used extensively in industry for building fault-tolerant systems for decades. Fred Schneider's oft-referenced and ACM Hall of Fame award-winning State Machine Replication tutorial is standard fare in systems courses around the world. Van Renesse and Schneider invented and analyzed the Chain Replication paradigm, which is now used by several large Internet services including Microsoft Azure storage.
Fred Schneider and Robbert van Renesse are currently collaborating on a new version of Chain Replication that is able to self-configure. If successful, it will be the first replication protocol for fail-stop protocols that is able to to self-configure. Greg Morrisett and Robbert van Renesse are collaborating on Byzantine replication protocols and blockchain protocols that are provably correct.
Nate Foster, in cooperation with researchers at Princeton, has been developing high-level languages, such as Frenetic, for programming distributed collections of enterprise network switches (ICFP 2011, HotNets 2011, POPL 2012). The languages allow modular reasoning about network properties. Ken Birman, Robbert van Renesse, Hakim Weatherspoon, and their students are working with researchers from other academia and industry on the Nebula project, whose goal is to address threats to the cloud while meeting the challenges of flexibility, extensibility and economic viability (IEEE Internet Computing 2011). One artifact that came out of this work is TCPR, a tool that fault-tolerant applications can use to recover their TCP connections after crashing or migrating; it masks the application failure and enables transparent recovery, so the remote peers remain unaware. Another artifact under development is SoNIC (Software-defined Network Interface Card), which provides precise and reproducible measurements of an optical lambda network. By achieving extremely high levels of precision, SoNIC can shed light on the complexities of flows that traverse high-speed networks (IMC 2010, DSN 2010). Birman and Van Renesse collaborated with Cisco to create a high availability option for the Cisco CRS-1 backbone network routers (DSN 13).
Besides the topics mentioned above, the systems faculty is also actively involved with cross-cutting research involving Security, Programming Languages, Computer Architecture, and Theory. Many Cornell systems have been adopted by industry, and companies such as Microsoft, Google, Amazon and Facebook all use Cornell software or algorithms in diverse ways. Indeed, the CTO at Amazon, Werner Vogels, joined that company directly from PhD research at Cornell, and the Chief Scientist of Microsoft Azure Global, Ranveer Chandra, also has a Cornell PhD. Chandra also heads Microsoft Network research and IoT Edge computing. And Johannes Gherke, previously a Cornell faculty member, is head of research for all of Microsoft Redmond. Other Cornell students went on to take leadership roles at Facebook, revamping that company's entire content hosting and distributed systems architecture, and Ulfar Errlingsson was head of security research at Google for nearly a decade. Yaron Minsky, a Cornell systems PhD, leads a major Wall Street computing infrastructure group at Jane Street.
The Systems Group at Cornell prides itself on its collegial internal environment. Our Systems Lunches, where professors and graduate students get together every Friday to have lunch and discuss recent, cutting-edge papers in the field, draws an attendance of 40–60 people and has been adopted by many other institutions. And Cornell's Systems Lab, a large collaborative space with wall-to-wall whiteboards, projectors, sound systems and work areas for up to three dozen people, has served as a crucible where people hack together on projects and design new systems.