跳转到主要内容

MPI并行映射和集群调度

项目描述

关于Pyina

pyina包提供了一些基本工具,使基于MPI的并行计算更容易为最终用户提供。pyina的目标是使用户能够以最小的重构将他们的代码扩展到基于MPI的并行计算。

pyina的核心元素是并行映射算法。pyina目前提供了两种执行并行映射的策略,其中策略是分配工作列表到可用节点上的算法。这些策略可以直接使用(即直接)为用户的mpi感知代码提供映射算法。此外,在pyina.mpi中,pyina提供了管道和映射实现(称为“简单映射”),它隐藏了MPI内部细节。使用“简单映射”,用户可以在并行批处理模式下启动他们的代码 - 使用标准的Python,而不需要编写任何MPI代码。

用户通常有几种方式并行启动他们的代码 – 直接使用 mpirunmpiexec,或者通过使用调度器,如 torqueslurmpyina 封装了这些 “启动器” 中的几个,并为启动 MPI 作业的不同方法提供了通用接口。

pyinapathos 的一部分,这是一个用于异构计算的 Python 框架。 pyina 正在积极开发中,因此任何用户反馈、错误报告、评论或建议都十分欢迎。问题列表位于 https://github.com/uqfoundation/pyina/issues,旧列表维护在 https://uqfoundation.github.io/project/pathos/query

主要特性

pyina 为运行 MPI 作业提供了一个高度可配置的并行映射接口,具有以下特点:

  • 扩展 Python map 标准的映射接口

  • 能够将批量作业提交到多个调度器

  • 能够自定义节点和进程启动配置

  • 能够使用标准 Python 启动并行 MPI 作业

  • 轻松选择不同的策略来处理工作列表

当前版本

最新发布的 pyina 版本可在以下位置获取:

https://pypi.ac.cn/project/pyina

pyina 在 3 条条款的 BSD 许可证下分发。

开发版本

您可以在以下位置获取具有所有新功能的最新开发版本:

https://github.com/uqfoundation

如果您有新的贡献,请提交一个拉取请求。

安装

pyina 可以使用 pip 安装

$ pip install pyina

还必须安装 MPI 版本。如果底层调度器不可用,则 pyina 中提交给调度器的启动器将引发错误,但是 pyina 执行不需要调度器。

需求

pyina 需要:

  • python(或 pypy),>=3.8

  • setuptools>=42

  • cython>=0.29.30

  • numpy>=1.0

  • mpi4py>=1.3

  • dill>=0.3.9

  • pox>=0.3.5

  • pathos>=0.3.3

更多信息

开始的最佳方式可能是查看 http://pyina.rtfd.io 上的文档。还可以查看 https://github.com/uqfoundation/pyina/tree/master/examplespyina.tests,其中包含一组脚本,演示了使用 “easy map” 接口配置和启动基于 MPI 的并行作业。您可以使用 python -m pyina.tests 运行测试。包含用于查询、设置和拆卸 MPI 环境的脚本,有关更多信息,请参阅 python -m pyina。源代码通常有很好的文档,因此可以通过检查代码本身来解决更多问题。请随时在 github 上提交工单,或在 stackoverflow 上提问(@Mike McKerns)。如果您想分享您如何在工作中使用 pyina,请发送电子邮件(至 mmckerns at uqfoundation dot org)。

重要类和函数在这里

  • pyina.mpi [映射API定义]

  • pyina.schedulers [所有可用的调度器]

  • pyina.launchers [所有可用的启动器]

映射策略在此处找到

  • pyina.mpi_scatter [散射-聚集策略]

  • pyina.mpi_pool [工作池策略]

pyina还提供了一个方便的脚本,帮助导航MPI环境。此脚本可以从任何位置运行

$ mpi_world

还可以设置一个shell别名来启动“原始”mpi-python作业。例如(对于bash)

$ alias mpython1='mpiexec -np 1 `which python`'
$ alias mpython2='mpiexec -np 2 `which python`'
$ ...

引用

如果您使用pyina进行研究并导致发表,我们要求您在出版物中引用以下内容以承认pyina的使用

M.M. McKerns, L. Strand, T. Sullivan, A. Fang, M.A.G. Aivazis,
"Building a framework for predictive science", Proceedings of
the 10th Python in Science Conference, 2011;
http://arxiv.org/pdf/1202.1056

Michael McKerns and Michael Aivazis,
"pathos: a framework for heterogeneous computing", 2010- ;
https://uqfoundation.github.io/project/pathos

请参阅https://uqfoundation.github.io/project/pathoshttp://arxiv.org/pdf/1202.1056获取更多信息。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

pyina-0.3.0.tar.gz (132.9 kB 查看散列)

上传时间

构建分布

pyina-0.3.0-py3-none-any.whl (45.9 kB 查看散列)

上传时间 Python 3

由以下机构支持