Page 324 - 《软件学报》2021年第9期
P. 324

2948                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

         形成的势场下运动,运动方程遵循牛顿定律               [11] .牛顿方程如下:
                                               2
                                              d r
                                                   , =
                                           M i   =  Fi  1,2,..., N                            (1)
                                                   i
                                              dt 2
                                            F i =−∇ i Φ(r 1 ,r 2 ,…,r N )                     (2)
         其中:N 表示系统中的原子数;M i ,r i ,F i 分别表示原子 i 的质量、位移以及受力;Φ表示势函数,势函数需能够描述
         系统在时间演化的各个阶段,即原子各种状态下的相互作用.复杂系统的描述多采用多体势,本文研究的硅材
         料,原子间的作用势取决于原子间的距离以及原子间的成键方向                       [12,13] .硅原子间的多体作用模型采用典型的共
         价键势 Tersoff 势描述.Tersoff 势函数的数学表示为
                                             E =  E = ∑  1 ∑  V                               (3)
                                                   i      ij
                                                       ≠
                                                 i    2 i j
                                          V ij =f c (r ij )[f R (r ij )+b ij f A (r ij )]     (4)
             f R 为排斥势,f A 为吸引势,f C 为截断函数,b ij 为键级项:
                                            f R (r ij )=−A ij exp(−λ j r ij )                 (5)
                                            f A (r ij )=−B ij exp(−μ j r ij )                 (6)
                                         ⎧ 1,                                    r <  R
                                         ⎪         (r −  )⎤π  ij  ij
                                     () =
                                    f r   1  +  1  cos ⎢⎨  ⎡ ⎪  ij  R ij  , R < ⎥  r <  S     (7)
                                    c  ij  2  2  ⎢⎪  S −  R ij ⎥ ⎣  ⎦  ij  ij  ij
                                                    ij
                                         ⎪ 0,                                   r >
                                         ⎩                  ij  S ij
                                             b =  (1 βξ+  n  n − 1/ 2n                        (8)
                                                       )
                                              ij      ij
                                                                3
                                              ( ) (g θ =
                                      ξ      fr      )exp(λ  3 (r − ∑  r  ) )                 (9)
                                       ij    c  ik  ijk   3  ij  ik
                                         ki ≠  , j
                                                c 2      c  2
                                        g () 1θ =+  −                                        (10)
                                                d 2  d +  2  (h +  cos ) θ 2
             本文以分子动力学模拟中多体作用模型实现的单晶硅体系原子模拟为计算实例,说明这种计算模式的应
         用在神威集群上运行时所遇到的性能瓶颈,并给出几种优化技术.硅原子之间的多体作用模型采用 Tersoff 势函
         数 [14] ,该模型的特点是原子之间的相互作用依赖于原子所处的局域环境.每个迭代步将原子 t 时刻的状态推演
         到 t+1 时刻,更新原子状态时,需获得该原子的所有邻居原子的状态信息,即每个迭代步需要一次同步.原子之间
         的依赖关系具有局部相关性,因而导致一定的异步性.此类时间演化类问题,硅原子的状态是由时间来推进演化
         的,因此,不同迭代步之间是相互依赖的,需要一次通信.
             考虑常温下,硅晶体保持规则的金刚石晶胞结构,每个原子周围有 4 个邻近原子.如图 5 所示,硅原子 a 有 4
         个邻居原子 b,c,d,e,每个原子由不同线程计算.t 时刻,每个线程更新了 5 个粒子的位置信息,进入下一个迭代步.a
         原子的受力受到它的所有邻居原子的影响,需要得到 4 个邻居粒子的位置信息,来计算不同邻居对 a 的分子间
         作用力.因此,需要一次通信来获得所有邻居在 t 时刻的位置信息.
                                                    e

                                                  F ae
                                                    a  F ad  d
                                               F ab
                                                      F ac
                                              b           c

                                    Fig.5    Schematic of interatomic interaction
                                        图 5   硅原子间相互作用示意图

                                    12
             有效的原子模拟现象,需要 10 个迭代步,相邻迭代步间需要一次通信,那么在实验室环境下,观察到有效的
   319   320   321   322   323   324   325   326   327   328   329