Python API and schedulers for Batsim
Project description
PyBatsim helps you developing your own scheduler in python!
The library consists of two layers:
The low level API batsim.batsim which handles the communication with the Batsim instance (example scheduler: schedulers/fillerSched.py).
The high level API batsim.sched which contains an object oriented abstraction layer to provide a simpler API for accessing data from Batsim and filtering for jobs and resources (example scheduler: schedulers/delayProfilesAsTasks.py).
Commands
The following commands are provided:
- pybatsim
To launch schedulers
- pybatsim-experiment
To launch experiments. See sample.expe.json for an example configuration file expected by this launcher. The launcher will start Batsim and the scheduler with the correct options.
- pybatsim-postprocess-jobs
To manipulate the out_jobs.csv file based on data only available in the scheduler but not in Batsim.
Batsim Version Compatibilities
As there are different release paces between Batsim and Pybatsim versions, here is a list of compatibilities between the two projects:
Batsim master branch with Pybatsim master branch (development branches, may be unstable)
Batsim v3_0_0 with Pybatsim v3_0_0 (latest major release, stable)
Moreover, all notable changes are listed in the changelog.
Examples
Start a scheduler
See the schedulers directory for the available built-in schedulers. A simple built-in scheduler instance can be executed by calling:
pybatsim fillerSched
This command, however, requires an already running Batsim instance.
The parameter to pybatsim can also be a file outside of the project directory like:
pybatsim path/to/scheduler.py
Schedulers of the higher level API (batsim.sched) can be executed in the same way:
pybatsim delayProfilesAsTasks
This example scheduler will make use of dynamic jobs and convert delay jobs into tasks. Note that dynamic job submissions have to be enabled in your running Batsim instance to be able to use this scheduler.
To see all available starting options see also:
pybatsim --help
Run an experiment
To run a complete experiment the experiment launcher can be used:
pybatsim-experiment --verbose sample.expe.json
Please note that Batsim has to be installed and the environment has to be set-up for this command to succeed.
Files
- sample.expe.json
See launch_expe.json
- batsim/batsim.py
This class helps you communicate with the batsim server
- batsim/sched/
High level scheduler API
- batsim/tools/
Tools to start the schedulers or for working with the generated data
- schedulers/
Contains all the schedulers. Schedulers name should follow this convention: fooBar.py contains the FooBar classname which has as an ancestor batsim.batsim.BatsimScheduler.
- schedulers/fillerSched.py
A kind of first fit without topology scheduler
- schedulers/easyBackfill.py
EASY backfilling where jobs are seen as rectangles
- schedulers/delayProfilesAsTasks.py
A scheduler using the high level scheduler API to split big delay jobs into small tasks.
Installation
You can install, upgrade, uninstall PyBatsim with these commands:
pip install [--user] pybatsim pip install [--user] --upgrade pybatsim pip uninstall pybatsim
Documentation
To generate the html documentation use the setup target:
./setup.py doc
Testing
To run the test experiments it is preferable to first enter in a nix shell specific for the pybatsim development with the following command:
nix-shell https://github.com/oar-team/kapack/archive/master.tar.gz -A pybatsim_dev
Then you can run tests with the setup target:
./setup.py test --batsim-bin=path/to/batsim/binary
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pybatsim-3.2.1.tar.gz
.
File metadata
- Download URL: pybatsim-3.2.1.tar.gz
- Upload date:
- Size: 92.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.9.9 Linux/5.15.0-2-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ba162727fffe5c71f8cf38c4ba0be93d3981c436ffb58319194d219b395bbbf |
|
MD5 | 785d9cc4c85fd412e54c5e62364f6328 |
|
BLAKE2b-256 | 9bb693defd1d49b2f79b42b06bf5112bbb7a092eec29d328babb80c99538e485 |
File details
Details for the file pybatsim-3.2.1-py3-none-any.whl
.
File metadata
- Download URL: pybatsim-3.2.1-py3-none-any.whl
- Upload date:
- Size: 109.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.9.9 Linux/5.15.0-2-amd64
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 941871541e0ee04fd1ecfc13a220a1beb9598454af0372766daa6efd1e13ecc4 |
|
MD5 | 83e6c8b93904e536f232fb7cd49a94ea |
|
BLAKE2b-256 | a1653a13ddb9be0ef423f050d0380be7cc7eaa92b82df9e6deafd3e4399694a0 |