This repository contains a [Batsim](https://batsim.readthedocs.io/en/latest/)-compatible implementation of the EASY+powercap scheduling algorithm.
## Algorithm description
This algorithm is strongly based on EASY backfilling.
The main addition over EASY is that a powercap must be followed during a time window.
In other words, a constraint on the maximum power consumption value is set for the whole platform.
This algorithm uses additional data on the power consumption of jobs to take its decisions.
Please read [the algorithm implementation](./easypower.cpp) for all details.
## Usage
This repository is a [Nix flake](https://nixos.wiki/wiki/Flakes) and can be used via this interface.
Alternatively, you can compile the algorithm dynamic library via `meson` + `ninja` with a command such as `meson setup build && ninja -C build` (dependencies are defined in [flake.nix](./flake.nix) and [flake.lock](./flake.lock)).
The compiled library can be used as a Batsim EDC (external decision component) library with a command such as: