文章目录
目前个人计算机大都是多核的,但是在运行python程序的时候会发现实际上只有一个核心(CPU)在跑代码,另外几个核心都在空闲,如下图。
1 pp模块
Python是解释型的语言,而Python解释器使用GIL(全局解 释器锁)来在内部禁止并行执行,正是这个GIL限制你在多核处理器上同一时间也只能执行一条字节码指令。
Parallel Python这个库,正是为支持smp(Symmetric multiprocessing,对称多处理)多路多核多cpu而设计的, 而且它不仅可以多核处理器协同工作,还可以通过网络集群运行。
PP是一个Python模块,提供了在 SMP(多 CPU 或多核)和集群(通过网络连接的多台计算机)上并行执行Python代码的机制。轻量级,易于安装,并 集成了其他软件。PP也是一个用纯Python代码实现的跨平台,开放源码模块。
1.1 功能简介
(1)在SMP和集群上并行执行Python代码。
(2)易于理解和实现的基于工作的并行机制,便于把串行应用转换成并行的。
(3)自动构造最佳配置(默认时工作进程数量等同于系统处理器数量)。
(4)动态处理器分配(允许运行时改变工作处理器数量)。
(5)函数的工作缓存(透明的缓存机制确保后续调用降低负载)。
(6)动态负载均衡(任务被动态的