Skip to main content

Python API and schedulers for Batsim

Project description

PyBatsim helps you developing your own scheduler in python!

The library consists of two layers:

  1. The low level API batsim.batsim which handles the communication with the Batsim instance (example scheduler: schedulers/fillerSched.py).

  2. 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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybatsim-3.2.1.tar.gz (92.8 kB view details)

Uploaded Source

Built Distribution

pybatsim-3.2.1-py3-none-any.whl (109.2 kB view details)

Uploaded Python 3

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

Hashes for pybatsim-3.2.1.tar.gz
Algorithm Hash digest
SHA256 4ba162727fffe5c71f8cf38c4ba0be93d3981c436ffb58319194d219b395bbbf
MD5 785d9cc4c85fd412e54c5e62364f6328
BLAKE2b-256 9bb693defd1d49b2f79b42b06bf5112bbb7a092eec29d328babb80c99538e485

See more details on using hashes here.

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

Hashes for pybatsim-3.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 941871541e0ee04fd1ecfc13a220a1beb9598454af0372766daa6efd1e13ecc4
MD5 83e6c8b93904e536f232fb7cd49a94ea
BLAKE2b-256 a1653a13ddb9be0ef423f050d0380be7cc7eaa92b82df9e6deafd3e4399694a0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page