【问题标题】:Moving Parallel Python code to the cloud将 Parallel Python 代码迁移到云端
【发布时间】:2011-02-11 01:56:03
【问题描述】:

听说我目前正在竞选调查员的科学计算项目(碰巧是随机牵引成像方法described here)将在我们的 50 节点集群上花费 4 个月的时间,调查员要求我检查其他选项。该项目目前正在使用并行 python 将 4d 数组的块分配给不同的集群节点,并将处理后的块重新组合在一起。

我目前正在处理的作业可能过于粗粒度,(5 秒到 10 分钟,我不得不增加并行 python 中的超时默认值),我估计我可以将这个过程加快 2-4 倍通过重写它以更好地利用资源(拆分和重新组合数据花费的时间太长,也应该并行化)。大部分工作由 numpy 数组完成。

假设 2-4 次是不够的,我决定从我们的本地硬件中获取代码。对于像这样的高吞吐量计算,我的商业选择是什么?我需要如何修改代码?

【问题讨论】:

  • 或者,隐含地,谁已经把这些信息写下来了,我怎样才能得到它。

标签: python amazon-ec2 parallel-processing mapreduce parallel-python


【解决方案1】:

您可能对PiCloud 感兴趣。我从未使用过它,但他们的报价显然包括 Enthought Python Distribution,它涵盖了标准科学库。

很难说这是否适用于您的具体情况,但 Parallel Python 接口非常通用。所以希望不需要太多的改变。也许你甚至可以编写一个自定义的调度器类(实现与 PP 相同的接口)。其实这可能对很多人都有用,所以也许你可以在 PP 论坛中获得一些支持。

【讨论】:

    【解决方案2】:

    想到的最明显的商业选择是 Amazon EC2 和 Rackspace Cloud。我都玩过,发现 Rackspace API 更容易使用。

    好消息是,您只需很少的投资(通常为 0.10 美元/小时左右)就可以制作原型并使用他们的计算实例(您选择的操作系统的短期或长期虚拟机)。您可以按需创建它们,然后在完成后将它们释放回云端,并且只需为您使用的内容付费。例如,我看到了一个使用 6 个 Rackspace 实例部署 Django 的演示,这可能需要一个小时,而演讲者的成本不到 1 美元。

    对于您的用例(不清楚您所说的“高吞吐量”究竟是什么意思),您必须查看您的预算和计算需求,以及您的总网络吞吐量(您也为此付费)。一些小规模的测试和一个简单的电子表格计算应该会告诉你它是否真的实用。

    Rackspace Cloud 和 Amazon EC2 都有 Python API。无论您使用哪种方式,我都推荐使用基于 python 的 Fabric 来自动部署和配置您的实例。

    【讨论】:

    • 我所说的“高吞吐量”是指我曾经在这里看到的定义 - cs.wisc.edu/condor/htc.html 我不需要低延迟,我也不在乎什么时候完成,只要是这个月而不是下个月。
    • 好的,知道了——不确定您是否需要大量带宽,在这种情况下会影响您的预算/计划。另一个潜在的问题是您可以保留的最大实例数,它会不时变化……您需要查看提供商的常见问题解答。
    • Amazon 的现场实例看起来很整洁,可能与我正在寻找的差不多,但我必须编写“机会主义代码”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-25
    • 2018-01-15
    • 1970-01-01
    • 2019-03-30
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多