This repository contains files and instructions to reproduce experiments from Scheduling of Workflows with Task Resource Requirements in Cluster Environments.
dags
- contains files with workflow instancesexample
- contains files to reproduce example from Section 3.3systems
- contains files with system configurationsexp-*.yaml
- experiment configuration filesexp-simple.yaml
- simple scenarioexpo-regular-*.yaml
- regular scenarioexpo-irregular-*.yaml
- irregular scenario
For simulation purposes we use DSLab DAG, a library for studying the DAG scheduling algorithms. Clone the main branch of DSLab repository and use the specified revision:
$ git clone https://github.com/osukhoroslov/dslab.git
$ cd dslab
$ git checkout dbcafe123ebec71c7641a804239a77e1671b3045
To run DSLab DAG you will also need to install Rust.
Experiments are run with dag-run-experiment
tool by passing it the path to experiment configuration file:
$ cd dslab/tools/dag-run-experiment
$ cargo run --release -- --config PATH_TO_EXPERIMENT_CONFIG
You can set the number of used threads with --treads
option. By default, it uses all available CPU cores.
After the experiment execution is completed, its results are saved to file named $experiment-results.json
in the same directory as experiment file. You can specify other path to save results with --output
option.
The results of each experiment are saved in JSON file (example). The file contains JSON array which elements correspond to individual simulation runs. Each run contains the following fields:
dag
- workflow instancesystem
- system configurationscheduler
- scheduling algorithmcompleted
- whether the workflow execution completed successfullymakespan
- achieved makespan (workflow execution time)exec_time
- simulation execution time (including algorithm execution time)run_stats
- various collected metrics (see documentation)