面向对象编程之Python学习并行计算四

当前的计算机大多是多内核的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/size
pool=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处列表长度相应改变,元素值也相应调整。

 

上一篇:中国大学零基础学Java语言练习题


下一篇:产生随机六位数的六种方法