欢迎光临散文网 会员登陆 & 注册

python并行计算的一种方法举例_进程池

2023-04-02 21:38 作者:syr56  | 我要投稿

测试系统:windows10 22H2

python编译器:Anaconda自带的spyder(python3.9) 

例子说明

求解包含0在内的前400000000(八个零)个数字的和。

串行计算

程序说明:直接用一个for循环进行求和,然后进行结果输出。

程序运行结果及运行时间

图1 串行计算结果

用时一分钟多一点。

多进程并行计算

程序说明:自定义一个求和函数--madd(n1,n2),用于计算n1到n2之间的求和,然后用求和结果构成两个2×2数组,进行返回。设置4个进程计算前400000000个数的求和,每个进程需要计算100000000个数的求和,然后将结构四个进程的结构进行汇总,得出最后的求和结果进行输出。

程序运行结果及运行时间

图2 多进程并行计算结果

用时十四秒左右。多进程并行计算用时明显快于串行计算。

查看是否成功进行:通过设备管理器查看cpu后台使用率,使用所有核进行并行计算时,cpu使用率几乎为100%。

windows系统查看cpu核数

鼠标右键左下角开始图标,选择“设备管理器”→“处理器”,“处理器”下面有几个cpu的选项cpu核数就是多少。

Linux系统查看cpu核数命令

查看物理cpu个数:cat/proc/cpuinfo | grep “physical id”| sort| uniq| wc -l

查看每个物理cpu中core个数(核数):cat/proc/cpuinfo | grep “cpu cores”| uniq

Linux总的cpu核数=物理cpu个数×每个物理cpu中core个数(核数)。

python并行计算的一种方法举例_进程池的评论 (共 条)

分享到微博请遵守国家法律