跨多个服务器的传播计算

时间:2014-10-27 10:07:55

标签: python parallel-processing

我有一个公式需要大约0.5秒来计算。但是,我需要使用不同的值执行此计算100万次。公式(简化)的一个例子:

y = a + b

其中我有100万个ab的组合,这些组合都需要计算。这些100万个组合保存在名为combinations的列表中。我使用Python。

我的想法是为每100,000个计算启动一个AWS实例,所以在这种情况下我需要10.然后我的想法是将combinations列表分成10个部分({{1}等)。然后我必须向每个AWS实例发送组合子集。

但我怎么能做到最好呢?我的想法是拥有一个可供所有实例访问的共享卷,并在该卷上放置我通过SSH调用的part1 = combinations[:100000]脚本:

calculate.py

或者芹菜可能是更好的方法吗?或许是另一种方式?

编辑:我做了一些测试,Celery似乎还有发展方向。

1 个答案:

答案 0 :(得分:0)

您可以使用pathos设置ssh-tunnel,然后使用pathos的{​​{1}}分支将函数提交给多个服务器 - 或者只使用parallelpython中的隧道1}}并使用pathosrpyc等其他内容通过隧道连接到不同的服务器。

请参阅:Python Multiprocessing with Distributed Cluster