Interested in working on Homa? This page describes various possible projects. Some are large and very ambitious, while others are smaller; some could potentially lead to research papers, while others would have more practical impact in terms of making Homa useful to the world.

Reduced Buffer Utilization

Homa already uses less buffer space in network switches than TCP, but it should be possible to improve its buffer usage even more without sacrificing performance. Here are a few ideas:

RPC Framework Integration

The best way to encourage widespread usage of Homa is to add Homa support to all of the major RPC frameworks. This should be done in a way that allows applications to switch to Homa with trivial changes. Work is already underway on gRPC integration, but it does not yet support all of the languages supported by gRPC. In addition, it would be great to add Homa support to Apache Thrift and any other widely used frameworks.

New NIC Architecture

At some point in the not-too-distant future, transport protocol implementations need to move to the NIC. It no longer makes sense to run them in software, either in the operating system or in applications; see the ATC Homa paper for a discussion of all the reasons. Existing “smart NICs” are woefully inadequate for this task; for example those based on general-purpose cores are way too slow (this is just software in a different place), and those based on FPGAs are too hard to program. Thus we need a new NIC architecture with at least the following characteristics:

This is a very large and very ambitious project, but it should also be a very interesting one.