Giter Site home page Giter Site logo

homa's Introduction

Homa

An implementation of the Homa transport protocol as a C++ userspace library.

What is the Homa transport protocol?

Homa is a new transport protocol for datacenter networks developed at the Stanford PlatformLab. Homa provides exceptionally low latency, especially for workloads with a high volume of very short messages, and it also supports large messages and high network utilization. A complete description of Homa can be found in this paper. A version of this was published in ACM SIGCOMM 2018.

What is this implementation?

This project aims to provide a implementation of the Homa transport protocol that can be included by applications as a C++ library and can run completely in userspace, bypassing the kernel for the best possible performance.

The implementation built in two layers:

  1. a "Packet Driver" which provides simple unreliable packet send/receive, and
  2. the Transport which implements the Homa protocol using packet send/receive.

This project provides a DPDK based implementation of a Driver which allows high performance packet processing for linux-based systems with a range of NICs. The Transport is Driver agnostic so other environments can be supported by building additional drivers.

What is the current state of this implementation?

This implementation is under active development but is currently incomplete.

Quick Start

Dependencies

Required:

  • CMake (>= 3.11)
  • DPDK (17.11)

Optional:

  • Doxygen
  • pthreads

Download

git clone https://github.com/PlatformLab/Homa.git

Build

From the Homa project directory:

cmake -E make_directory build
cmake -E chdir build
cmake --build build

Install (default install prefix)

sudo cmake --build build --target install

homa's People

Contributors

cstlee avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.