rfaas

rFaaS: a high-performance FaaS platform with RDMA acceleration for low-latency invocations.

https://github.com/spcl/rfaas

Science Score: 72.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    1 of 10 committers (10.0%) from academic institutions
  • Institutional organization owner
    Organization spcl has institutional domain (spcl.inf.ethz.ch)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

faas faas-platform rdma serverless serverless-framework
Last synced: 6 months ago · JSON representation ·

Repository

rFaaS: a high-performance FaaS platform with RDMA acceleration for low-latency invocations.

Basic Info
Statistics
  • Stars: 51
  • Watchers: 7
  • Forks: 18
  • Open Issues: 23
  • Releases: 0
Topics
faas faas-platform rdma serverless serverless-framework
Created almost 5 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

rFaaS: RDMA-Enabled FaaS Platform for Serverless High-Performance Computing

A high-performance FaaS platform with RDMA acceleration for function invocations.

License GitHub issues GitHub pull requests

rFaaS vs HPC vs FaaS The cloud paradigm Function-as-a-Service (FaaS) provides an ability to execute stateless and fine-grained functions on elastic and ephemeral resources. However, serverless struggles to achieve the performance needed in high-performance computing: slow invocations, low network bandwidth, and the overheads of the FaaS management system make it difficult to incorporate serverless functions when every millisecond counts. Therefore, we decided to combine the best of both worlds: elasticity of FaaS and high-performance of cluster batch systems. We built a new FaaS platform with RDMA-accelerated network transport.

rFaaS is a serverless platform redesigned to support high-performance and low-latency invocations with a direct RDMA connection. In rFaaS, the centralized schedulers and API gateway are replaced with a decentralized allocation mechanism. Instead of using a traditional cloud trigger, HPC applications query executor servers, obtain resource allocation and establish RDMA connections to remote workers. Every function is invoked by writing input data directly to the memory of the worker. This allows us to achieve a single-digit microsecond hot invocation latency - hot invocations add less than 350 nanoseconds overhead on top of the fastest available network transmission.

To use rFaaS, please read the documentation on software and hardware requirements, installation instructions, and the basic example of using rFaaS. rFaaS comes with a set of benchmark applications and tests. We provide an extended set of C++ serverless functions, including multimedia and ML inference examples from the serverless benchmarking suite SeBS. Finally, you can find more details about rFaaS in the documentation on the system and the client rFaaS library.

Do you have further questions not answered by our documentation? Did you encounter troubles with installing and using rFaaS? Or do you want to use rFaaS in your work and you need new features? Feel free to reach us through GitHub issues or by writing to marcin.copik@inf.ethz.ch.

Paper

When using rFaaS, please cite our arXiv paper preprint, and you can find more details about research work in this paper summary. You can cite our software repository as well, using the citation button on the right.

