The meaning of each field in the JSON is explained in [Batsim workload documentation](https://batsim.readthedocs.io/en/latest/input-workload.html).
The scheduling algorithm has to be developed separately, and communicates with [Batsim] through the messages defined in [Batsim protocol](https://batsim.readthedocs.io/en/latest/protocol.html).
In this tutorial, we will develop our schedulers in Python thanks to [pybatsim](https://gitlab.inria.fr/batsim/pybatsim).
The scheduler implementations will be located in the folder [sched/](./sched/).
### Exercise 1
Represent the workload used previously in this course (exercise 1 from the [exercise document](https://docs.google.com/document/d/15nfFvYgTwStwS0JGt5DMaQs6JDya8dKzFj69wMLTuTw/edit)) in Batsim JSON format.
You will put it in a new file named `expe/ex1.json`
### Exercise 2
TODO run a simulation with pre-defined scheduler `rejector`.
Look at the outputs...
### Exercise 3
TODO develop a monomachine FCFS scheduler and run it on the inputs from ex1.
Visualize the output thanks to evalys.
## Session 2: monomachine schedulers
- séance 2 : monomachine + d'autres algos : RMS, EDF (3 cas: infra sous-dimensionnée / normalement dim / sur-dim, remarquer que sur du surdimensioné, l'algo change rien)
=> example simple avec 1 grosse tâche + 1 petite tâche avec deadline, en EDF sans preamption ça passe pas.
## Session 3: multimachine schedulers
- séance 3 : multimachine hétérogènes en vitesse avec deadlines
## Session 4: energy constraint
- séacnz 4 : EDF avec contrainte énergétique (powercap ou energycap)
## Session 5: preamptive scheduling
- séance 5 : implémenter la préamption
## Open bugs
- mismatch python version if I want to use batsim and evalys. Either `python util/plot.py out/_jobs.csv ` or ` batsim -p expe/1machine.xml -w expe/ex1.json -e out/` make an error