如何在有限的硬件条件下,使程序耗时更少,或者处理数据量更大?
这个问题在进入多核时代以来,似乎多了一种解 决途径,那就是充分利用多处理器(核)来并行的完成计算任务.
这里的多处理环境可以是指一台拥有多核处理器甚至多颗 处理器的服务器,也可以是指一个拥有多节点的计算机群。
针对开篇提出的那个问题,解决办法其 实都是"分而治之"。从数据分割入手,我们可以得到类似MapReduce的解决方案,类似的Python实现也有不少;从程序角度去看,目前主要是以下 几种途径:
- 大 规模并行处理系统(MPP )
- 对称多处理(SMP )
- 分布式计算(集群/网格计算 )
本文主要介绍的ParallelPython(简称pp)框架可以有效支持SMP和集群方 式进行并行计算。
根据官方介绍, pp 提供了在SMP(多CPU或多核)和集群(通过网络连接的多台计算机)上并行执行Python代码的机制,具有以下特性:
- 在 SMP和集群上并行执行Python代码
- 易于理解和实现的基于工作的并行机制,便于把穿行应用转换成并行的
- 自动构造最佳配置(默认时工作进程数量等同于系统处理器数量)
- 动态处理器