Newer
Older
/******************************************************************************
* Copyright 2021-2023, Barcelona Supercomputing Center (BSC), Spain
*
* This software was partially supported by the EuroHPC-funded project ADMIRE
* (Project ID: 956748, https://www.admire-eurohpc.eu).
*
* Part of this repository (algorithm.py) is part of scord, other parts are
* from ElastiSim
* Copyright (c) 2022, Technical University of Darmstadt, Germany
*
* This software may be modified and distributed under the terms of the 3-Clause
* BSD License. See the LICENSE file in the base directory for details.
*
*****************************************************************************/
# ElastiSim Cargo Example Project
An example ElastiSim project utilizing a scheduling algorithm for malleable jobs with only I/O phases running on a crossbar topology with 128 compute nodes. The jobs have different qos requirements and transfer size.
The example creates a file called "data/output/breaks.txt" with the number of SLA breaks for a given run. The file should be deleted before running the project.
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
## Installation
To build the container required to run ElastiSim, install Docker and execute the following command:
```sh
docker build -t elastisim .
```
## Simulation
To run the simulation, execute the following commands in two different sessions:
### \*nix:
```sh
docker run -v $PWD/data:/data -v $PWD/algorithm:/algorithm -u `id -u $USER` --name elastisim -it --rm elastisim /data/input/configuration.json --log=root.thresh:warning
docker exec -u `id -u $USER` -it elastisim python3 /algorithm/algorithm.py
```
### Mac OS:
```sh
docker run -v $PWD/data:/data -v $PWD/algorithm:/algorithm --name elastisim -it --rm elastisim /data/input/configuration.json --log=root.thresh:warning
docker exec -it elastisim python3 /algorithm/algorithm.py
```
### Windows (PowerShell):
```sh
docker run -v ${PWD}\data:/data -v ${PWD}\algorithm:/algorithm --name elastisim -it --rm elastisim /data/input/configuration.json --log=root.thresh:warning
docker exec -it elastisim python3 /algorithm/algorithm.py
```
The first command runs the ElastiSim simulator process and accepts two inputs:
- the configuration file (JSON)
- the logging level
For a more detailed output change `--log=root.thresh:warning` to `--log=root.thresh:info` (caution: verbose).
The second command runs the scheduling algorithm.