繁体   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