5

Python 似乎有许多不同的包可用于帮助在基于 SMP 的系统上或跨集群进行并行处理。我有兴趣构建一个客户端服务器系统,其中服务器维护一个作业队列,客户端(本地或远程)连接并运行作业,直到队列为空。在上面列出的软件包中,推荐哪个,为什么?

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

由于需要客户端和服务器进程之间的相互通信,我质疑批处理调度是否是一个可行的解决方案。对不起,我应该更清楚地开始。

4

4 回答 4

2

试试ParallelPython。看起来很容易使用,并且应该提供你想要的作业和队列接口。

于 2010-01-15T09:06:09.220 回答
1

现在围绕 map/reduce 框架 Hadoop 也有两个不同的 Python 包装器:

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

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

Map/Reduce 是一种很好的开发模式,有很多解决常见问题模式的方法。

如果您还没有集群,Hadoop 本身就很好,因为它具有完整的作业调度、跨集群(即 HDFS)数据的自动数据分布等。

于 2010-01-13T00:25:35.657 回答
0

鉴于您将问题标记为“科学计算”,并提到了一个集群,如果目标是开发并行应用程序,正如人们可能从标题中猜到的那样,某种 MPI 包装器似乎是显而易见的选择。再说一次,您问题中的文字表明您想要开发一个批处理调度程序。所以我真的不知道你问的是哪个问题。

于 2010-01-12T20:23:39.513 回答
0

最简单的方法可能只是在完成时将中间样本输出到单独的文件(或数据库),并让进程偶尔轮询这些输出文件以查看它们是否足够或是否需要提交更多作业.

于 2010-01-12T21:30:27.193 回答