Python: FFT并行计算

2024-06-25 06:04:52 发布

您现在位置:Python中文网/ 问答频道 /正文

<>我有一组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个数字时有多线程解决方案是很好的。。。在


Tags: 方法fft服务器核心ubuntunprandomcpu
2条回答

看看这个thread,它讨论了用pyFFTW开发MPI python。由此看来,pfft可能是一个更好的解决方案,并且在https://github.com/rainwoodman/pfft-python/blob/master/example.py处给出了最少的python代码示例。在

MPI4py与{a2}相关。FFTW是高度优化的,在多线程上运行良好,但接口与普通FFT略有不同,因为它需要直接创建“计划”。然而,这样做只是为了优化任何静态旋转因子的处理。此外,还有很多选项-前进/后退、入/出位、int、double、float等。。。有关详细信息,请参见benchmarks。在

相关问题 更多 >