
NSF Org: |
CNS Division Of Computer and Network Systems |
Recipient: |
|
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: |
|
History of Investigator: |
|
Recipient Sponsored Research Office: |
3 RUTGERS PLZ NEW BRUNSWICK NJ US 08901-8559 (848)932-0150 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
33 knighbridge road Piscataway NJ US 08854-8072 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): | Networking Technology and Syst |
Primary Program Source: |
|
Program Reference Code(s): |
|
Program Element Code(s): |
|
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.
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.