Skip to content
Snippets Groups Projects
user avatar
Maël Madon authored
08030529
History

Batmen

Forked from https://framagit.org/batsim/batsched

What differs from the original version of batsched?

New paradigm: we implemented a "cloud broker" allowing to model the interaction with the users. This cloud broker is able to dynamically register new jobs to sumbit on top of the static workload during the scheduling. This way we can represent different categories of users and model their behavior in response to feedback. For now this paradigm is supported by all the schedulers inheriting from the class DynScheduler i.e. all the custom schedulers located in folder src/algo_perso. It uses the modules in the folder in folder src/broker:

  • dynscheduler: superclass managing the interaction with the broker from which the scheduling algorithms inherit
  • cloud_broker: implement the broker itself, submitting the jobs on behalf of the users
  • user: an individual user, submitting her jobs to the broker

New algorithms implemented (in folder src/algo_perso):

  • multicore_filler: one job at a time on only one multicore host. Developped for testing the multicore management in batsim/simgrid
  • bin_packing: the scheduler packs the jobs on the least number of multicore hosts. Each job runs on only one host but can take several cores
  • bin_packing_energy: same as bin_packing but switches of the hosts as soon as they are idle and power them on again when needed

Install

With Nix package manager. At the root of the project:

nix-shell -A batmen # enter a Nix environment with all dependencies managed
meson build # generate a build directory
ninja -C build # compile the project into the build directory

Run tests

The tests are located in the test directory. To run the tests:

nix-shell -A test
pytest

Add pytest -k EXPRESSION only runs tests matching the given substring expression. Open test-out/test_report.html in a browser to see the test results.