Network software is hard to design, implement, debug, and maintain. This basic problem is compounded by heterogeneity and the need for high performance. Heterogeneity results in multiplying the amount of networking software that must be developed and maintained. To improve performance, networking software is often hand-crafted in an operating system kernel, where software is particularly hard to debug and maintain. Emerging high-speed networking technology, coupled with next generation multimedia applications, is resulting in increased demand for high performance and extremely flexible networking software. A fundamental theme of this proposal is that advances in network software can only be achieved by an approach that simultaneously considers programming ease, platform diversity, and performance. This proposal investigates the use of compiler technology to rapidly prototype and automatically optimize complex protocol software. The result is network software that is easier to write, more portable, and more maintainable. Yet, with the appropriate automatic optimizations, the performance of such implementations should compare favorably to the performance of hand-crafted implementations. The first part of our proposal concerns techniques for automatically optimizing network software to achieve Gigabit link speeds. This involves inventing new optimization techniques (e.g., fusing together individual message demultiplexing definitions into efficient demultiplexing code), automating existing optimization paradigms (e.g., header prediction and address caching), and extending existing work on automated optimization techniques. Our plans call for building on the existing theory underlying optimizing compilers to unify various ad hoc techniques, and to provide a point of departure for producing new optimization techniques. The second part of our proposal involves a framework that integrates our optimization techniques to support rapid prototyping of efficient ne tworking software. We enable protocol code to be developed without undue attention paid to low-level wire data formats; operating system specific mechanisms for demultiplexing, synchronization, or error handling. This allows an extremely compact protocol description that is then compiled and optimized by our framework to a wide range of target environments. These environments include a simulator, application-level network interfaces, and shared-memory multiprocessor platforms.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Type
Standard Grant (Standard)
Application #
9628218
Program Officer
Karen R. Sollins
Project Start
Project End
Budget Start
1996-09-15
Budget End
2000-08-31
Support Year
Fiscal Year
1996
Total Cost
$420,063
Indirect Cost
Name
Washington University
Department
Type
DUNS #
City
Saint Louis
State
MO
Country
United States
Zip Code
63130