mpi并行映射与集群调度
pyina的Python项目详细描述
关于皮娜
pyina包提供了几个基本工具,使基于mpi的 并行计算对最终用户更容易访问目标 允许用户将自己的代码扩展到基于mpi的 最少重构的并行计算
pyina的中心元素是并行映射算法。 pyina目前提供了两种执行并行映射的策略, 其中策略是分配 跨可用节点的作业这些策略可以在原始的“中使用” (即直接)向用户自己的mpi感知代码提供映射算法。 此外,在pyina.mpipyina中提供管道和映射实现 (称为“easy map”)向用户隐藏mpi内部。与 “简单映射”,用户可以使用 标准的python,无需编写一行mpi代码。
用户通常有几种方法可以在 并行-直接使用mpirun或mpiexec,或通过使用 调度程序,如torque或slurm。pyina封装了其中的几个 “启动程序”,并为 启动MPI作业。
pyina是用于异构计算的python框架pathos的一部分。 pyina正在进行活动开发,因此任何用户反馈、错误报告、评论, 或建议是高度赞赏的保留已知问题的列表 在http://trac.mystic.cacr.caltech.edu/project/pathos/query.html与公众 票务清单在https://github.com/uqfoundation/pyina/issues。
主要特点
pyina提供了一个高度可配置的并行映射接口 要运行MPI作业,请使用:
- a map interface that extends the python ^{tt14}$ standard
- the ability to submit batch jobs to a selection of schedulers
- the ability to customize node and process launch configurations
- the ability to launch parallel MPI jobs with standard python
- ease in selecting different strategies for processing a work list
当前版本
本文档适用于pyina-0.2.2版本。
最新发布的pyina版本位于:
https://pypi.org/project/pyina
pyina在3子句bsd许可下分发。
>>> import pyina >>> print (pyina.license())
安装
pyina已打包以从源安装,因此必须 下载tarball,解压缩并运行安装程序:
[download] $ tar -xvzf pyina-0.2.2.tar.gz $ cd pyina-0.2.2 $ python setup py build $ python setup py install
之后将警告您任何缺少的依赖项和/或设置 运行上面的“构建”步骤。pyina依赖于dill,pox,pathos,以及 mpi4py,所以应该先安装它们。MPI的版本也必须是 安装。pyina中提交给计划程序的启动程序将抛出错误 如果基础计划程序不可用,但是计划程序不可用 需要pyina才能执行。
或者,pyina可以与pip或easy_install一起安装:
$ pip install pyina
要求
pyina需要:
- ^{tt30}$, version >= 2.6 or version >= 3.3
- ^{tt31}$, version >= 1.0
- ^{tt23}$, version >= 1.3
- ^{tt20}$, version >= 0.3.0
- ^{tt21}$, version >= 0.2.6
- ^{tt11}$, version >= 0.2.4
可选要求:
- ^{tt36}$, version >= 0.6
- ^{tt37}$, version >= 0.3.3
更多信息
也许开始的最好方法是查看 http://pyina.rtfd.io另请参见pyina.examples和^{tt39}。$ 对于演示配置和启动 使用“easy map”接口的基于mpi的并行作业另见 pyina.examples_other用于一组测试更多原始脚本 pyina的内部。您可以使用python -m pyina.tests运行测试。 包含一个用于查询、设置和拆除MPI的脚本 有关详细信息,请参见python -m pyina。源代码 通常都有很好的记录,所以进一步的问题可以通过 检查代码本身。请在Github上提交机票, 或者在stackoverflow上提问(@mike mckerns)。 如果您想分享如何在工作中使用pyina,请发送 一个电子邮件(到{STR 1 } $MMCKNS在UqForm DOORG <<强>)。
重要的类和函数如下:
^{BQ 7}$可在此处找到映射策略:
- ^{tt48}$ [the scatter-gather strategy]
- ^{tt49}$ [the worker pool strategy]
pyina还提供了一个方便的脚本,帮助导航 MPI环境。此脚本可以从任何位置运行,使用:
$ mpi_world
if还可以方便地为“raw”的启动设置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- ; http://trac.mystic.cacr.caltech.edu/project/pathos
请参阅http://trac.mystic.cacr.caltech.edu/project/pathos或 http://arxiv.org/pdf/1202.1056了解更多信息。