Skip to content

Framework that integrates the serverless benchmark suite vSwarm with gem5, the state-of-the-art research platform for system-and microarchitecture.

License

Notifications You must be signed in to change notification settings

vhive-serverless/vSwarm-u

Repository files navigation

vSwarm-u Header

Build Linux Kernel Build Gem5 x86 base disk image Arm base disk image Function Install CI

doc GitHub release (latest by date) License: MIT follow on Twitter

Serverless computing represent a new class of workloads, challenging the microarchitecture of modern CPU's. The mission of vSwarm-μ is to provide microarchitect's with the tools they need to address those challenges in next generation CPU's. As such vSwarm-μ is part of the vHive Ecosystem and allow cycle accurate simulations of containerized serverless benchmarks from vSwarm using gem5

Challenges of Serverless Host Simulation

Serverless computing has emerged as a widely used paradigm for deploying services in the cloud. However, with their unique characteristics of short execution times and infrequent invocation of function instances serverless workloads set new demands on both the microarchitecture of modern server CPU’s as well as the research tools built to design this microarchitecture.

gem5 is the state-of-the-art research platform for system- and microarchitecture but does not support key layers of the serverless software stack in its reference setup. Moreover, the common way of ignoring large parts of the system stack and simplifying test scenarios in favour of simulation speed is not applicable to serverless. Due to its significant part faction of execution time spend in communication and system stack components such simplifications may result in wrong experimental data and, consequently, mislead research.

The vSwarm-μ Framework

Serverless software stack on gem5 Serverless Test infrastructure

vSwarm-μ offers two main components to address the challenges of serverless host simulation. A full serverless software stack including kernel, OS and packages compatible with gem5. Furthermore, the infrastructure to drive function instances running on the simulated serverless host server without interfering or simplifying the complexity of the test system.

That will equip microarchitect's and researchers with the tools they need to identify the real bottlenecks in modern hardware when running serverless workloads.

Interested? Find more information why and how we build vSwarm-μ from its first presentation and the remaining documentation.

Key features of vSwarm-μ

To enable microarchitectural innovation, vSwarm-μ provides a ready-to-use serverless simulation platform based on the gem5 simulator. With vSwarm-μ, 20 functions from the vSwarm benchmark suite are ready to run in gem5 unmodified from their deployment on real hardware – i.e., in the same OS environment and containerization.

This is enabled through a set of tools, configurations and documentation to facilitate the necessary multi-node (client-server) setup in gem5, load generation, function deployment, and results analysis. Uniquely, because function execution times are relatively short, vSwarm-μ affords simulation of end-to-end function execution without the need for sampling or workload subsetting.

NEW: vSwarm-μ supports now x86 and the Arm instruction set.

Referencing our work

If you decide to use vSwarm-μ for your research and experiments, we are thrilled to support you by offering advice for potential extensions of vSwarm-μ and always open for collaboration.

Please cite our paper that has been recently accepted to ISCA 2022:

@inproceedings{schall:lukewarm,
  author    = {Schall, David and
               Margaritov, Artemiy and
               Ustiugov, Dmitrii and
               Sandberg, Andreas and
               Grot, Boris},
  title     = {Lukewarm Serverless Functions: Characterization and Optimization},
  year      = {2022},
  isbn      = {9781450386104},
  publisher = {Association for Computing Machinery},
  address   = {New York, NY, USA},
  doi       = {10.1145/3470496.3527390},
  booktitle = {Proceedings of the 49th Annual International Symposium on Computer Architecture},
  pages     = {757–770},
  numpages  = {14},
  keywords  = {characterization, instruction prefetching, microarchitecture, serverless},
  location  = {New York, New York},
  series    = {ISCA '22}
}

Getting started with vSwarm-μ

vSwarm-μ can be deployed on premises or in the cloud, with support for nested virtualization. We provide a quick-start guide that describes the initial setup, as well as how to set up benchmarking experiments.

Getting help and contributing

We would be happy to answer any questions in GitHub Issues and encourage the open-source community to submit new Issues, assist in addressing existing issues and limitations, and contribute their code with Pull Requests.

License and copyright

vSwarm-μ is free. We publish the code under the terms of the MIT License that allows distribution, modification, and commercial use. This software, however, comes without any warranty or liability.

The software is maintained by the vHive Ecosystem as well as the EASE lab as part of the University of Edinburgh.

Maintainers

Directory Structure

  • simulation contains everything related to run simulations.
  • setup contains all scripts and makefiles to setup vSwarm-μ
  • tools includes a client that can be instrumented for gem5
  • runner is for setting up self-hosted GitHub Actions runners.
  • docs contains the documentation on a number of relevant topics.

Known problems

Sometimes the simulator get stuck during while running with the detailed core model. We are working on it and try to make the setup more stable. In the meantime the best is to kill the process and restart the simulation for this particular function. Use

make -f simulation/Makefile kill_gem5

to kill all currently running simulations at once.