在数值计算中,我需要在分布式内存集群上进行多维 FFT。数据目前使用 PETSc (DMDA) 中的分布式阵列进行分发。
我最初查看了 FFTW 的分布式版本。但是,我的数据布局不符合 FFTW 使用的布局。因此,我需要将我的数据分散到 FFTW 所需的布局中,这并不理想。有关使用 PETSc 的示例,请参见链接。
请注意,FFT 不是我计算中的主要瓶颈。我只想最小化 FFT 所需的通信开销。有人对我应该使用什么有任何建议吗?即使我的数据不符合 FFTW 布局,FFTW 是否也是最佳方法?
在数值计算中,我需要在分布式内存集群上进行多维 FFT。数据目前使用 PETSc (DMDA) 中的分布式阵列进行分发。
我最初查看了 FFTW 的分布式版本。但是,我的数据布局不符合 FFTW 使用的布局。因此,我需要将我的数据分散到 FFTW 所需的布局中,这并不理想。有关使用 PETSc 的示例,请参见链接。
请注意,FFT 不是我计算中的主要瓶颈。我只想最小化 FFT 所需的通信开销。有人对我应该使用什么有任何建议吗?即使我的数据不符合 FFTW 布局,FFTW 是否也是最佳方法?
开姆尼茨大学(德国)的 Michael Pippig 实施了一个在后台使用 FFTW 的 MPI 并行化 FFT。这可能对您有所帮助:http ://www-user.tu-chemnitz.de/~mpip/software.php?lang=en
正如 Eldila 的评论所建议的,它正在使用桑迪亚国家实验室的 Plimpton 提出的算法。