mpi并行映射与集群调度

pyina的Python项目详细描述


关于皮娜

pyina包提供了几个基本工具,使基于mpi的 并行计算对最终用户更容易访问目标 允许用户将自己的代码扩展到基于mpi的 最少重构的并行计算

pyina的中心元素是并行映射算法。 pyina目前提供了两种执行并行映射的策略, 其中策略是分配 跨可用节点的作业这些策略可以在原始的“中使用” (即直接)向用户自己的mpi感知代码提供映射算法。 此外,在pyina.mpipyina中提供管道和映射实现 (称为“easy map”)向用户隐藏mpi内部。与 “简单映射”,用户可以使用 标准的python,无需编写一行mpi代码。

用户通常有几种方法可以在 并行-直接使用mpirunmpiexec,或通过使用 调度程序,如torqueslurmpyina封装了其中的几个 “启动程序”,并为 启动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())

开发版本

您可以在以下位置获得最新的开发版本和所有闪亮的新功能:

https://github.com/uqfoundation

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

安装

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依赖于dillpoxpathos,以及 mpi4py,所以应该先安装它们。MPI的版本也必须是 安装。pyina中提交给计划程序的启动程序将抛出错误 如果基础计划程序不可用,但是计划程序不可用 需要pyina才能执行。

或者,pyina可以与pipeasy_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/pathoshttp://arxiv.org/pdf/1202.1056了解更多信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?