论文部分内容阅读
有限差分算法一直都是偏微分求解过程中的核心求解方法,但是在面对大规模科学计算应用时,普通处理器的计算效率难以满足应用的需求。“神威·太湖之光”超级计算系统,是世界上第一个性能超过100Pflop/s的超级计算机系统,内部集成了40960个申威26010异构众核处理器。申威26010异构众核处理器具有独特的系统架构。目前,针对有限差分算法的计算,还没有一种优化方案可以完全发挥申威26010异构众核处理器高超的计算性能。为了提高有限差分法求解的效率,本文基于“神威·太湖之光”超级计算机系统,针对地震波正演模拟与通用地球系统模式中以有限差分法为核心计算函数,存在并行效率过低的问题,设计出了多种多级异构并行优化方案。本文根据申威26010异构处理器的架构特点,分析“神威·太湖之光”超级计算系统在处理有限差分算法相关的密集型算法时的主要性能瓶颈。研究了基于“神威·太湖之光”超级计算系统上的有限差分方法的多级并行优化。针对并行过程中出呈现的MPI消息传递效率低、处理器带宽造成通信效率低下、处理大规模数据LDM空间无法满足计算需求等问题,研究了MPI、Sunway Athread、SIMD向量化等并行方法,设计出纵向数据划分、链式通信、2.5-D流水线、捆绑通信、异步通信等多级异构并行优化策略。主要的优化工作如下:(1)地震波有限差分法交错网格格式两级并行优化方案。针对一级并行中MPI消息传递耗时的问题,重新划分了数据的分配方案,有效的减少了消息传递的次数,提高了一级并行的并行效率。同时,通过二级并行策略,有效缓解了一级并行方案中呈现出内存占用过大导致无法计算大规模模型的问题。二级并行中因处理器访问主存带宽的限制,导致数据访问延迟,造成计算核心无法发挥其高效的计算性能。因此,通过神威内部线程库使用DMA通信的方式,将数据从主存加载到计算核心局部存储器(LDM)中。为了使DMA发挥其最大性能,本文设计出链式读取数据的策略,但当数据增加到三维,LDM存储空间难以满足计算的需求,因此本文提出了2.5-D流水线法,缓解了数据存储压力,同时2.5-D流水线也方便方便了异步通信方案的实施。在地震声波正演中使用128进程8192线程进行多级异构并行性能测试,结果显示较优化前取得了1250.97倍的加速效果。(2)通用地球系统模式中有限差分相关函数的多级并行优化方案。在之前的优化策略上,增加向量化级别并行进一步提高了并行效率。深入研究处理器内部寄存器通道,设计出捆绑通信策略。该策略有效缓解通信优先策略与存储优先策略之间的冲突。向量化级别并行中,研究了vshff数据置换方式,减少向量数据封装过程中的消耗。在单个核组内对两个以有限差分为核心计算的函数进行并行性能测试,分别取得了9.9倍和21.2倍的加速。综合以上两项工作中的优化策略,本文主要研究了以有限差分法为代表的密集型算法在“神威·太湖之光”超级计算机系统上的并行优化。从测试的结果显示,本文提出的多种并行策略,有效缓解了因硬件设计造成的带宽瓶颈,并取得了理想的加速效果,为以后其他算法在神威上的移植奠定了基础。