Submitit 使用指南

Submitit 使用指南

submititPython 3.8+ toolbox for submitting jobs to Slurm项目地址:https://gitcode.com/gh_mirrors/su/submitit

1. 项目介绍

Submitit 是一个轻量级工具,用于在 Slurm 集群中提交 Python 函数进行计算。它将提交过程包装起来,提供了访问结果、日志和其他 Slurm 功能的方式。该项目支持在 Slurm 和本地环境之间无缝切换执行。Submitit 设计目标是让 Python 代码可以直接调用运行于集群上的任务,同时提供对任务状态的精细控制。

2. 项目快速启动

安装

确保你有一个有效的 pip 环境,然后可以使用以下命令安装 submitit:

pip install submitit

或者如果你想安装最新开发分支,可使用:

pip install git+https://github.com/facebookincubator/submitit@main#egg=submitit

示例

以下是一个简单的使用示例,演示如何通过 submitit 在 Slurm 集群上执行加法操作:

import submitit

def add(a, b):
    return a + b

executor = submitit.AutoExecutor(folder="log_test")
executor.update_parameters(timeout_min=1, slurm_partition="dev")

job = executor.submit(add, 5, 7)
print(f"Job ID: {job.job_id}")

output = job.result()
assert output == 12  # Check the result

这段代码首先定义了一个加法函数,然后创建一个 Executor 对象来管理 Slurm 作业。设置超时时间和分区后,我们提交了一个任务,并打印了作业的 ID。最后,我们等待任务完成并获取结果。

3. 应用案例和最佳实践

  • 脚本功能转换:如果你需要运行一个命令,你可以将其转化为 Python 函数,利用 submitit.helpers.CommandFunction
  • 错误处理:当任务失败时,submitit 会抛出异常并附带堆栈跟踪,帮助定位问题。
  • 任务重试:对于 Slurm 中被抢占的任务,submitit 可以自动重置。
  • 检查点机制:针对预占或超时的情况,可以保存状态并在恢复时从当前位置继续执行(高级特性)。
  • 多节点/任务任务:易于访问任务本地/全局排名,适用于多节点和任务的工作负载。
  • 插件系统:允许适应不同集群的默认配置。

4. 典型生态项目

虽然 submitit 主要由 Facebook 的研究人员用于其内部集群,但它可以广泛应用于任何使用 Slurm 工作流程的科研机构或企业。由于它的低级别接口,它与 Dask Distributed 等框架相比提供了更直接的作业控制。此外,Submitit 可作为其他依赖 Slurm 的复杂工作流系统的组件。


若需进一步了解 Submitit,请查阅其官方文档。如遇到问题或需要更多示例,建议查看 GitHub 仓库 或参与社区讨论。

submititPython 3.8+ toolbox for submitting jobs to Slurm项目地址:https://gitcode.com/gh_mirrors/su/submitit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧丁通

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值