@inproceedings{copik2023rfaas, title={{r}FaaS: Enabling High Performance Serverless with RDMA and Leases}, author={Marcin Copik and Konstantin Taranov and Alexandru Calotoiu and Torsten Hoefler}, year={2023}, series = {IPDPS '23}, booktitle = {Proceedings of the 37th IEEE Interational Parallel and Distributed Processing Symposium}, eprint={2106.13859}, }

Requirements

Hardware rFaaS supports SoftROCE and RoCE RDMA NICs with the help of ibverbs. Evaluation and testing with IB fabric is currently in progress.

In future versions, we plan for rFaaS to support Cray interconnect through libfabric and its ugni provider.

Software Currently, rFaaS works only on Linux systems as we realy heavily on POSIX interfaces. We require the following libraries and tools:

  • CMake >= 3.11.
  • C++ compiler with C++17 support.
  • libibverbs with headers installed.
  • librdmacm with headers installed.

Furthermore, we fetch and build the following dependencies during CMake build - unless they are found already in the system.

Containers rFaaS supports two types of function executors - a bare-metal process and a Docker container. For Docker, we use the SR-IOV plugin from Mellanox to run Docker-based function executors with virtual NIC device functions. Please follow Mellanox documentation and instructions to install and configure the plugin. rFaaS expects that docker_rdma_sriov binary is available in PATH.

In future versions, we plan to support Singularity containers and offer a simpler, but less secure Docker networking.

Installation

To build rFaaS, run the following CMake configuration:

bash cmake -DCMAKE_CXX_COMPILER=<your-cxx-compiler> -DCMAKE_BUILD_TYPE=Release <source-dir> cmake --build .

To enable more verbose logging, change the CMake configuration parameter to: -DCMAKE_BUILD_TYPE=Debug.

The CMake installation has the following optional configuration parameters.

| Arguments | | |-------------------------------------------------------------------|----------------------------------------------| | WITHEXAMPLES | EXPERIMENTAL Build additional examples (see examples subsection for details on additional dependencies). | | WITHTESTING | EXPERIMENTAL Enable testing - requires providing JSON testing configuration as the value of this flag. See testing subsection for details. | | CXXOPTSPATH | Path to an existing installation of the cxxopts library; disables the automatic fetch and build of the library. | | SPDLOGPATH | Path to an existing installation of the spdlog library; disables the automatic fetch and build of the library. | | LIBRDMACM_PATH | Path to a installation directory of the librdmacm library. |

Usage

To learn how to use rFaaS, please follow the tutorial

For an in-depth analysis of each component and their configuration, please look at the system documentation.

Authors & Contributors

Owner

  • Name: SPCL
  • Login: spcl
  • Kind: organization

Citation (CITATION.cff)

# YAML 1.2
---
authors: 
  - family-names: Copik
    given-names: Marcin
    orcid: "https://orcid.org/0000-0002-7606-5519"
  - family-names: Taranov
    given-names: Konstantin
  - family-names: Calotoiu
    given-names: Alexandru
  - family-names: Hoefler
    given-names: Torsten
  - family-names: Chrapek
    given-names: Marcin
cff-version: "1.1.0"  
date-released: 2021-07-29
message: "If you use this software, please cite our rFaaS paper, and cite the software repository using this metadata."
repository-code: "https://github.com/spcl/rFaaS"
title: "rFaaS: RDMA-Enabled FaaS Platform for Serverless High-Performance Computing"
version: "1.0"
...

GitHub Events

Total
  • Create event: 3
  • Issues event: 3
  • Watch event: 5
  • Delete event: 4
  • Member event: 2
  • Issue comment event: 14
  • Push event: 33
  • Pull request review event: 12
  • Pull request review comment event: 6
  • Pull request event: 9
  • Fork event: 3
Last Year
  • Create event: 3
  • Issues event: 3
  • Watch event: 5
  • Delete event: 4
  • Member event: 2
  • Issue comment event: 14
  • Push event: 33
  • Pull request review event: 12
  • Pull request review comment event: 6
  • Pull request event: 9
  • Fork event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 411
  • Total Committers: 10
  • Avg Commits per committer: 41.1
  • Development Distribution Score (DDS): 0.063
Past Year
  • Commits: 23
  • Committers: 3
  • Avg Commits per committer: 7.667
  • Development Distribution Score (DDS): 0.478
Top Committers
Name Email Commits
Marcin Copik m****k@g****m 385
Nicolò Monaldini n****i@g****m 9
ktaranov k****v@i****h 7
William-Mou w****4@g****m 3
LeandroTreu l****u@g****m 2
9****y 1
Matt Nappo m****o@g****m 1
Marcin Chrapek m****p@g****m 1
William-Mou c****t@m****w 1
Konstantin Taranov k****v@a****h 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 21
  • Total pull requests: 31
  • Average time to close issues: over 2 years
  • Average time to close pull requests: about 2 months
  • Total issue authors: 5
  • Total pull request authors: 9
  • Average comments per issue: 1.62
  • Average comments per pull request: 1.77
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 10
  • Average time to close issues: N/A
  • Average time to close pull requests: about 2 months
  • Issue authors: 1
  • Pull request authors: 3
  • Average comments per issue: 0.0
  • Average comments per pull request: 1.2
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • mcopik (17)
  • LiuMicheal (1)
  • nicolo-mn (1)
  • mattnappo (1)
  • Yuanmxc (1)
Pull Request Authors
  • mattnappo (7)
  • William-Mou (6)
  • mcopik (5)
  • LeandroTreu (5)
  • nicolo-mn (4)
  • Mac16661 (1)
  • marchrap (1)
  • omcal (1)
  • Yuanmxc (1)
Top Labels
Issue Labels
enhancement (15) bug (4) good first issue (4)
Pull Request Labels