论文部分内容阅读
蛋白质等生物大分子及其复合物是原子水平的精致机器,也是药物作用的靶标。通过以原子分辨率模拟结构演化并结合统计热力学理论,可以重建分子动力学变化的时间过程,解析其驱动机制,为生物功能阐释和预测以及药物设计提供依据。利用当代超级计算机的计算能力,可能把完成一个分子模拟项目的计算时间从长达数周甚至数月缩短到数天甚至数小时,对分子模拟在生物学基础问题研究和药物设计等领域的应用可产生巨大推动作用。“神威·太湖之光”是我国曾经四次位列国际Top500排名第一的超级计算机,采用了完全自主设计的第二代申威众核处理器。相比同时代的商用多核处理器,申威众核处理器具有更大规模的多级并行计算单元和独特的片上存储结构,擅长处理规则且易于并行的计算密集型任务。与其他的商用众核处理器相比,申威众核平台上缺少像GPU/CUDA那样成熟完善的针对自身处理器架构设计的并行编程模型和运行时环境,使得其上的并行算法设计和性能优化面临许多挑战性问题,迫切需要在重大应用问题的驱动下,发展其上的算法设计和优化实现方法。本文的工作旨在针对申威处理器的体系结构特征,研究重要的分子生物学应用核心算法的设计和性能优化方法,从而充分利用片上大规模的计算单元,发挥片上核间寄存器通信的独特设计优势,将处理器的峰值计算能力充分发挥出来,大幅度提高分子生物学应用软件的计算效率。分子生物学应用属于稀疏计算问题,具有间接且离散的内存访问模式,如何克服严峻的访存带宽限制和充分利用片上计算与通信硬件资源是本文要着力解决的关键技术问题。本文的研究工作和成果主要包括以下三个方面:1.提出了基于寄存器通信实现的从核共享写缓冲并行计算方法和相应的优化手段,克服了申威众核处理器片上存储资源的访问限制和空间限制。申威从核加速阵列上的每个计算核拥有一个空间有限的私有本地内存。计算核之间可以通过一种基于片上互连网络的寄存器通信机制进行高效数据交换。基于这一硬件特性,本文提出将部分计算核作为其它核的共享写缓冲的并行计算方法,用于解决分子动力学模拟中核心算法面临的片上存储空间有限和作用力写冲突带来的访存开销过大的问题。并且针对寄存器通信的特点和限制,本文还提出了计算核和共享写缓冲核之间的数据通信优化方法。实验结果表明,从核阵列加速的计算核心获得了相对主核最高30多倍的性能加速比,片外访存、核间数据通信和负载不均衡引起的时间开销均降低到了合理范围。2.设计和实现了申威众核架构上面向高效分子动力学模拟的分块任务划分和多级并行化算法,解决了计算过程中随机内存访问和写冲突带来的访存带宽受限问题。该算法在申威众核处理器架构上的高效并行化,受到计算过程中随机内存访问和写冲突的极大限制。针对这一问题,本文提出基于超簇的邻居列表,通过加大计算任务的划分粒度,大幅增强计算问题的时间局部性和空间局部性,最大化计算核心在申威从核上的计算访存比,充分利用了访存带宽。由于申威从核上锁的开销过大,多数据缓冲是用于避免写冲突较为可行的方法。然而,随之引入的数据归约开销限制了从核阵列的性能加速效果。本文提出的从核阵列多级并行计算方法,利用从核间的寄存器通信,实现了这一矛盾的折中与平衡。实验结果表明,优化后的核心计算代码获得了相对主核226倍的性能加速,且达到了处理器20%的浮点计算效率。3.设计和实现了神威太湖之光系统上高通量分子对接模拟的大规模并行计算方法,该算法能够实现千万核系统规模下基于分子对接模拟的药物虚拟筛选的高效并行。现有的分子对接模拟应用大都面向传统的通用多核处理器搭建的高性能计算平台,无法发挥众核计算系统强大的计算能力。本文首先提出单个分子对接过程在申威众核处理器上的并行优化方法。由于现行算法中的数据结构不适用于申威众核架构,本文提出了一系列的数据结构调整,包括消除关键数据结构的冗余项,压缩非键原子对,设计冗余的能量网格和软件Cache。另外,通过循环展开和向量化,充分挖掘计算核心的指令级和数据级并行度。现行分子对接算法采用单级主从并行模式。大规模部署时,任务调度节点面临巨大的I/O和通信压力,极大限制了算法的可扩展性。针对这一问题,本文提出了多级主从并行模式,以及调度节点间轻量级的I/O任务划分方法和异步的通信接口。实验结果表明,优化后的分子对接模拟能够实现神威太湖之光千万核系统规模下的高效并行计算和快速药物分子虚拟筛选。人类已知的适合于药物虚拟筛选的有机化合物将近4千多万个。该平台将完成如此计算规模的药物筛选任务的时间从一天缩短为一个小时。本文提出的一系列并行算法设计和优化方法已应用于神威·太湖之光上的分子动力学模拟和药物虚拟筛选软件,解决了这些软件在申威众核平台上高效并行所面临的一系列挑战,实现了核心算法在众核处理器上接近线性的加速效果。这些并行算法的设计思路和优化方法可为其它稀疏计算问题在申威处理器上的高效实现提供重要的借鉴;同时,对下一代申威众核处理器架构的改进和软件生态建设也具有重要的参考价值。