Submitit是一个轻量级工具,用于在Slurm集群中提交Python函数进行计算。它基本上封装了提交过程,并提供对结果、日志等的访问。 Slurm是一个开源、容错且高度可扩展的集群管理和作业调度系统,适用于大型和小型Linux集群。 Submitit允许在Slurm上执行和本地执行之间无缝切换。
在安装了submitit
的环境中:
import submitit def add(a, b): return a + b # executor是提交接口(日志存储在该文件夹中) executor = submitit.AutoExecutor(folder="log_test") # 设置超时时间(分钟)和运行作业的分区 executor.update_parameters(timeout_min=1, slurm_partition="dev") job = executor.submit(add, 5, 7) # 将计算add(5, 7) print(job.job_id) # 你的作业ID output = job.result() # 等待完成并返回输出 assert output == 12 # 5 + 7 = 12... 你的加法在集群中计算完成
Job
类还提供了读取日志文件的工具(job.stdout()
和job.stderr()
)。
如果你想运行的是命令,可以使用submitit.helpers.CommandFunction
将其转换为Python函数,然后提交它。
默认情况下,CommandFunction
中的stdout是静默的,但可以通过verbose=True
取消静默。
在这里查看更多示例!!!
Submitit是一个Python 3.8+工具箱,用于向Slurm提交作业。 它旨在从Python代码中运行Python函数。
快速安装,在已安装pip
的虚拟环境/conda环境中(检查which pip
):
pip install submitit
conda install -c conda-forge submitit
pip install git+https://github.com/facebookincubator/submitit@main#egg=submitit
你可以尝试运行MNIST示例来检查一切是否按预期工作(需要sklearn)。
查看以下页面以获取更详细的信息: