在Slurm批处理系统上运行MLFlow项目的后端实现
项目描述
MLFlow-Slurm
在Slurm批处理系统上执行MLFlow项目的后端
用法
将此包安装到您提交作业的环境。如果您从作业内部提交作业,请确保在您的conda或pip环境中列出此包。
只需将其作为作业运行中的 --backend
列出。您应包括一个json配置文件以控制批处理脚本的构建方式
mlflow run --backend slurm \
--backend-config slurm_config.json \
examples/sklearn_elasticnet_wine
它将生成一个以作业ID命名的批处理脚本,并通过Slurm的 sbatch
命令提交。它将运行标记为Slurm作业ID
配置作业
您可以在json文件中设置值以控制作业提交。此文件中支持的性质有
配置文件设置 | 使用 |
---|---|
partition | 作业应在哪个Slurm分区中运行? |
account | 要运行的帐户名称 |
environment | 要添加到作业中的额外环境变量的列表 |
exports | 要导出到作业中的环境变量列表 |
gpus_per_node | 在GPU分区中,每个节点分配多少GPU |
gres | SLURM通用资源请求 |
mem | 分配给CPU作业的内存量 |
modules | 在启动作业之前要加载的模块列表 |
nodes | 从SLURM请求的节点数 |
ntasks | 每个节点上要运行的作业数 |
exclusive | 设置为true 以确保作业不与其他作业共享节点 |
时间 | 作业可能运行的最大CPU时间 |
批处理脚本文件 | 要生成的批处理文件名称。留空则由服务根据运行ID生成脚本文件名 |
顺序工作作业
有时作业无法在最大允许的墙时间内完成。如果您能够写出检查点文件,则可以使用顺序工作作业从上次停止的地方继续作业。这对于训练深度学习模型或其他长时间运行的作业非常有用。
要使用此功能,您只需向mlflow run
命令提供一个参数
mlflow run --backend slurm -c ../../slurm_config.json -P sequential_workers=3 .
这将像平常一样提交作业,但还会提交3个额外的作业,每个作业都依赖于前一个作业。一旦第一个作业终止,下一个作业将开始。这将一直持续到所有作业都完成。
开发
slurm docker部署非常适合测试和开发。您可以使用包含的docker-compose文件启动slurm环境
关闭
mlflow_slurm-1.0.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ba589ce3aac90b9b4bac3fdce78c7dff0532e2675b7f8db063a4b17b79c9370f |
|
MD5 | 0eb91432d05b976faa8b34558e150e47 |
|
BLAKE2b-256 | b663c8996e73be7ec81f8fd3edfb30851bfe58356fb023341fab21aeac8676f4 |
关闭
mlflow_slurm-1.0.5-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f01ea9fe2022500df6929f324f9591bb5138697976381a867dab858b23140fad |
|
MD5 | 9a73084df719d44c48212f59d1fafda1 |
|
BLAKE2b-256 | 87fb42c96b9db85c9d9136f560c02071e76a27e5d4fa65f9851600dce6977377 |