快速傅立叶变换(FFT)的可伸缩性


12

为了对均匀采样的数据(例如结合PDE求解器)使用快速傅里叶变换(FFT),众所周知,FFT是)算法。当并行处理n (即非常大)时,FFT缩放比例如何?O(nlog(n)n


1
我有点困惑。您是在谈论随着数据点数量的增加,固定数量的处理器的执行时间是如何缩放的;随着数目或处理器数量的增加,固定数量的数据点的执行时间是如何缩放的?每个处理器的固定数据点比率是否随着数据点数目的增加而增加?
Geoff Oxberry 2012年

弱缩放和强缩放。
艾伦·P·恩格西格·卡鲁普

Answers:


8

这是比证明的证据更有趣的证据,但是似乎FFT的现有实现(例如FFTW)对其缩放能力具有限制。

kO(107)

但是,这里要传达的信息是FFT应该扩大规模。但是,当人们从一种算法性能的理论考虑转移到在实际HPC平台上的实际实现时,有时会出现意想不到的限制和相互作用。



5

ndd

在Google学术搜索中搜索“并行FFT”或“伪谱可伸缩性”会产生大量我不具备评估能力的信息。但这似乎是一个可以在实践中完成的很好的最新示例:

混合MPI-OpenMP方案用于流体湍流的可扩展并行伪谱计算

抽象:

提出了一种混合方案,该方案利用MPI进行分布式内存并行处理,并使用OpenMP进行共享内存并行处理。这项工作的动机是希望在新兴的Petascale,高核数,大规模并行处理系统上的流体湍流伪谱计算中获得异常高的雷诺数。混合实现从经过良好测试的可伸缩MPI并行伪谱代码派生并增强。混合范式为伪光谱网格的域分解带来了新的图景,这尤其有助于理解全局数据的3D转置,而3D转置是并行快速傅里叶变换所必需的,而并行快速傅里叶变换是该结构的核心部分。数值离散化。提供了混合实施的详细信息,性能测试说明了该方法的实用性。结果表明,该混合方案可实现高达约20000个计算内核的近乎理想的可伸缩性,最大平均效率为83%。所提供的数据演示了如何选择最佳数量的MPI进程和OpenMP线程,以优化两个不同平台上的代码性能。


1

O(n)

O(logn)

O(n)


1
FFT中有大量的通信,但是毫无必要(或不希望)在单个节点上收集结果。FFT的一种非常普遍的用途是在湍流的直接数值模拟中,在实际空间中应用非线性对流项,而其余的模拟则在傅立叶空间中进行。强调地,这不需要序列化结果。通常,在并行计算中,“大”数据应始终以分布式形式存储和分析。
杰德·布朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.