Python基于jinja模板的简单HPC排队系统适配器,用于自动化提交脚本的创建。
项目描述
pysqa
高性能计算(HPC)不一定要难。在此背景下,Python简单排队系统适配器(pysqa
)的目的是使Python到HPC集群的任务提交过程变得像启动本地另一个subprocess
一样简单。这是基于这样一个假设:尽管现代HPC排队系统提供了广泛的配置选项,但大多数用户提交的大多数作业具有非常相似的参数。
因此,在pysqa
中,用户只需定义一次提交脚本模板,然后就可以重新使用这些模板提交许多不同的任务和工作流程。这些模板使用jinja2模板语言定义,因此当前的提交脚本可以轻松转换为模板。此外,除了将新任务提交给HPC排队系统外,pysqa
还允许用户使用排队系统的内置功能跟踪任务进度、删除任务或启用预留。最后,pysqa
通过SSH启用对HPC集群的远程连接,包括对pyauthenticator的两因素认证的支持,这使得用户可以从本地工作站上的Python进程提交任务到远程HPC集群。
功能
pysqa
的核心功能是与HPC排队系统的通信,包括(Flux、LFS、MOAB、SGE、SLURM和TORQUE)。这包括
QueueAdapter().submit_job()
- 将新任务提交到排队系统。QueueAdapter().get_queue_status()
- 排队系统中当前等待或正在运行的计算列表。QueueAdapter().delete_job()
- 删除排队系统中当前等待或正在运行的计算。QueueAdapter().queue_list
- 用户创建的可用排队模板列表。QueueAdapter().config
- 模板到特定数量的核心、运行时间或其他计算资源。如果提交的任务违反这些限制,则会进行集成检查。
除了这些核心功能外,pysqa
还不断扩展以支持更多用户用例。这些新功能包括对远程排队系统的支持
- 通过安全外壳协议(SSH)进行远程连接以访问远程HPC集群。
- 在远程文件系统与本地文件系统之间预定义映射的基础上,在远程HPC集群之间传输文件。
- 支持单个连接以及根据网络可用性进行持续连接。
最后,目前正在进行的工作是支持在pysqa
内部组合多个本地和远程排队系统,这些排队系统呈现给用户作为一个单一的资源。
文档
许可
pysqa
遵循BSD许可证发布。它是pyiron项目的衍生品,因此如果您使用pysqa
进行计算并导致科学出版物,请引用
@article{pyiron-paper,
title = {pyiron: An integrated development environment for computational materials science},
journal = {Computational Materials Science},
volume = {163},
pages = {24 - 36},
year = {2019},
issn = {0927-0256},
doi = {https://doi.org/10.1016/j.commatsci.2018.07.043},
url = {http://www.sciencedirect.com/science/article/pii/S0927025618304786},
author = {Jan Janssen and Sudarsan Surendralal and Yury Lysogorskiy and Mira Todorova and Tilmann Hickel and Ralf Drautz and Jörg Neugebauer},
keywords = {Modelling workflow, Integrated development environment, Complex simulation protocols},
}