基于“神威·太湖之光”的分子动力学算法优化

来源 :山东大学 | 被引量 : 0次 | 上传用户:qianchen912009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
生物、化学、材料和医药科学的不断发展推动了人类认识和了解微观世界的需求大大增加,但是在分子、原子、原子团尺度上进行观测的成本仍旧高昂,尤其是对于微观过程的连续观测需要更加复杂精密的仪器,同时,一部分微观过程的时间尺度非常小,使得在实验室中捕捉这些微观过程十分困难。因此,使用计算机进行微观层面的模拟对认识和了解微观世界显得尤为重要。使用计算机模拟微观世界的主要方法包括第一性原理模拟、分子动力学模拟、蒙特卡洛模拟等。其中分子动力学模拟是最为常用的一种方法。随着分子动力学在科学研究领域中的应用越来越广泛,对分子动力学模拟效率的需求也不断增加,这主要是因为分子动力学模拟中的时间尺度和空间尺度的不断增长。为了满足这样的需求,分子动力学模拟在应用中不断利用新的计算机技术和计算硬件来提高效率,例如使用SIMD、异构众核、定制芯片和大规模并行等方法。2016年发布的神威·太湖之光超级计算机采用了 40960个SW26010处理器,实现了 125 PFlops/s的理论浮点性能,是中国第一台使用国产处理器登顶Top500榜单的超级计算机。由于其采用的SW26010处理器在架构上有巨大的革新,在实现了极高的运算速度的同时也有很好的能耗比,但这些架构变化也带来了内存模型和编程模型的巨大变动,使得原有的科学计算软件难以有效利用神威·太湖之光杰出的运算能力。虽然SW26010处理器采用的主核和从核异构并行的模式已经见于配备了 GPU、MIC等加速器的计算平台中,但是SW26010的节点没有GDDR或HBM等居于主存和加速器间的高速中间内存。SW26010处理器采用了从主存到从核片上缓存直接传输数据方式,这要求我们重新为算法设计内存访问模式。同时,从核的片上缓存不是常见的自动Cache,而是64KiB的LDM,数据的装入和写回由从核通过对应的指令发起,这给应用程序对从核的使用带来了新的机遇和挑战:一方面需要对应用进行很大的改造才能使之适应这种由软件控制缓存的模型,另一方面这也提供了更好的机会来控制数据的换入换出,实现对LDM的高效利用。目前,在神威·太湖之光超级计算机上开展分子动力学算法优化的研究存在的主要挑战有:1)分子动力学应用中需要进行大量的离散访存的情况,而SW26010处理器使用DMA访问主存的带宽太低,这种硬件架构和算法的不匹配使得分子动力学模拟在SW26010处理器上取得较为理想的性能非常困难。2)SW26010处理器的从核不能单独启动进程,分子动力学应用中常见的多进程并行框架无法有效利用从核,而分子动力学应用中现存的多线程并行框架往往是为了在超线程处理器上利用逻辑线程而设计的,与SW26010中使用多线程方式来利用物理计算核心的架构也不匹配。3)因为分子动力学是离散访存的应用,在多线程计算中,不可避免的会面临写冲突的问题,对于在SW26010上处理写冲突的问题,可以借鉴的经验比较少。4)分子动力学的计算部分非常复杂,一方面是除平方根这类耗时的数学计算,另一方面是在键角、扭转角和键级计算中需要的超越函数的计算量也很大,所以进行高效的向量化也是需要处理的问题。为了解决以上挑战,基于分子动力学模拟算法和神威·太湖之光超级计算机体系结构上的特点,本文针对分子动力学模拟过程中的数据读取、计算、数据更新和邻域索引等关键环节设计了相应的优化方案并开展了深层算法优化。此外,针对通用的算法优化环节,本文还设计并实现了面向神威平台的通用模块,这些模块不仅能够为分子动力学模拟算法的优化提供极大便利,而且还能很好的应用于面向神威平台的其它算法的优化和快速实现。具体来说,本文的主要贡献如下:1.设计了简洁高效的软件Cache策略以及深入优化的无表方法来解决SW26010处理器在分子动力学模拟的势函数计算中离散读取的问题。文中根据AMAT访存模型对软件Cache的设计中主要的性能指标进行了取舍,完成了高效的软件Cache实现。另外,根据SW26010处理器的特性,尝试了利用无邻接表方法来完成原子数据的离散读取。两种方法在实验中都可以匹配SW26010处理器的DMA机制并且充分利用SW26010处理器的内存带宽。2.设计了单端更新、混合更新和自适应更新框架来解决分子动力学模拟的势函数计算中离散更新和并行更新冲突的问题。单端更新采用计算换访存的方式来规避并行更新冲突,混合更新的方式将计算和更新分离,实现了计算并行化而更新串行化的模式,在不额外引入计算量的情况下实现了主从协同的高效更新方式。自适应更新框架使用观察者-执行者模式来完成低成本的副本归约机制,实现了无冲突的高效更新。三种框架适用于不同类型的势函数,都实现了对SW26010处理器内存带宽的有效利用。3.设计了基于向量混洗、参数剖面和无查表数学函数的向量化方式来提高势函数计算中的计算效率,同时引入了向量短路机制和格点-粒子截断过滤器来规避势函数计算中不必要计算部分。基于向量混洗、参数剖面、向量短路和无查找表数学函数的实现使得在本文对应的实现可以在向量化过程中应对分子动力学模拟中各种复杂的运算。向量短路机制和格点-粒子截断过滤器可以将模拟中的计算负载降低三分之一以上。4.设计了聚合扫描的邻接表构造方法和增量格点索引构造算法来加速分子动力学模拟中邻域索引的构造。聚合扫描的方法通过循环重构、访存聚合的方式来增大访存块,提高基于从核的邻接表构造中的数据复用率。增量格点索引索引构造算法充分利用了分子动力学中粒子运动连续的特性来提高算法中的访存局部性,从而在根源上规避分子动力学的邻域索引构造中全局随机访存的问题,实现了对格点索引构造非常有效的加速。5.设计了软件Cache库SWCache、无表的向量化数学函数库、性能采样库LWPF、调试库Libspc等工具来解决神威.太湖之光软件生态不完善的问题。这些工具不仅加速了本文研究的过程,也对其他基于神威·太湖之光的研究有所帮助,其中SWCache和LWPF在SW26010的从核编译器没有C++支持的情况下采用的封装模式也对未来基于SW26010和神威系列超级计算机的应用开发有借鉴价值。本文在神威·太湖之光上,利用已有的分子动力学软件LAMMPS和AM-BER,以及 自主编写的分子动力学软件 ESMD 对本文中设计的优化方法进行了测试和验证。在测试中,本文中的设计与实现在SW26010处理器上可以接近或超出同代商用处理器的性能,并且在大规模扩展中实现了 16384节点上对2 750亿原子的模拟,并达到2.43 PFlops每秒的持续浮点性能。
其他文献
2005-01—2007-12,笔者采用自拟参芪化瘀汤治疗冠心病心绞痛气虚血亏证50例,取得较好的临床疗效,总结报道如下。
《幼科释谜》是清代医家沈金鳌撰著的《沈氏尊生书》5种《杂病源流犀烛》、《伤寒论纲目》、《妇科玉尺》、《幼科释谜》、《要药分剂》之一,乃沈氏根据师传、临证经验而论治
目的:探讨中老年人肾虚证与红细胞补体受体I型分子(CRl)及其基因多态性的关系。方法:采用聚合酶链反应(PCR)和Hindm酶切技术测定红细胞CRl分子基因型。采用酶联法定量测定红细胞CRl
目的:本研究旨在探讨金桔精油在脂多糖诱导的肺炎小鼠与博来霉素诱导的肺纤维化大鼠中的保护作用研究。方法:先建立KEO对LPS诱导的肺炎小鼠的保护作用研究的ALI模型,将雄性KM小鼠72只随机分成溶媒对照(Control)组、LPS组、地塞米松(DXMS)组、KEO(45.5,91,182 μl·kg-1)组,连续给药 7 天(ig),观察各小鼠生理状态,末次灌胃1h后除溶媒对照组外行腹腔注射LPS
各市、县(区)人民政府,省政府各部门:鉴于人事变动和工作需要,经省政府研究,决定对省风景名胜区规划委员会组成人员进行调整。现将调整后的组成人员名单通知如下:
各市、县(区)人民政府,省政府各部门:2007年《江西省推进城镇居民基本医疗保险的指导意见》实施以来,我省逐步建立了城镇居民基本医疗保险制度体系,较好地保障了城镇居民的基本医疗
天冷雁归。曾经为推动工业化和城市化进程创造我国30年改革开放辉煌贡献青春热血、立下汗马功劳的农民工,如今由于美国次贷危机引发的世界经济“寒潮”部分非正常返乡。农民工
各市、县(区)人民政府,省政府各部门:《江西省环境保护先进县(市、区)评选暂行办法》已经省政府同意,现印发给你们,请认真贯彻执行。
在电子信息高速发展的今天,对脉冲信号的参数测量显得越来越重要,各个学科领域对脉冲信号参数的测量也越来越多,同时也对测量精度有了更高的要求。脉冲信号中包涵很多重要的