spcl / spcl/serverless-benchmarks

New benchmarks and applications

Open
#140 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Python
Stars
199
Forks
105
PR merge metrics
No merged PRs in 30d

Description

In SeBS, we provide a representative set of functions and have developed a set of serverless workflows that will be included in the upcoming release. However, the serverless field is constantly changing, and new types of applications are being "FaaS-ified". SeBS will benefit from new type of functions, new workflows, and from new applications - the last type has not been considered for SeBS yet.

Functions

The current list of functions is available in the documentation.

New ideas (all should be rather simple to implement thanks to a large number of open-source implementations):

Workflows

The current list of workflows is in the PR #88 and in the related thesis. In the PR, we have workflows for MapReduce, video analysis, ExCamera, and ML fitting. The thesis also documents the abstract language we use to specify each workflow.

To extend SeBS, we want to cover new application types and rich workflows with new computational patterns.

Potential new ideas:

  • ServerlessLand snippets
  • Simple webapp application - todos.
  • Another webapp - airline flight booking
  • Pywren has several linear algebra applications. It is not written as a workflow, but turning a Cholesky or matrix-matrix multiplication into a workflow with pre-defined schedule would be very interesting.
  • AFCL has two interesting benchmarks - we should analyze if they can be expressed properly in our system to run on AWS Step Functions or Azure Durable.
  • cbl-translate is a very interesting, rich and complex ML inference workflow that utilize several different models. The workflow uses external APIs such as DeepL, but we should be able to not rely on them - either deploy an existing open-source model for this task instead of an external API or remove that feature entirely.
  • maskopy - another interesting utility application that runs on AWS Step Functions.
  • Compilation benchmark - examples are in the gg paper. We do not need generality, but an example of offloading compilation steps.
Applications

Our benchmark suite contains functions and workflows, but it does not contain full applications not written as workflows. This can be standalone applications offloading certain tasks to serverless, and fully serverless applications.

  • Simple web applications - one motivation example, another one, another one.
  • Black-Scholes from PARSEC benchmark suite - we already have code for a serverless invocation that should be integrated soon.
  • Microservices are an extremely important workload to the cloud, and several authors have attempted to port them to serverless. This usually requires adding database for state, and replacing RPC with queues and triggers. DeathStarBench is a great source of microservices - SocialNetwork might be a great candidate and it's in C++ for which we have provisional support. Another paper describes porting several microservices - the paper does not come with a code, but some of these application should be open source, e.g., Overleaf.
  • Another work is focused on benchmarking applications built on top of serverless triggers - one of the examples might also be new to SeBS and interesting. So far, we have not explored asynchronous triggers in SeBS.
  • Serverless Google Maps is open source.
  • Simple webapp application - todos.
  • Another webapp - airline flight booking
  • Pywren has several linear algebra applications.
  • cbl-translate is a very interesting, rich and complex ML inference workflow that utilize several different models. We can represent this as an application and remove the dependency on an external ML API.
  • Hello-retail is an interesting one. The original repo is gone, but forks are available one and [another](https://github.com/SimonEismann/hello-retail]. Papers using it: 1 and 2
  • Data processing - example of parallel processing of large CSV files.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/benchmarks.md to understand the existing function list, then review PR #88 and the related thesis for workflow conventions. Choose one narrowly scoped candidate from the proposed functions, workflows, or applications and define its integration boundaries; done should mean the selected benchmark is implemented and represented in the SeBS suite.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, cpp, python
Domain
cloud, data, machine-learning, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
22/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.