【问题标题】:"Global array" parallel programming on distributed memory clusters with python用python对分布式内存集群进行“全局数组”并行编程
【发布时间】:2013-01-28 12:00:25
【问题描述】:

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

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

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

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

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

  • 积极维护
  • 替换 numpy
  • numexpr 的用法类似
  • 并行编程部分的高度抽象:即用户无需显式使用 MPI
  • 支持分布式内存集群中的数据局部性
  • 支持集群中的多核机器

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

到目前为止我已经找到了:

  1. 太平洋西北国家实验室(存在/曾经存在)为 Global Array 提供了一个 python 接口。请参阅主题 "High Performance Parallel Computing in Python using NumPy and the Global Arrays Toolkit" 下的链接。 (特别是“GA_SciPy2011_Tutorial.pdf”。)但是这似乎又消失了。

  2. DistNumPy:在this paper 中有更详细的描述。然而,这些项目似乎已被放弃。

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

【问题讨论】:

    标签: python cluster-computing distributed-computing pytables numexpr


    【解决方案1】:

    您应该看看Blaze,尽管目前它可能还不足以满足您的需求。从链接页面:

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

    【讨论】:

    • 你知道“网络”部分是否已经实现了吗?所有示例似乎都涵盖了基于磁盘的操作。
    • 抱歉,我没有关于网络实施状态的任何详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多