Page 322 - 《软件学报》2021年第9期
P. 322
2946 Journal of Software 软件学报 Vol.32, No.9, September 2021
Key words: Sunway TaihuLight; molecular dynamics; iteration; heterogeneous; synchronization
分子动力学模拟是考察系统随时间演化的行为 [1,2] .在一定时间内,靠计算机模拟分子和原子体系运动,广
泛应用于物理、化学、生物等领域.用分子动力学模拟微观生物现象如蛋白质折叠 [3,4] 所需时间尺度为毫秒,为
12
捕获原子震荡现象,每个迭代步设为 1fs~2.5fs,模拟总时长若为毫秒,需要 10 个迭代步.相邻两个迭代步间具有
相关性,需要一次通信,而频繁通信成为此类问题计算性能的主要瓶颈.
时间演化类问题从时间轴来模拟体系演化.时间被离散化为一定步长为间隔的时间点,下一个时间点的状
态依赖上一个时间点的状态,两个状态之间需要一次通信以交换数据.典型的应用是分子动力学模拟 [5,6] ,分子
沿着这些时间点运动,每个时间点对应分子的一个状态.分子在 t 时刻的状态用向量 X(t)表示,记录 t 时刻所有粒
子的位置,速度等状态信息.t+1 时刻的状态 X(t+1)由 t 时刻状态 X(t)演算而来,即 X(t+1)=f(X(t)).因而,不同时刻粒
[7]
子状态间的关系是相互依赖的,需要通信.而神威上的通信延迟较长 ,包括网卡上的通信延迟以及较长的数据
通路所带来的通信延迟都太长了.此类计算模式的时间演化类程序在高延迟的神威集群上如何优化,规避通信
延迟,提高性能,是本文的宗旨.
神威太湖之光超级计算机以理论峰值 125.4PFLOPS/s 位居世界第一,其 SW26010 处理器是针对神威定制
的多核处理器,每个处理器由 4 个核组组成,每个核组包含 1 个主核和 64 个从核.神威超级计算机上共安装了
[9]
[8]
40 960 个 SW26010 处理器,共 10 649 600 个核 .在神威上,大部分应用是以一个 CPU 作为单位编程 ,只用 4
个核组中的一个核组进行计算和通信,如图 1 所示.CPU 上的 4 个核组共享一个网络端口,若问题规模不变,这就
迫使我们充分利用所有核组的计算能力,以提高性能,如图 2,4 个主核同时计算和通信.由图可见,两种模式的区
别是:(1) 进程数不同;(2) 消息个数不同.设问题规模为 N,进程个数为 P,模式 1,进程上任务量为 N/P,消息个数
m.模式 2,每进程上任务量 N/4P,消息个数 4×m.消息个数增加了 4 倍,因而带来了通信延迟.如何在以核组为单位
的编程模式中减少消息个数,优化通信延迟.
如图 3 所示,每个 CPU 只选一个进程用于与外界通信 [10] ,片上所有核间的数据同步是通过共享片外存储来
实现,减少了用于通信的进程数,即实现了消息个数的减少,优化了通信延迟.这是神威上较快的共享数据的方
[7]
式 ,但由于多核访存需要经过访存队列,这种方式仍然较慢,带来访存延迟.
系统接口 系统接口 系统接口
Msg Msg Msg Msg Msg
Msg Msg Msg Msg
Fig.1 Node master process mode Fig.2 Core groups programming Fig.3 Reducing the number of processes
图 1 节点主进程方式 图 2 核组为单位编程 图 3 减少进程数方式
针对诸如分子动力学模拟等延迟敏感的时间演化类应用,本文的主要贡献是,给出了完整的主从核异构的
国产神威处理器上的一系列优化技术,为类似的通信受限类程序提供了参考.
(1) 异构体系结构下核间同步的优化,采用共享内存等待与从核同步相结合的方式,优化访存延迟,进而
优化通信延迟;
(2) 改变计算模式,采取有利于减少核间数据关联和依赖关系的计算模式,减少相邻迭代步间的通信次数
和数据等待,优化通信延迟;
(3) 高效访存及规则化以提升性能.数据传输与计算重叠,以优化从核访主存效率.规则化数据结构以提