Parallel Python学习

Parallel Python是python的分布式计算模块,其功能是可以以 函数+数据 的形式,将任务分布到Cluster中的各台机器的CPUs上进行运算。 同时Parallel Python的Cluster构建支持Auto Discovery,可以在内网中非常方便的搭建起一个自组织的分布式计算平台。 Parallel Python没有DFS,可以理解为MapReduce。

学习PP已经有一段时间了,经过实践得到如下结论:

  1. 其不适合有大量数据交换的分布式场景,直接表现为经过出来socket连接自动,远程机器自动断开到server的连接
  2. 其不适合程序中调用子进程的场景(当前版本1.6.1还没有解决)
  3. 其不适合大量计算的的分发,主要体现在server计算时间过长,会自动断开与Client(控制端)的连接
  4. 其可控性不强,无法控制Task的分配,从其源码中可看出,分配Task时优先分配给本机空闲cpu,然后对外是从任务队列中pop给任何一台机器的空闲CPU处理

 

其比较适合的场景(个人理解):

  1. 分发任务,无需大量数据传输;高计算程序且每个任务计算时间不长,默认20s
  2. 分发可执行体无过于复杂的模块、函数、变量依赖
posted @ 2011-09-02 12:28  残夜  阅读(1076)  评论(0编辑  收藏  举报