将并行Python代码移到云端

2024-06-26 01:50:44 发布

您现在位置:Python中文网/ 问答频道 /正文

听说我正在为一个研究者运行的科学计算项目(碰巧是随机轨迹描记法described here)将在我们的50节点集群上花费4个月的时间,调查员要求我检查其他选项。该项目目前正在使用parallel python将4d数组的块分包给不同的集群节点,并将处理后的块放回一起。在

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

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


Tags: 项目代码节点here轨迹选项时间集群
2条回答

最明显的商业选择是amazonec2和Rackspace云。我都玩过了,发现Rackspace API更容易使用。在

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

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

Rackspace云和amazonec2都有Python api。无论您使用哪种方法,我都推荐基于python的Fabric来自动部署和配置实例。在

您可能对PiCloud感兴趣。我从未使用过它,但他们的提议显然包括Enthought Python Distribution,它涵盖了标准的科学图书馆。在

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

相关问题 更多 >