版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
“新工科建设之路·计算机类专业系列教材混合架构超算并行程序设计与应用异构混合架构上并行应用程序开发示例第九章01MISA-MD分子动力学模拟程序异构优化MISA-MD分子动力学模拟程序异构优化分子动力学模拟是指依靠牛顿力学来模拟系统中分子之间运动的方法,由系统中的微观样本经过积分等计算体现为宏观上的空间位置信息、热力学量等性质。本章的分子动力学模拟软件MISA-MD可用于模拟材料在辐照下,受到高能粒子撞击,发生级联碰撞,造成离位损伤,进而产生大量缺陷并不断演化的过程。由于计算高能粒子撞击对应的模拟体系往往较大,计算复杂度较高,因此对计算性能要求较高,需要开展面向异构的优化。分子动力学模拟概述MISA-MD分子动力学模拟程序异构优化对分子动力学算法设计而言,在DCU/GPU硬件上进行的势函数异构加速的计算也遵循该模式,即分四个步骤:粒子数据从主机内存复制到设备内存:启动一个核函数(或算子)进行势函数计算,计算结束后,数据从设备端复制回主机端:进行后续的CPU端的计算和MPI通信。在DCU和GPU平台上进行势函数计算的挑战性问题是,主机端与设备端来回的数据传输,可能会影响程序性能,必须设计高效的数据传输模式及其优化方法;面向DCU上的算子计算,需要研究高效的计算策略,进行访存模式的研究与计算优化的研究,最终充分利用设备的高访存带宽和计算能力。面向DCU的MD优化的挑战性及优化思路MISA-MD分子动力学模拟程序异构优化主机-设备间通信及其优化1.双缓冲优化双缓冲区是一种常用于异构架构上的用于重叠计算和数据复制的优化方法。得益于MISA-MD的粒子存储数据结构,其采用连续的内存布局来进行粒子信息的存储,因此可以将粒子数组划分为n个数据块(一个数据块称为“batch”或者“批次”),之后每个数据块上对应的数据复制与计算任务可以分开处理。可以在计算数据块的同时,将数据块i-1从设备端传输到主机端,并同时将数据块计i+1从主机端传输到设备端,从而实现计算与数据复制任务的重叠。MISA-MD分子动力学模拟程序异构优化主机-设备间通信及其优化2.pinnedmemory主机端的数据分配默认是可分页的,这可能会导致额外的数据复制(先将可分页的内存复制到一个临时页锁定内存,再传输到设备内存)。CUDA和ROCm都提供了页锁定内存(pinnedmemory或者lockmemory)下的快速数据传输模式。因此,通过申请pinnedmemory,可以直接将粒子数据放到pinnedmemory中,计算时可直接将其从页锁定内存复制到设备内存中,从而省去从可分页内存到临时的页锁定内存间额外复制的开销。MISA-MD分子动力学模拟程序异构优化主机-设备间通信及其优化3.SoA(StructofArray)数据排布在之前的CPU版本的分子动力学的计算中,粒子是以AoS(ArrayofStruct)格式进行组织的(如图9-2所示),主要是为了便于编程与扩展。但是,这种数据排布方式在GPU或者异构平台上,可能会带来额外的数据复制开销。MISA-MD分子动力学模拟程序异构优化4.通信优化效果图9-4展示了通信优化方法的测试结果。与基准的DCU版本相比,独立的pinned内存优化可以实现大约67%的通信性能提升。如果再加上SOA数据结构改进的优化,与基准的DCU版本相比,还可以继续获得253%到268%的通信性能提升,以及降低超过83%的数据复制开销。主机-设备间通信及其优化MISA-MD分子动力学模拟程序异构优化如图9-5所示,当采用更多的批次时,更多的通信开销可以被粒子受力的计算所隐藏,因此可以获得更多的性能提升。主机-设备间通信及其优化MISA-MD分子动力学模拟程序异构优化并行计算策略数据复制部分优化后,可以考虑核心计算部分的优化。为此,我们设计了三种并行计算策略:一个线程计算一个粒子受力的策略(thread-atom)、一个wavefront计算一个粒子受力的策略(wavefront-atom或wf-atom),以及一个Block计算一个粒子受力的策略(block-atom)。thread-atom不仅考虑了线程访问中心粒子的访存合并,还考虑了邻居粒子的访存合并。而另两种计算策略仅仅考虑了邻居粒子的访存合并效果,而且可能会存在分支分歧。综合分析,thread-atom策略的访存性能会更好。MISA-MD分子动力学模拟程序异构优化其他访存优化技术除了以上的不同计算策略对核心计算方程的性能影响,我们针对thread-atom计算策略进行了进一步的性能优化。主要考虑三点:一是采用SOA数据结构带来的收益,减少了不必要的数据load和store开销;二是将访问邻居粒子的偏移索引进行排序,实现临近的邻居粒子能够马上被访问,从而提高cache的数据重用能力;三是采用LDS来存储偏移索引,这样就不用每次都从设备内存中加载,而是直接从LDS中读取,提高了偏移索引的访问效率。MISA-MD分子动力学模拟程序异构优化其他访存优化技术实际上,很多程序的优化都是关于访存优化的。在DCU上,需要重点设计好计算策略和数据结构,充分利用硬件的访存合并特性和cache的数据重用能力。此外,还可以通过LDS进行常用数据的缓存,避免过多的直接访存操作。同时,主机端和设备端之间的数据传输也可能是程序的性能瓶颈,可以考虑采用pinnedmemory、双缓冲等机制同时充分考虑好数据组织方式,做到尽量减少数据传输量和数据传输次数。02SUMMER-CDSUMMER-CD软件介绍对裂变气体的微观演化行为进行精细化模拟能够帮助我们了解及预测核燃料工况条件下的辐照性能。团簇动力学方法是近年来在核燃料研究领域快速发展的数值模拟方法,能够有效地进行裂变气体在核燃料内的动力学行为模拟,但因其计算量的需求十分庞大,限制了其应用的场景及模拟尺度。SUMMER-CD基于空间团族动力学模型,结合多种优化方法,在曙光超算异构体系架构上进行了加速团簇动力学算法的设计。SUMMER-CD物理模型团簇动力学是基于平均场速率理论发展而来的数值模拟方法,通过建立不同尺寸团簇浓度的速率方程,来计算团簇的尺寸分布及随时间的演化过程。由于其对不同尺寸团簇的动力学行为能够进行良好的描述,因此是描述裂变气体气泡(气体原子团族)演化的有效模型,目前已应用于裂变气体扩散、气泡成核、高燃耗结构下的裂变气体释放等方面的研究。团簇动力学使用一个主方程对缺陷团簇浓度随时间的变化进行描述,方程各项表示团簇在反应中的各种过程,最终转化为对一组刚性微分方程组的求解。SUMMER-CD三层并行模型基于空间依赖的团簇动力学模型是以网格为单元,将空间区域分割开来,并在每个网格内对不同尺寸的气体团簇随时间的浓度及数密度变化进行求解的。本节基于全尺寸空间依赖的团簇动力学模型,结合曙光超算CPU-DCU异构架构特点,设计了团簇动力学计算模拟的三层并行模型(three-hierarchyparallelmodel)。SUMMER-CD自适应异构数据传输在目前设计的核燃料裂变气体团簇动力学求解算法中,DCU负责团族浓度初值计算方程组系数计算等,CPU端负责偏微分方程组的求解及与邻居进程的通信,因此在每个时间步,CPU与DCU之间需要进行数据交换,来更新各自的数据。频繁的CPU与DCU之间的数据交换对计算效率是一个很大的影响,本书基于核燃料裂变气体模拟的特点,设计了自适应异构数据传输(adaptiveCPU-DCUdatatransfer)方法。SUMMER-CD基于Stream的计算通信重叠CPU与DCU之间的数据传输是在DCU上进行核燃料裂变气体CD计算带来的额外开销,严重影响计算效率。为了进一步优化数据交互部分,本节将CPU与DCU之间的数据传输和CPU的计算任务进行重叠,来掩盖部分CPU与DCU之间的通信时间,以提高计算效率。将DCU计算后的结果向CPU传输的部分与CPU进行方程矩阵填装的计算任务进行拆分,形成“流”的作业方式,有效地掩盖部分CPU-DCU通信时间。03有限体积法求解圣维南方程组在神威·太湖之光上的优化有限体积法求解圣维南方程组在神威·太湖之光上的优化圣维南方程组是一个用于精确刻画洪水在河道中演化的方程组,在水文模拟领域常用于计算河道洪水演化过程。使用圣维南方程组进行河道汇流模拟,可以有效提高模拟程序对流域水系在时间和空间尺度上的描述与模拟能力,同时能够提高模拟结果的精度,对模拟精度要求较高的场景有着重要的应用价值。使用有限体积法求解偏微分方程组,需要将计算区域进行网格划分,每个网格周围有一个互不重叠的控制体,将待求的控制方程在每一个控制体上积分,继而可以得到一组在控制体上满足守恒规律的离散方程物理模型简介有限体积法求解圣维南方程组在神威·太湖之光上的优化Athread线程库是针对SW26010处理器的主从加速编程模型所设计的加速库,相比OpenACC而言编程难度更大,但可以灵活、快捷地对核组内的从核进行控制和调度,提供更加细粒度的并行性,能够充分发挥从核阵列的加速性能,从而深入挖掘程序的优化潜力。主核加速线程库提供了用于控制线程组初始化、创建、分配任务和终止环境等供主核程序使用的操作接口,而从核加速线程库则提供了用于从核线程标识、核组内同步和DMA读写等供从核程序使用的操作接口。使用Athread线程库加速有限体积法求解圣维南方程组在神威·太湖之光上的优化在主程序中,首先要声明从核函数的接口,并调用athread_init()函数来完成加速线程的初始化。当主程序运行到需要加速的代码段时,调用athread_spawn(slave_fun,(void*)param)方法,创建从核线程组,将从核函数加载到从核上执行。之后从核完成局存内部本地变量的定义、绑定线程号、从主存读取数据、执行从核函数中的计算任务,然后将结果回传给主核所在的主程序。使用Athread线程库加速有限体积法求解圣维南方程组在神威·太湖之光上的优化使用Athread线程库加速有限体积法求解圣维南方程组在神威·太湖之光上的优化使用Athread线程库加速对两个从核函数func_Fplus_hu()和func_Fminus_hu的编写,实现的大致步骤可以表示如下。定义LDM中的本地变量。获得从核ID和要计算的单元数n。根据单元数n在LDM中开辟存储空间。将要计算的数据通过DMA方式从主存读入LDM中。有限体积法求解圣维南方程组在神威·太湖之光上的优化使用Athread线程库加速判断所有数据是否都已成功读入LDM中。完成核心段的计算。将计算结果通过DMA方式从LDM传回主存中。判断所有结果是否都已成功传回主存。释放在LDM中开辟的存储空间。有限体积法求解圣维南方程组在神威·太湖之光上的优化示例:stencil计算优化等到核组内所有从核都计算完毕后,在主核中调用athread_join()函数来回收结果,然后主核继续运行其他代码段。最后,当不再需要使用从核进行加速时,调用athread_halt()函数终止从核环境。对串行圣维南方程组求解程序的加速,先进行计算热点分析,得到计算热点函数在于FPlus函数和FMinus函数。在实现中,采用的是主从动态并行设计模式,即主核负责给各个从核分配各自的计算任务,完成加载操作,并等待接收计算结果,从核阵列负责完成对核心段的加速计算。有限体积法求解圣维南方程组在神威·太湖之光上的优化SIMD神威·太湖之光的SW26010处理器支持SIMD扩展,主核和从核支持的SIMD向量宽度均为256位。在圣维南方程组求解程序中,计算变量都是单精度浮点数,根据官方提供的编译系统用户手册,可以使用数据类型为floatv4的向量,把现有的计算改写为64*4的向量运算,即一次向量操作处理4个单精度浮点运算。有限体积法求解圣维南方程组在神威·太湖之光上的优化双缓冲机制多缓冲技术常用于消除图像在屏幕上的闪烁问题、网络传输中对数据的接收丢失问题和计算机的多级缓存机制等方面。为了解决这个问题,一般会在内存中设置多个图像缓冲区,当前显示的一帧画面存储在一个缓冲区中,而在显示这一帧的过程中,同时将下一图像提前加载到另一个缓冲区中,这样下一帧绘制的时间会大大降低,加快了图像的显示过程。同样,双缓冲机制也可以用到从核函数计算的加速上,双缓冲思想的本质是预取下一次要处理的数据。有限体积法求解圣维南方程组在神威·太湖之光上的优化优化效果对基于Athread线程库使用从核阵列加速后的圣维南方程组求解程序进行测试,串行程序和加速后的程序都使用sw5cc编译器进行编译。对用Athread线程库加速后的程序进行可扩展性测试,测试规模为:32000个控制单元模拟水文时间为60秒;提交作业
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课件制作工具的与评测
- 2025年家庭娱乐App用户体验设计
- 护理儿科护理课件分享
- 兽用生物制品制造工岗前评审考核试卷含答案
- 房产测量员班组协作能力考核试卷含答案
- 2026年新科教版高中高一生物上册第一单元细胞中的化合物检测卷含答案
- 道具制作工岗前环保及安全考核试卷含答案
- 白酒蒸馏串香工创新思维知识考核试卷含答案
- 胶印版材涂布液合成工班组建设水平考核试卷含答案
- 信用分析师安全宣教水平考核试卷含答案
- 企业并购的机遇与挑战分析
- 射线检测专业知识考试题库(含答案)
- 2024年全国统一高考数学试卷(理科)甲卷含答案
- 湖北省襄阳市2023-2024学年小升初语文试卷(含答案)
- 黑龙江省建筑工程施工质量验收标准(建筑地面工程)
- 第八课 良师相伴 亦师亦友
- 2023年南京市中考历史试题及答案
- 《公共政策评估》课件
- 350种中药饮片功能主治
- 蓄电池安装施工方案方案
- 健身步道建设项目可行性研究报告
评论
0/150
提交评论