使用 python 在分布式内存集群上进行"Global array"并行编程



我正在寻找一个python库,它将numpy的功能扩展到分布式内存集群上的操作:即"一个并行编程模型,其中程序员将数组视为单个全局数组,而不是位于不同处理器上的多个独立数组。

对于Matlab,

麻省理工学院的林肯实验室创建了pMatlab,它允许在集群上进行矩阵代数,而无需过多担心并行编程方面的细节。(以上引文的由来。

对于基于磁盘的存储,pyTables 适用于 python。虽然它没有优化计算在集群中的分布方式,而是优化计算相对于磁盘上的大数据的"分布"方式。- 这相当相似,但仍然缺少一个关键方面。

目标不是从集群中榨取最后一点性能,而是进行科学计算(半交互式),这对于单台机器来说太大了。

python存在类似的东西吗?我的愿望清单是:

  • 积极维护
  • 直接替代 NUMPY
  • 或者与 numexpr 类似的用法
  • 并行编程部分的高度抽象:即用户无需显式使用 MPI
  • 支持分布式内存集群中的数据局部性
  • 支持群集中的多核计算机

这可能有点像相信牙仙,但人们永远不知道......

到目前为止,我发现:

  1. 太平洋西北国家实验室(Pacific Northwest National Laboratory)为Global Array提供了一个python接口。请参阅主题"使用 NumPy 和全局数组工具包在 Python 中进行高性能并行计算"下的链接。(尤其是"GA_SciPy2011_Tutorial.pdf"。然而,这似乎又消失了。

  2. DistNumPy:本文对此进行了更详细的描述。然而,这些项目似乎已被放弃。

如果您知道任何软件包或使用过上述两个中的任何一个,请描述您使用它们的经历。

你应该看看Blaze,尽管它目前的发展可能还不够长,无法满足你的需求。从链接页面:

Blaze 是一组富有表现力的紧凑基础抽象,用于 对大量半结构化数据进行组合计算, 任意格式并分布在任意网络上。

相关内容

  • 没有找到相关文章

最新更新