论文部分内容阅读
随着状态估计理论在科学计算和工程应用中地位的突出及其普遍使用,许多领域对状态估计的软件应用和开发都产生了强烈的要求,而卡尔曼滤波算法是一种对系统状态的最优估计算法,是状态估计理论的典型应用。卡尔曼滤波算法是一种有效的数据处理算法,已经广泛的应用于太空监测、无线通信、跟踪系统以及金融行业等领域。目前卡尔曼滤波算法的系统状态属性维度还处于简单的一维、二维,但是随着系统状态复杂性的增加和状态估计的属性维度增多,数据规模随之增大,计算量呈指数级增长,传统的卡尔曼滤波算法难以满足应用的需求。CPU-GPU异构计算系统由于其经济性和高效性,已成为大规模并行计算的理想平台。利用CPU-GPU异构计算平台,针对大规模,多维度属性卡尔曼滤波算法的求解,研究其计算过程的并行优化,提高卡尔曼算法的计算性能。本文的主要工作:首先研究几种CPU-GPU协同异构并行编程模型——GPGPU架构、OpenMP、CUDA、CPU-GPU协同异构模型;然后分别三种平台上完成卡尔曼滤波并行算法设计与实现:(1)在CPU多核平台上,利用OpenMP并行编程模型,针对矩阵和向量的数据划分实现了并行的卡尔曼滤波算法,并通过实验验证了较串行算法性能有显著提升。(2)在CPU-GPU异构平台上,提出了一种CPU-GPU任务划分的算法,利用共享存储器提高数据访问的效率,通过重叠计算时间与传输时间引入的CUDA流,不但充分发挥了 GPU强大的并行计算能力,还有效利用CPU的计算资源。(3)在“神威·太湖之光”平台上,针对新型的体系结构申威处理器(260个核心)、新型主从核异构编码模式,提出了一种改进的卡尔曼滤波并行算法,并提供针对体系结构七级流水线的向量化优化和去相关性优化,以及双缓冲机制等策略,较大提高了卡尔曼滤波算法的并行效率。通过五组不同数据规模的状态估计实验,验证了卡尔曼滤波算法在CPU多核并行、CPU-GPU异构并行以及神威太湖之光上的并行计算性能都有较明显的递进性能提升,并且随着数据规模的增加,其加速比也随之增加,体现了并行算法较好的可扩展性。