有沒有可以平行計算的 Python 科學計算庫?

時間 2021-06-07 00:15:15

1樓:秦續業

可以使用 Mars 來並行 numpy。

Mars tensor 目前覆蓋了主流的 numpy 介面,API doc 可以參考:https://

docs.pymars.org/zh_CN/l

atest/tensor/routines.html

只要會用 numpy,就會用 mars tensor。

以蒙特卡洛求解 pi 為例。

numpy:

In [1]: import numpy as npIn [2]: %%timen = 4_0000_0000a = np.

random.uniform(-1, 1, size=(n, 2print((np.linalg.

norm(a, axis=1) < 1).sum() * 4 / n3.14166393

CPU times: user 20.9 s, sys: 11.8 s, total: 32.7 s

Wall time: 27.1 s

Mars tensor:

In [1]: import mars.tensor as mtIn [2]:

%%timen = 4_0000_0000a = mt.random.uniform(-1, 1, size=(n, 2print(((mt.

linalg.norm(a, axis=1) < 1).sum() * 4 / n).

execute3.14149706

CPU times: user 56.2 s, sys: 5.68 s, total: 1min 1s

Wall time: 6.58 s

這還只是在我筆記本上,通過 Mars 分布式,可以輕鬆擴充套件到分布式集群。部署參考:https://

docs.pymars.org/zh_CN/l

atest/install.html#run-on-clusters

。也就是幾個命令的事情。

docs.pymars.org/zh_CN/l

atest/kubernetes.html

Yarn 的支援也很快會有。

2樓:

自問自答。

因為我的程式中需要並行的是優化計算的evaluation部分,所以如果能夠找到一些支援並行優化的庫就可以。

從python官網上,可以找到乙個DEAP庫(git上有),利用map進行平行計算。

這個庫的優點是,documents和例子是非常詳細的。很多函式,使用者可以根據自己的需求修改,介面還是很好用的。

DEAP中是通過呼叫了乙個scoop庫(git上有)中的map函式來進行平行計算的。

如果你的專案不是優化,可以直接用scoop來做平行計算,scoop的documents也是蠻詳細的。

有沒有什麼問題是天生適合平行計算的?

肯定是有的比如說在網路中的廣播 broadcasting 每乙個網路中的節點都是乙個處理器,一條資訊從乙個處理器出發,依次傳輸給相鄰的處理器。所以最快的速度是以log N時間完成廣播。因為每次被廣播到處理器的數量翻倍。但如果是在序列計算中,廣播速度就是N時間了。 已登出 沒學過平行計算,說的不一定對...

有沒有可以計算帶引數矩陣的計算器?

scenery 帶CAS功能的可以,TI 89鈦或者 TI Nspire CAS啦。不過這種計算器個頭比較大,如果考試不允許很容易被監考老師禁止帶入。因為一眼看過去就 與眾不同 我曾經在大學線性代數考試中使用過TI 89 慶幸監考不懂CAS,允許我使用啦! 電卓院亜紀良 計算帶引數的矩陣的計算器不僅...

有沒有能讓卡西歐科學計算器計算時間最長的式子?

Tris n 建議題主算一算有關副反應級數和分配係數的分析化學題。那種敲了一分鐘計算器,解了兩三分鐘然後出來無解的絕望感 所以我現在算分化一般都用近似或者迭代 orwell1984 高中用同桌大個子的計算器可以算積分,我覺得比我的老版卡西歐強多了,於是下課經常研究怎麼調教這個新奇的玩具。直到有一天我...