将并行Python代码移动到云端
作者:互联网
听说科学计算项目(恰好是随机纤维束成像方法described here)我目前正在为一名研究人员运行将在我们的50个节点集群上花费4个月,调查员要求我检查其他选项.该项目目前正在使用并行python将4d数组的块分配到不同的集群节点,并将处理后的块重新组合在一起.
我目前正在处理的工作可能过于粗糙,(5秒到10分钟,我不得不在并行python中增加超时默认值)并且我估计通过重写它可以将进程加速2-4倍为了更好地利用资源(将数据拆分和重新组合在一起花费的时间太长,也应该并行化).大部分工作都是由numpy数组完成的.
我们假设2-4次是不够的,我决定从我们的本地硬件中获取代码.对于像这样的高吞吐量计算,我的商业选择是什么以及如何修改代码?
解决方法:
想到的最明显的商业选择是Amazon EC2和Rackspace Cloud.我玩过两者,发现Rackspace API更容易使用.
好消息是,您可以使用他们的计算实例(您选择的操作系统的短期或长期虚拟机)进行原型设计和播放,只需很少的投资,通常为每小时0.10美元.您可以按需创建它们,然后在完成后将它们释放回云端,并且只需为您使用的内容付费.例如,我看到使用6个Rackspace实例进行Django部署的演示,花了大概一个小时,而且扬声器花费不到一美元.
对于您的使用案例(不清楚“高吞吐量”的确切含义),您必须考虑您的预算和计算需求,以及您的总网络吞吐量(您也需要付费).一些小规模的测试和一个简单的电子表格计算应该告诉你它是否真的很实用.
Rackspace Cloud和Amazon EC2都有Python API.无论您使用哪种,我都建议使用基于python的Fabric来自动部署和配置实例.
标签:python,parallel-processing,amazon-ec2,mapreduce,parallel-python 来源: https://codeday.me/bug/20190526/1156903.html