This tool can deploy and measure the behavior of distributed systems. However, it is not a general framework for running things on remote machines but tailored to the specific task of running experiments/benchmarks.
See this blogpost for a detailed description of wke.
You need a recent version of Python (the scripts were only tested with python3.10 and above) and pip
.
Then, simply run make install
to install the wke library and command.
A cluster is a set of machines (physical or virtual) that will be used to run experiments. Clusters groups machines into classes. Each class should represent a role in your distributed system. For example, a simple benchmark might have two classes: clients and servers.
A configuration is a set of scripts for a specific project (or variant of a project). You can set up multiple configurations for a single cluster.
Each configuration resides in a dedicated folder that has the following layout:
A TOML file that describes all targets and settings specific to that configuration. Targets are scripts that can be run on machines of the cluster.
Targets are scripts that execute as part of your experiment or to set up the experiment. For example, it could be script that runs your server process, or one that issues client requests.
You will execute them using the wke run
command.
Preludes are not targets, but can help reducing boilerplate code in a target. For example, they can be used to export environment variables before running experiments.
In most cases as single engine file should suffice to run your experiments.