batsim的python调度程序
pybatsim的Python项目详细描述
pybatsim帮助您在python中开发自己的调度程序!
库由两层组成:
- 低级apibatsim.batsim处理与 batsim实例(示例调度器:schedulers/fillersched.py)。
- 高级apibatsim.sched包含一个面向对象的抽象层 提供一个更简单的api,用于从batsim访问数据并过滤 作业和资源(示例调度程序:schedulers/delayprofilesastastasks.py)。
命令
提供以下命令:
- pybatsim
- 启动调度程序
- pybatsim实验
- 启动实验
- pybatsim后处理作业
- 根据仅在 调度程序,但不在batsim中。
batsim版本兼容性
由于batsim和pybatsim版本的发布速度不同,下面列出了两个项目之间的兼容性:
- 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)
- Batsim v2_0_0 with Pybatsim batsim_2_0_compatible
此外,所有显著的变化都列在changelog中。
示例
启动调度程序
有关可用的内置调度程序,请参阅schedulers目录。 通过调用:
pybatsim fillerSched
但是,此命令需要一个已经运行的batsim实例。
pybatsim的参数也可以是项目目录之外的文件 例如:
pybatsim path/to/scheduler.py
高级API的调度程序(batsim.sched)可以用相同的方式执行:
pybatsim delayProfilesAsTasks
此示例调度程序将使用动态作业并将延迟作业转换为任务。 请注意,必须在运行的batsim实例中启用动态作业提交才能使用此计划程序。
要查看所有可用的启动选项,请参见:
pybatsim --help
进行实验
要运行完整的实验,可以使用实验启动程序:
pybatsim-experiment --verbose sample.expe.json
请注意,必须安装batsim,并且必须设置环境才能成功执行此命令。
文件
- launcher.py
- 这是启动东西的主要入口点
- launch_expe.py
- 提供了启动完整模拟的简单方法。 只需向这个脚本提供一个类似于sample.exp.json的文件,它就会启动batsim和具有正确选项的调度程序。
- sample.expe.json
- 请参见启动expe.json
- batsim/batsim.py
- 本课程帮助您与batsim服务器进行通信
- batsim/sched/
- 高级调度程序API
- batsim/tools/
- 启动调度程序或处理生成的数据的工具
- schedulers/
- 包含所有调度程序。调度程序名称应遵循以下约定:
foobar.py包含作为祖先的batsim.batsim.batsim调度程序的foobar类名
- schedulers/fillersched.py
- 一种没有拓扑调度器的First Fit
- schedulers/easybackfill.py
- 在作业被视为矩形的地方轻松回填
- schedulers/delayProfilesAstasks.py
- 使用高级调度程序api将大延迟作业拆分为 小任务。
安装
您可以使用以下命令安装、升级和卸载pybatsim:
pip install [--user] pybatsim pip install [--user] --upgrade pybatsim pip uninstall pybatsim
文档
要生成HTML文档,请使用设置目标:
./setup.py doc
测试
运行测试实验最好首先使用以下命令输入pybatsim开发专用的nix shell:
nix-shell https://github.com/oar-team/kapack/archive/master.tar.gz -A pybatsim_dev
然后可以使用设置目标运行测试:
./setup.py test --batsim-bin=path/to/batsim/binary