Ming Liu

Project Overview

Modern datacenters and enterprise clusters increasingly incorporate programmable networking devices, such as reconfigurable switches, SmartNICs/DPUs/IPUs, and network-attached accelerators. Yet today’s distributed systems continue to treat the network merely as a communication channel, leaving its computation, memory, and coordination capabilities largely unexploited.

The dSys-PNF (Distributed Systems over Programmable Network Fabric) project treats programmable networks as first-class computing resources and co-designs distributed system software with programmable networking hardware. Rather than simply offloading packet processing, we redesign distributed systems around the capabilities of programmable network devices, enabling computation, caching, scheduling, synchronization, and data management to execute throughout the network fabric. Our research spans the entire software stack from programming models, compilers, and runtime systems to schedulers, operating systems, distributed services, and network functions. By integrating distributed systems with programmable networks, we demonstrate that the network can evolve from a passive communication medium into an active execution platform, greatly improving application performance, scalability, energy efficiency, and programmability.

Challenges

Programmable networking devices change where computation can execute. However, exploiting these devices is hard because developers must simultaneously reason about:

Existing software stacks expose programmable networking devices primarily as hardware accelerators, forcing programmers to manually partition applications, optimize data movement, and tune implementations through trial and error. As network bandwidth grows and networking hardware becomes increasingly programmable, this complexity intensifies.

Our Approach

Our insight is that elevating the hardware capabilities of programmable networks into application-native software abstractions makes efficient distributed systems possible. We ask: How should distributed systems be redesigned when programmable networking becomes an execution substrate? In this project, we have developed systems spanning multiple layers of the software stack, from programming models and runtime systems to operating systems and automated optimization tools.

Here are the systems we have built.