Scheduling.jl -- Collaborative and Reproducible Scheduling Research with Julia

Sascha Hunold,Bartłomiej Przybylski
DOI: https://doi.org/10.48550/arXiv.2003.05217
2020-03-11
Abstract:We introduce the <a class="link-external link-http" href="http://Scheduling.jl" rel="external noopener nofollow">this http URL</a> Julia package, which is intended for collaboratively conducting scheduling research and for sharing implementations of algorithms. It provides the fundamental building blocks for implementing scheduling algorithms following the three-field notation of Graham et al., i.e., it has functionality to describe machine environments, job characteristics, and optimality criteria. Our goal is to foster algorithm and code sharing in the scheduling community. <a class="link-external link-http" href="http://Scheduling.jl" rel="external noopener nofollow">this http URL</a> can also be used to support teaching scheduling theory in classes. We will show the main functionalities of <a class="link-external link-http" href="http://Scheduling.jl" rel="external noopener nofollow">this http URL</a> and give an example on how to use it by comparing different algorithms for the problem of P||Cmax .
Data Structures and Algorithms
What problem does this paper attempt to address?
This paper aims to solve the problems of code sharing and result reproducibility in the field of scheduling research. Specifically, the author introduced the Julia language package named Scheduling.jl, which is designed to promote the cooperation in scheduling research and the sharing of algorithm implementation. It provides basic building blocks for implementing scheduling algorithms, following the three - field notation proposed by Graham et al. to describe scheduling problems, namely machine environment (α), job characteristics (β) and optimality criteria (γ). For example, P||C<sub>max</sub> represents the problem of scheduling jobs on identical parallel machines with the objective of minimizing the maximum completion time (C<sub>max</sub>) without further specifying job characteristics. The paper mentioned that although there are a large number of scheduling algorithms and many scheduling problems can be described by the three - field notation, due to the lack of precise explanations and the provision of source code, many algorithms are difficult to be compared fairly or scientifically. Therefore, the proposal of Scheduling.jl aims to overcome these problems by providing a general and open - source scheduling platform, supporting the implementation of a large number of scheduling algorithms and improving the support for scheduling theory teaching. In addition, this toolkit also provides calculation methods for multiple optimization criteria, such as maximum completion time (C<sub>max</sub>), average completion time (\(\sum_j C_j\)) etc., and can generate Gantt charts to visually display scheduling results. This is helpful not only for academic research but also for educational practice.