论文部分内容阅读
傅里叶变换是基于热传导问题而提出来的。傅里叶变换可以把信号从时域变换到频域,而傅里叶逆变换把信号从频域变换到时域。这样,对于某些时域内其特征不是很明显的信号,经过傅里叶变换后就可以在频域内研究该信号了。串行傅里叶变换有DFT与FFT,DFT是离散傅里叶变换,它是最初的变换算法,在信号处理领域仍然发挥着积极作用;FFT是快速傅里叶变换,它是DFT的快速算法,FFT算法采用蝶式运算,同时对旋转因子进行递推计算,所以FFT算法的运算速度要比DFT提高了很多,因而,它的应用会更广泛。
信息社会在高速发展,计算机的处理速度已经不能很好满足当前信息量的增长速度了,FFT已经不能从本质上来加快变换速度。本文从数学的角度阐述了傅里叶变换的表达形式,同时,重点描述了傅里叶变换的物理意义:介绍了目前国内外傅里叶变换的现状及各种并行计算机的体系结构与模型,同时也描述了并行计算的程序设计环境;给出了两种并行傅里叶变换算法。
第一种多核下并行傅里叶变换利用了因特尔提供的并行程序设计工具,在这一算法中,通过寻找程序运行的瓶颈来分析程序的并行性,还应用其线程构建模块来对程序进行改造,最终使程序并行运行,使其得到较快的运行。其并行化是基于硬线程之间的“偷取”;另一种多核并行傅里叶变换算法是基于分片的多级存储结构的。这个算法的提出,主要是针对现有多核结构上快速傅里叶变换(FFT)并行算法没有利用多级缓存和线程级并行等多核特性问题,通过运用多核多级存储特性合理划分数据,采取子序列FFT计算和多线程并行逐对计算FFT相结合的方法,给出一个N点、一维、有序和基数为2的多核多线程并行计算FFT非递归算法。这个算法充分利用了一级缓存与二级缓存、二级缓存与内存之间的速度与容量的差异,把大量的变换数据序列分批的调入各级存储器,按照容量与速度的顺序,依次完成各级存储器内的并行运算,直至整个数据序列变换全部完成,通过这样的运算策略可以使运算速度达到最快。理论分析和实验结果表明,该算法实用性强,同时具有很高的效率,能获得较好的加速比和可扩展性。