Code accompanying our ICML 2023 paper: "On Preemption and Learning in Stochastic Scheduling" by Nadav Merlis(*), Hugo Richard(*), Flore Sentenac(*), Corentin Odic, Mathieu Molina and Vianney Perchet
(*): Equal contribution
Documentation: https://hugorichard.github.io/ml4a-scheduling/api.html
Go in the ml4a-scheduling
directory.
After required dependency are installed (via pip install -r requirements.txt
) run:
pip install -e .
For the core algorithms:
- numpy>=1.16
- scipy>=1.3.2
- numba >= 0.56.4
To reproduce and plot the experiments (Figures 1, 2 and 3).
- matplotlib>=2.0.0
- joblib>=1.2.0
To run the tests:
- pytest>=5.0.1
To install all requirements, go in the ml4a-scheduling
directory and run
pip install -r requirements.txt
Go in the experiments
directory.
Run python all_algos-vary-nsamples.py
Go in the plotting
directory.
Run python plot_all_algos-vary-nsamples.py
See the figure in figures/all_algos_vary_nsamples.pdf
.
Go in the experiments
directory.
Run python n_50_vary_lambda_logscale.py
Go in the plotting
directory.
Run python plot_n_50_vary_lambda_logscale.py
See the figure in figures/n_50_vary_lambda_logscale.pdf
.
Benchmark LSEPT with 2 groups of a varying number of jobs with fixed expected job processing time (Figure 3)
Go in the experiments
directory.
Run python nsamples_lsept.py
Go in the plotting
directory.
Run python plot_vary-nsamples_lsept.py
See the figure in figures/vary-nsamples_lsept.pdf
.