簡體   English   中英

Python:FFT並行計算

[英]Python: FFT parallel computing

我有幾個帶有Ubuntu和MPICH服務器的PC集群-我將它們用於C ++和MPI並行計算。 現在我想用Python做類似的事情。 我的問題是-是否有任何簡便的方法可以在許多CPU內核(在許多計算機上)上進行快速傅立葉變換? 用法示例將是不錯的。 這是我在單線程上使用的方法:

import numpy as np
N=1024
tab=np.random.rand(N,N,N) #declare some matrix in 3d
a=np.random.rand(N,N,N) #declare other matrix
tab=np.fft.ifftn(a*np.fft.fftn(tab))

當我們有2 ^ 30個數字時,擁有多線程解決方案真是太好了...

MPI4pypyFFTW有關 FFTW經過高度優化,可以在多個線程上很好地工作,但是該接口與您的平均FFT略有不同,因為它需要直接創建“計划”。 但是,這樣做只是為了優化對任何靜態旋轉因子等的處理。 此外,還有很多選項-正向/反向,就地/就地,int,double,float等。有關更多信息,請參見基准

看看這個線程 ,其中討論了與pyFFTW MPI蟒蛇的發展。 由此看來, pfft似乎是一個更好的解決方案,並且在https://github.com/rainwoodman/pfft-python/blob/master/example.py給出了最小的python示例代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM