跳转到主要内容

Python基于jinja模板的简单HPC排队系统适配器,用于自动化提交脚本的创建。

项目描述

pysqa

Unittests Documentation Status Coverage Status Binder

高性能计算(HPC)不一定要难。在此背景下,Python简单排队系统适配器(pysqa)的目的是使Python到HPC集群的任务提交过程变得像启动本地另一个subprocess一样简单。这是基于这样一个假设:尽管现代HPC排队系统提供了广泛的配置选项,但大多数用户提交的大多数作业具有非常相似的参数。

因此,在pysqa中,用户只需定义一次提交脚本模板,然后就可以重新使用这些模板提交许多不同的任务和工作流程。这些模板使用jinja2模板语言定义,因此当前的提交脚本可以轻松转换为模板。此外,除了将新任务提交给HPC排队系统外,pysqa还允许用户使用排队系统的内置功能跟踪任务进度、删除任务或启用预留。最后,pysqa通过SSH启用对HPC集群的远程连接,包括对pyauthenticator的两因素认证的支持,这使得用户可以从本地工作站上的Python进程提交任务到远程HPC集群。

所有这些功能都可以通过Python接口以及命令行接口访问。

功能

pysqa的核心功能是与HPC排队系统的通信,包括(FluxLFSMOABSGESLURMTORQUE)。这包括

  • 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},
}

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面