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
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.
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.
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.
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}
}
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.
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.
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.
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 gem5runner
is for setting up self-hosted GitHub Actions runners.docs
contains the documentation on a number of relevant topics.
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.