MPI并行映射和集群调度
项目描述
关于Pyina
pyina包提供了一些基本工具,使基于MPI的并行计算更容易为最终用户提供。pyina的目标是使用户能够以最小的重构将他们的代码扩展到基于MPI的并行计算。
pyina的核心元素是并行映射算法。pyina目前提供了两种执行并行映射的策略,其中策略是分配工作列表到可用节点上的算法。这些策略可以直接使用(即直接)为用户的mpi感知代码提供映射算法。此外,在pyina.mpi中,pyina提供了管道和映射实现(称为“简单映射”),它隐藏了MPI内部细节。使用“简单映射”,用户可以在并行批处理模式下启动他们的代码 - 使用标准的Python,而不需要编写任何MPI代码。
用户通常有几种方式并行启动他们的代码 – 直接使用 mpirun 或 mpiexec,或者通过使用调度器,如 torque 或 slurm。 pyina 封装了这些 “启动器” 中的几个,并为启动 MPI 作业的不同方法提供了通用接口。
pyina 是 pathos 的一部分,这是一个用于异构计算的 Python 框架。 pyina 正在积极开发中,因此任何用户反馈、错误报告、评论或建议都十分欢迎。问题列表位于 https://github.com/uqfoundation/pyina/issues,旧列表维护在 https://uqfoundation.github.io/project/pathos/query。
主要特性
pyina 为运行 MPI 作业提供了一个高度可配置的并行映射接口,具有以下特点:
扩展 Python map 标准的映射接口
能够将批量作业提交到多个调度器
能够自定义节点和进程启动配置
能够使用标准 Python 启动并行 MPI 作业
轻松选择不同的策略来处理工作列表
当前版本
最新发布的 pyina 版本可在以下位置获取:
pyina 在 3 条条款的 BSD 许可证下分发。
开发版本
您可以在以下位置获取具有所有新功能的最新开发版本:
如果您有新的贡献,请提交一个拉取请求。
安装
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/examples 和 pyina.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/pathos或http://arxiv.org/pdf/1202.1056获取更多信息。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
pyina-0.3.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 18c58c0fb008558d35a0c5769fc68982a9e9541effa1cc4c38212fc0bab9247c |
|
MD5 | 418ade635c4891e78d710f3f749aa7be |
|
BLAKE2b-256 | e503d7ce8e3cbf96996e268e2d509a6cb56ad4922870d62e6bf487007eb65e7a |
pyina-0.3.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 0fcb7a044edc749b2fd6393dc538cb394eddb96436cfe2511a2622834d4dcf50 |
|
MD5 | fce734f5503cf4b2ea0fa0f8ce98507d |
|
BLAKE2b-256 | 8be7b29f71ab6676f1188c22496b456e50196b2c1f928792c565fb854b08b866 |