当前的计算机大多是多内核的CPU,对于一些易并行问题可以使用Python轻松实现并行编程,提高计算速度。
可以如下了解计算机有多少内核:
>>>from multiprocessing import cpu_count
>>>cpu_count()
4
以下是一个使用随机函数计算圆周率的例子:
import random from multiprocessing import Pool from os import getpid from time import time def length(size): count=0.0 for i in range(size): x=random.random() y=random.random() if(x*x+y*y<1.0): count=count+1.0 print('Process {} handling {}'.format(getpid(),size)) print(count*4.0/size) return count*4/sizepool=Pool(4) #A: pool=Pool(1) t1=time() res=pool.map(length,[100000,100000,100000,100000]) # B:[400000] t2=time() print('Time:={}'.format(t2-t1)) 本机测试中,在4进程下时间是:0.05~0.07,2进程是:0.11~0.13,1进程是:0.20~0.24. 注:程序中A处和B处注意保持一致,即A处进程数多少,B处列表长度相应改变,元素值也相应调整。