2010-01-12 75 views
5

Python似乎有many different packages available来协助在基于SMP的系统上或跨群集并行处理。我有兴趣构建一个客户端服务器系统,其中服务器维护作业队列和客户端(本地或远程)连接并运行作业,直到队列为空。在上面列出的软件包中,哪些是推荐的,为什么?Python并行处理库

编辑:特别是,我写了一个模拟器这需要在几个输入和处理一段时间的事情。我需要从模拟中收集足够的样本来估计用户指定置信区间内的平均值。为了加快速度,我希望能够在许多不同的系统上运行模拟,每个系统都会以一定的时间间隔向他们收集的样本回报服务器。服务器然后计算置信区间并确定客户端进程是否需要继续。收集足够的样本后,服务器终止所有客户端模拟,根据过去的结果重新配置模拟,并重复这些过程。

有了这个需要在客户端和服务器进程之间互通,敢问批次调度是一个可行的解决方案。对不起,我应该更清楚一开始。

+0

看起来你正在寻找一个调度程序? – 2010-01-13 06:06:52

回答

2

有与ParallelPython去。似乎易于使用,并应提供您想要的作业和队列界面。

0

既然你标记你的问题“科学的计算”,并提到集群,某种MPI包装似乎是显而易见的选择,如果我们的目标是开发并行应用程序作为一个可能从标题猜测。然后再次,您的问题中的文字表明您希望开发批量调度程序。所以我不知道你问的是哪个问题。

+0

客户端进程之间不会进行交互,但队列/服务器将根据各个客户端进程的结果进行更改。我只需要能够在许多工作站上动态管理一堆作业。 – 2010-01-12 20:29:51

+0

哦。在这种情况下,大多数人所做的就是将脚本提交给像condor或SLURM这样的现有批处理调度程序,解析输出并在必要时提交新作业等。这比编写自定义批处理调度程序少得多。 – janneb 2010-01-12 21:15:43

0

这样做很可能只是为了输出中间样本到单独的文件(或数据库),因为他们完成,并且有一个过程偶尔查询这些输出文件,看看他们是否是足够的,最简单的办法,或者更多的就业机会需要提交。

1

还有现在在地图上四处两种不同的Python包装/减少框架的Hadoop:

http://code.google.com/p/happy/

http://wiki.github.com/klbostee/dumbo

的Map/Reduce是有很多的食谱来解决常见模式一个很好的发展格局的问题。

如果您还没有一个集群,Hadoop的本身是不错的,因为它有完整的作业调度,跨集群(即HDFS)数据的自动数据分布等