日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3 并行计算_Python-并行计算

發布時間:2023/12/31 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3 并行计算_Python-并行计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過 ipyparallel 包進行并行計算。

具體的內容可以參考:

開啟

使用前,需要以管理員模式打開cmd,輸入

ipcluster start

開啟并行python,一般開啟的數量和cpu核心數量相同。

可能開啟速度沒那么快,直到cmd上顯示“Engines apear to have started successfully”之后,在jupyter中使用

import ipyparallel as ipp

c=ipp.Client()

c.ids

之后,才能列出所有的進程。

使用

使用時,有兩種方法。

直接使用:

并行計算map_sync:每個核將list中一個參數傳入function中,進行計算,完成后選取list中其他值再計算。list中值全部進入function中計算后,最后將結果輸出到result。functuon沒有return可省略“result = ”

result = c[:].map_sync(function,argue_list)

或者

應用計算apply_sync:各個核將同一個參數傳入function,計算結果相同。最后將結果輸出到result。functuon沒有return可省略“result = ”

result = c[:].apply_sync(function,argue)

DirectView使用:

這塊不太明白,類似進行實例化,或者選取其中部分核心進行運算。

首先創造1個view:

view = c[0:3]:使用3個核心

result = view.map_sync(function,argue_list):并行計算

result = view.apply_sync(function,argue):應用計算

關閉

將管理員模式的cmd直接關閉后,就關閉了并行核心。

一些問題

開啟了,代碼沒反應

要使用管理員模式cmd才行。正常cmd不可以。

提示ipcluster是不是有效命令

這種情況要將cmd先進入到安裝ipyparallel的文件夾下。我的目錄路徑如下:

cd c:\Program Files\Anaconda3\Scripts

進入此文件夾之后輸入

ipcluster start

才能開啟核心

管理員cmd之后,map_sync沒反應

這是遇見的一個比較奇怪的問題。

如下代碼可用:

def f(x):

return x*x

c[:].map_sync(f,[0,1,2,3,4])

但是將f函數換成自己的其他復雜函數就不能用。

測試后發現,在使用自己的復雜函數進行并行計算前,先進行一次小范圍的應用計算:

c[:].apply_sync(complex_function,argue)

之后,再進行并行計算,就可以使用了。

function函數中內外部函數問題

使用這個包的時候,每個核在每次運行時可以看做一個新的python程序,也就是說,在前邊import的包,也必須重新import。所以必須將所有包的導入代碼,以及自己寫的def函數都包含在主函數內:

def main_function(argue):

import ....

def sub_function(x):

#sub_function code

return sub_results

#main_function code

return main_results

results = c[:].map_sync(main_function,argue_list)

總結

以上是生活随笔為你收集整理的python3 并行计算_Python-并行计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。