上一篇主要是讲了如何在Windows平台上将一个Python进程绑定到某一个CPU上运行,在网上闲逛时搜索了下python affinity,发现一个在linux和windows下通用的设置affinity的python包:
https://pypi.python.org/pypi/affinity/0.1.0
包是06年发布的,那时PC机才刚开始流行二核处理器。
包中只有两个函数:
set_process_affinity_mask(pid,mask)
get_process_affinity_mask(pid)
在linux下,mask的意义和window上的意义一致,
如要设置自身的Python进程运行在某个CPU上,可以调用如下代码:
import affinity
affinity.set_process_affinity_mask(0,1)
表示在CPU 0上运行自身进程
在windows下使用时还必须安装pywin32,但是感觉用一个小功能就要在windows下安装一个大的包,很是不爽,于是就把原来的程序改了下,下载地址如下:(要用cython编译下)
又google搜索下,发现一篇很早的文章讨论在多处理器上优化Python的文章,02年的:
Optimising Python on multi-processor machines