python并行計算的一種方法舉例_進程池
測試系統:windows10 22H2
python編譯器:Anaconda自帶的spyder(python3.9)?
例子說明
求解包含0在內的前400000000(八個零)個數字的和。
串行計算
程序說明:直接用一個for循環(huán)進行求和,然后進行結果輸出。
程序運行結果及運行時間

用時一分鐘多一點。
多進程并行計算
程序說明:自定義一個求和函數--madd(n1,n2),用于計算n1到n2之間的求和,然后用求和結果構成兩個2×2數組,進行返回。設置4個進程計算前400000000個數的求和,每個進程需要計算100000000個數的求和,然后將結構四個進程的結構進行匯總,得出最后的求和結果進行輸出。
程序運行結果及運行時間

用時十四秒左右。多進程并行計算用時明顯快于串行計算。
查看是否成功進行:通過設備管理器查看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個數(核數)。