1) 面向多核CPU/众核GPU 架构的非结构CFD 共 享内存并行计算技术研究 张健1, 2,李瑞田2,邓亮2, *,代喆2,刘杰1,徐传福1 2)摘要 针对现代高性能计算机架构开展非结构CFD节点内共享内存并行,是提升浮点计算效率、实现更大规模流体仿 真应用能力的关键。然而由于非结构网格CFD计算存在拓扑关系复杂、数据局部性差、数据写冲突等问题,传统算法如 何共享内存并行化以高效发挥多核CPU/众核GPU的硬件能力,成为一个重大的挑战。从一个工业级非结构CFD软件出 发,通过深入分析其计算行为和访存模式,设计实现了多种共享内存并行算法,采用了网格重排序、循环融合、多级访 存等数据局部性优化技术进一步提升性能。特别的,面向多核CPU架构,系统开展了循环级与任务级两种并行模式的对 比研究;面向众核GPU架构,创新地提出了一种基于多级访存优化方法的规约并行策略。利用M6机翼和CHN-T1飞机算 例对所有并行算法及优化技术进行了全面验证与评估。结果表明:在多核CPU平台上,基于剖分复制的任务级并行策略 性能最好,采用Cuthill-McKee重排序以及循环融合分别使整体性能提升10%。在众核GPU平台上,基于多级访存的规约 策略具有显著的加速效果,优化后热点函数的性能相比优化前提升了3倍,相比CPU串行性能整体加速比可达127。 3)实验平台 测试用例及环境 为了分析不同并行算法的性能及相关优化技 术的效果,分别采用ONERA M6机翼(图 10)及 CHN-T1运输机标模[27](图 11)的三维非结构网 格开展了性能测试。其中M6的测试网格按体单 元数目规模分四个层次:粗(12万)、中(80 万)、细(360万)和极细(1000万)。CHN-T1 的网格规模分粗(600万)和细(1700万)两个 层次。 x86 节点的CPU 为Intel(R) Xeon(R) Gold 6258R @2.70GHz,每个节点两路CPU共58个计 算核心。GPU工作站配置为Intel(R) Xeon(R) Platinum 8368 CPU @2.40GHz以及NVIDIA A100 PCIe 80G加速卡。 4)最终效果 利用优化前后的GPU并行程序对 CHN-T1粗细两套网格进行了计算,统计了相比 CPU串行计算,各个子模块以及程序整体运行时 间的性能加速比,如图 19所示。可以看到加速效 果非常明显,程序整体运行的加速比能达到 127。特别是通量计算部分,子程序的加速比可 以达到400以上,因为通量计算部分大部分都是 面循环,通过规约加SMEM优化的策略在解决数 据竞争问题的基础上缓解了间接访存情况,并且 提升了数据局部性。LU-SGS算法部分加速比略 低,是因为隐式求解算法固有的串行属性,这里 采用了简单的体着色并行策略,性能依然有提升 空间,后续还将继续深入研究。 串行127倍,CPU 28核,芯片问题并行加速为5倍左右。 |
说点什么...