【发布时间】:2014-09-18 13:05:22
【问题描述】:
我目前正在编写一些用 C 编写的模拟代码,这些代码可以在不同的远程机器上运行。在 C 部分完成后,我想通过使用 python 模拟 api 和某种作业队列系统对其进行扩展来简化我的工作,它应该执行以下操作:
1.指定一组应执行模拟的参数并将它们放入主机上的队列中
2.worker对远程机器进行模拟
3.返回结果给主机
我查看了完成这项任务的不同框架,我的第一选择归结为 IPython.parallel。我查看了文档,从我测试的结果来看,它似乎很容易使用。我的方法是使用负载平衡视图,如
中所述http://ipython.org/ipython-doc/dev/parallel/parallel_task.html#creating-a-loadbalancedview-instance
但我没有看到的是:
- 会发生什么,即如果 ipcontroller 崩溃,我的作业队列是否消失了?
- 如果远程计算机崩溃会怎样?是否有某种错误处理?
由于我运行的模拟时间相对较长(1-2 周),因此我不希望我的模拟在系统的某些部分崩溃时失败。那么有没有办法在 IPython.parallel 中处理这个问题?
我的第二种方法是使用 pyzmq 并从头开始实施作业系统。 在这种情况下,最好的 zmq 模式是什么?
最后但同样重要的是,对于这种情况是否有更好的框架?
【问题讨论】:
标签: python parallel-processing zeromq pyzmq ipython-parallel