Award Abstract # 1910796
CNS Core: Small: Democratizing Network Hardware Offloads

NSF Org: CNS
Division Of Computer and Network Systems
Recipient: RUTGERS, THE STATE UNIVERSITY
Initial Amendment Date: August 5, 2019
Latest Amendment Date: August 5, 2019
Award Number: 1910796
Award Instrument: Standard Grant
Program Manager: Darleen Fisher
CNS
 Division Of Computer and Network Systems
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: October 1, 2019
End Date: September 30, 2023 (Estimated)
Total Intended Award Amount: $387,990.00
Total Awarded Amount to Date: $387,990.00
Funds Obligated to Date: FY 2019 = $387,990.00
History of Investigator:
  • Srinivas Narayana (Principal Investigator)
    srinivas.narayana@rutgers.edu
Recipient Sponsored Research Office: Rutgers University New Brunswick
3 RUTGERS PLZ
NEW BRUNSWICK
NJ  US  08901-8559
(848)932-0150
Sponsor Congressional District: 12
Primary Place of Performance: Rutgers University
33 knighbridge road
Piscataway
NJ  US  08854-8072
Primary Place of Performance
Congressional District:
06
Unique Entity Identifier (UEI): M1LVPE5GLSD9
Parent UEI:
NSF Program(s): Networking Technology and Syst
Primary Program Source: 01001920DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7923
Program Element Code(s): 736300
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

There are many practical applications for large-scale data processing. Examples include weather prediction, scientific computing, and Google searches. While the size of compute clusters has increased over time, the amount of data that can be processed with a single compute server is a tiny fraction of the datasets, placing a large burden on the interconnecting network that moves data among the servers. Academic researchers and industry developers have endeavored to improve the speed of this underlying network. Yet, the engineering effort required at the server side to quickly and flexibly process data arriving over the network remains enormous and out of reach for many application developers.

This project aims to significantly broaden the community of application developers benefiting from increasing network speeds. The project leverages recent technological developments in network interface cards (NICs) attached to servers, namely programmable NIC offload, to advance developer-friendly abstractions, programming languages, and platforms. The main technical contributions of this project are (1) an abstract NIC model to represent diverse NIC substrates, and (2) compilation algorithms that translate flexible developer programs into NIC implementations, and provide predictable high throughput and low delay for the traffic processed by the NIC. The result is to enable developers to process data flexibly on server NICs with guarantees of high performance.

All software prototypes developed over the course of this project will be released openly and freely to serve as research experimentation platforms and as pedagogical tools. The PI will develop curricular material to train graduate and senior undergraduate students in high-performance network data processing. The project will also introduce research activities to diverse high school student groups.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Xu, Qiongwen and Wong, Michael D. and Wagle, Tanvi and Narayana, Srinivas and Sivaraman, Anirudh "Synthesizing safe and efficient kernel extensions for packet processing" ACM SIGCOMM'21 , 2021 https://doi.org/10.1145/3452296.3472929 Citation Details

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

The high-level goals of this project were to make network offloads broadly accessible to a wider community of developers and to educate students in high-performance networking. Towards these goals, the project has accomplished the following.

(1) The project identified a unified instruction set, eBPF, that can enable expressive high-performance offloads to target a wide variety of software and hardware offload substrates, including network device drivers in the Linux kernel, SoC-based programable NICs, NIC firmware, and FPGAs. In particular, code expressed or compiled into this instruction set can be run on a diverse set of programmable NICs.

(2) Given the versatility and expressiveness of eBPF, the project developed an optimizing compiler for eBPF bytecode. Optimizing eBPF bytecode is challenging because of the existence of a static code analyzer (often referred to as the "eBPF verifier") that rejects code that may exhibit unsafe behaviors, for example exceptions or data leaks. To avoid getting user code rejected by the analyzer, existing optimizing compilers such as clang often implement conservative code optimizations, leaving performance on the table. 

This project was the first to point out this phase-ordering problem between safety and performance for eBPF code, and the first to propose a workable solution. We developed K2, an optimizing compiler that leverages program synthesis techniques to search for code that is semantically equivalent to a given input code, yet safe and exhibiting higher performance. K2 produces code with 6--26% reduced size, 1.36%--55.03% lower average packet-processing latency, and 0--4.75% higher throughput (packets per second per core) relative to the best clang-compiled program, on realistic benchmark programs run on production systems.

K2 enables developers from broad backgrounds to reap the benefits of expressive programming in the eBPF ecosystem, with guarantees of correctness, safety, and high performance. K2 is open source.  Several academic and industrial research groups have worked with it for their own code optimization and formal verification of eBPF software.

(3) Towards the educational goals of the project, this grant sponsored the work of one graduate student across several years, and supported the training of multiple Ph.D., Masters, and undergraduate students in the topics of high-performance network programming and formal methods. The lead Ph.D. student on the project has given talks at top-tier international academic conferences and leading industrial developer-oriented venues, boosting the visibility of both the student and the project. Several undergraduate and Masters students have been trained, over the course of multiple years, on programming with eBPF and programmable NIC platforms. Along with the Ph.D. student primarily sponsored by the grant, one undergraduate and Masters student were also coauthors of a top-tier academic publication in the field of computer networking.

In summary, this project has advanced the state of the art in the field of high-performance network offload, led to an open source optimizing compiler that has broadened the reach of high-performance network programming and offload to a broader and diverse group of developers and students, and trained several students in the concepts and tools of network programming, some of whom are embarking on careers in computer networking.

 


Last Modified: 01/30/2024
Modified by: Srinivas G Narayana

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page