




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 并行耗散分子动力学的研究 摘要 随着计算机技术的迅猛发展,应用高性能计算和一些新的算法进行分 子模拟的研究已经成为一个新的研究方向。耗散分子动力学( d i s s i p a t i v e p a r t i c l ed y n a m i cd p d ) 作为一种分子模拟的重要方法和工具已经在化工 理论研究和化学实验中起到了很重要的作用。但是d p d 模拟需要的计算 量比较大,因此随着计算的粒子数的增加其计算时间和负载度增长较快, 所以将d p d 程序并行化,应用一些并行算法对d p d 程序改造,可以缩短 计算时间,提高计算效率。本论文采用空间划分算法,使用m p i c h 将 d p d 程序并行化,2 节点并行加速比达到1 6 3 5 ,8 节点达到5 8 。另外由 于传统d p d 方法不能处理气体液体分相,因此不能模拟像动态润湿现象 等当今很多热点问题,本论文在相关理论指导下将d p d 程序改为多体耗 散分子动力学方法( m a n y b o d yd i s s i p a t i v ep a r t i c l ed y n a m i c sm d p d ) ,并 且用一个毛细管润湿的实验验证m d p d 程序的正确性。并且为了提高计 算效率,本论文用同样的并行算法对m d p d 程序进行了并行化改造,并 且模拟了一个当前的热点问题的超疏水现象的c a s s i e 模型,在多次模拟 后得到比较理想的实验参数的情况下,通过4 个计算节点达到了3 4 2 5 的 加速比,同时通过实验测得该并行程序有比较理想的负载平衡。并行计算 作为高性能计算的一种,应用于分子模拟领域,不仅可以对分子模拟起到 很大的作用,对高性能计算技术本身的发展也很有帮助,所以二者的结合 北京化t 大学硕士学位论文 具有重要的科学研究意义。 关键字:d p d ,m d p d ,m p i c h ,超疏水表面,并行d p d h a b s t r a c t r e s e a r c ho fp a r a l l e l i z a t i o no fd i s s i p a t i v e p a r t i c l ed y n a m i c ss i m u l a t i o n a b s t r a c t w i t ht h e d e v e l o p m e n to fc o m p u t e rs c i e n c ea n dt e c h n o l o g y , t h e r e s e a r c ho nt h em o l e c u l a rs i m u l a t i o nw i t ht h e h i g hp e r f o r m a n c e c o m p u t i n ga n d t h en e wa l g o r i t h ma r eb e c o m i n gan e wh o tt o p i c d i s s i p a t i v ep a r t i c l ed y n a m i c ( d p d ) ,a sa ni m p o r t a n tt o o lo fm o l e c u l a r s i m u l a t i o n ,h a sb e e nas i g n i f i c a n te f f e c ti nc h e m i c a lr e s e a r c h e sa n d e x p e r i m e n t h o w e v e rd p dm e t h o dn e e d sm a n yc o m p u t i n g r e s o u r c e sa n d l o n gt i m et oo b t a i nr e s u l t ,a n dw i t ht h ep a r t i c l e si nd p di n c r e a s i n g ,t h e c o m p u t i n gt i m ew o u l db es o a lt h u si ft h ed p ds e r i a lp r o g r a mi s p a r a l l e l e db ys o m ep a r a l l e la l g o r i t h m s ,t h ec o m p u t i n gt i m e w o u l d d e c r e a s ea n dt h er e s o u r c e sw o u l db es a v e d t h i sp a p e ru s e st h e s p a c e - d i v i d e dm e t h o di nt h ep a r a l l e ld p dp r o g r a ma n dt h ep r o g r a mi s r e w r i t t e nw i t hm p i c h t h er e s u l t sa r ei d e a la n dt h es p e e d - u pr a t i o sa r e u pt o1 6 3 5a n d5 8b y2a n d8c o m p u t i n gn o d e sr e s p e c t i v e l y b e s i d e s b e c a u s et h et r a d i t i o n a ld p dm e t h o dc a nn o ts o l v es o m en o n t r i v i a l t r a n s i e n tp r o b l e m so fc a p i l l a r yd y n a m i c s ,t h i sp a p e rr e w r i t e st h ed p d p r o g r a mt om d p d ( m a n y b o d yd i s s i p a t i v ep a r t i c l ed y n a m i c s ) p r o g r a m 1 1 1 北京化t 人学硕i j 学位论文 u n d e rt h er e l a t e dt h e o r ya n ds i m u l a t e st h ec a p i l l a r yd y n a m i c st op r o v et h e r a t i o n a l i t yo fm d p ds e r i a lp r o g r a m a n df o ri m p r o v i n gt h ee f f i c i e n c y , t h em d p dp r o g r a mi sm o d i f i e dt op a r a l l e lm d p dp r o g r a m t h i sp a p e r s i m u l a t e st h ec a s s i em o d u l e ,w h i c hi so n eo fs u p e r - h y d r o p h o b i c i n t e r f a c e ,w i t hp a r a l l e lm d p dp r o g r a ma n dt h es p e e d - u pr a t i oi s3 4 2 5 u s i n g4c o m p u t i n gn o d e s ,a ts a m et i m eo b t a i n i n ga ni d e a ll o a db a l a n c e p a r a l l e lc o m p u t i n g ,a so n eo fh i g hp e r f o r m a n c ec o m p u t i n g ,a p p l i e sf o r t h em o l e c u l a rs i m u l a t i o n ,w h i c hc a nn o to n l yi m p r o v et h em o l e c u l a r s i m u l a t i o nb u ta l s ol a r g e l yp r o m o t et h ep a r a l l e lc o m p u t i n gt e c h n o l o g y i t s e l f t h e r e f o r ea s s o c i a t i n gt h et w os u b j e c t sa r es i g n i f i c a n tt os c i e n t i f i c r e s e a r c h k e yw o r d s :d p d ,m d p d ,m p i c h ,s u p e r - h y d r o p h o b i ci n t e r f a c e , p a r a l l e ld p d i v 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进 行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任 何其它个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要 贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明 的法律结果由本人承担。 作者签名:刍日期:呈噬丛? 乏茎 关于论文使用授权的说明 学位论文作者完全了解北京化工大学有关保留和使用学位论文的规 定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京化工大 学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允 许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内容,可 以允许采用影印、缩印或其它复制手段保存、汇编学位论文。 保密论文注释:本学位论文属于保密范围,在解密后适用本授 权书。非保密论文注释:本学位论文不属于保密范围,适用本授权书。 作者签名:垂堑 导师签名:磁导师签名:多陵 日期: 日期: 第一章绪论 第一章绪论 1 1 研究背景 并行计算技术的研究与发展已经经历了半个多世纪。一方面,并行计算技术 的研究与发展为其它科研领域,例如物理学、化学以及生物学,提供了强大工具, 另一方面这些领域对计算的要求也推动了并行计算本身的发展【l 】。并行计算技术 可以应用到涉及核技术的研究、生物信息工程、石油勘探、计算化学、天气和地 震预报等诸多领域。并行计算已经成为推动科技创新、社会进步的重要技术之一 【2 】。 1 1 1 并行计算研究背景 并行计算作为一门学科,首先就本身来讲研究的是并行计算模型。并行计算 模型是并行编程人员与计算体系结构之间的一个桥梁,也是并行算法设计和分析 的基础。它屏蔽了并行计算机机之间的差异,从并行的计算机中抽象出若干个能 反映并行计算特性的可计算的或可测量的参数,并按照并行计算模型所定义的计 算行为构造成本函数,由此对相应的算法进行复杂度分析【3 】。 并行计算模型的发展也经历了几个阶段:并行计算模型的第一代是共享存储 模型,如s i m d s m 和m i m d s m ,模型的主要参数是c p u 的单位计算时间,这 样科学家可以忽略一些硬件设备的细节。第二代是分布存储模型,在这个阶段, 随着计算机计算速度的发展,人们逐渐意识到对并行计算性能带来影响的不仅仅 是c p u 的性能,还有通信带来的延迟。因此如何把不同的通信性能抽象成模型 参数,称为这个阶段的研究重点。第三代是分布共享存储模型,也是目前的研究 阶段,随着网络通信技术的发展,通信延迟的影响越来越小,对并行带来的影响 不再像以前那样重要,转而注重计算系统的多层次存储特性的影响。 算法是求解问题的方法和步骤。并行算法,就是在并行计算机上用多个处理 单元联合求解问题的方法和步骤。然而在现实中,并行是客观存在的普遍现象, 关键问题在于能不能很好的变成计算机语言。并行算法的发展经历了几个阶段: 2 0 世纪7 0 到8 0 年代,并行算法的研究处于高潮;然而到2 0 世纪9 0 年代却跌 入低谷;当前,并行计算的研究又成为研究的热点。现在,一般的并行计算都运 行在集群服务器上。 并行算法研究的另外一个关注点是并行算法的设计技术。当前的并行算法主 北京化- t 大学硕l :学位论文 要有划分法、分治法、平衡树法、倍增法指针跳跃法、流水线法和破对称法等。 另外人们还可以根据问题的特性来选择适合的设计方法。 再回到并行计算的模型,当前两种最重要的并行编程模型是数据并行和消息 传递。数据并行的编程模型的级别比较高,程序设计也相对简单,但是它仅适用 于数据并行问题;而消息传递编程模型的级别相对较低,但消息传递编程模型则 有更广泛的应用范围。 数据并行是对于不同的数据使用相同的操作,编程者使用一个全局的地址空 间。而且一般这种形式的语言自身就提供并行执行的语义,因此对于使用这种程 序的编程者来说,只需要简单地说明执行什么样的并行操作以及并行操作的对 象,就可以实现了数据并行的编程。 与之相对,消息传递即各个并行执行的计算单元之间通过传递消息来交换信 息,实现同步等执行控制。消息传递一般面向的是分布式内存,但也可适用于共 享内存的并行计算机。消息传递为编程者提供了更加灵活的控制手段和实现并行 的方法,些用数据并行方法很难实现的并行算法,都可以用消息传递模型来实 现。很好的灵活性以及控制手段的多样化,是消息传递并行程序使用率比数据并 行高的重要原因。 1 1 2 分子动力学研究背景 分子动力学方法是一种使用计算机模拟的实验方法,是研究像凝聚态系统等 分子运动的有力工具。该技术不仅可以从微观上得到原子的运动轨迹或是运动过 程中各种微观细节,还可以从宏观上分析整个系统的变化情况。该方法是对理论 计算以及实验的强有力补充和辅助。现在已经广泛的应用于材料科学,生物物理 和药物设计等。一般的分子( m o l e c u l a rd y n a m i c sm d ) 模拟,系统规模一般可达 到数万个原子,模拟时间长度一般也为纳秒量级。 耗散粒子动力学是对于具有动态以及流变性质的简单及复杂的流体的一种 计算模拟方法,它是一个基于粒子的模拟技术。首先由h o o g e r b r u g g e 和k o e l m a n 设计提出,主要用于去解决分子动力学( m d ) 所无法解决的流体的时间和空间 尺度问题。之后e s p a n o l 以公式化形式提出,并做了相应的修改,来保证适当的 热平衡态。 1 2 课题意义 2 第一章绪论 分子模拟经过了长时间的发展,已成为化学、物理、生物、材料研究等学科 中的有力工具,是人们在实验和理论研究之外,了解、认识微观分子世界的另外 一种重要的手段。 另一方面,随着分子模拟研究的深入,该领域越来越多地使用高性能计算技 术来解决科研中的实际问题。因此高性能计算在分子模拟领域的应用的发展不但 促进了化工领域的发展,也体现了高性能计算在辅助其它学科方面有很大的发展 和应用空间,也可以说是高性能计算的一个发展。 1 3 本文的主要内容及研究工作 本论文主要是在原有d p d ( d i s s i p a t i v ep a r t i c l ed y n a m i c s ) 程序的基础上,提 出对其进行并行化的设计方案,对串行的f o r t r a n 程序进行修改,以提高d p d 程 序的效率,缩短运行时间。 并且通过多体耗散分子动力学方法( m a n y b o d yd i s s i p a t i v ep a r t i c l e d y n a m i c s ) 理论对d p d 程序进行修改,使其能够模拟包括超疏水表面等润湿现 象,并且并行化模拟了c a s s i e 模型。 论文的第一章绪论,纵观论文的全局;第二章主要介绍高性能计算的研究背 景;第三章主要对d p d 理论做了相关的介绍;第四章设计d p d 并行化方案并用 实验证明并行d p d 的效率;第五章主要介绍润湿现象以及m d p d ;第六章主要 是超疏水现象的并行化模拟;第七章是对全文的总结。 1 4 本文的主要创新点 本文的创新点主要在于以下几个方面: ( 1 ) 实现d p d 方法并行化; ( 2 ) 修改d p d 方法为m d p d 方法,使其能模拟动态润湿现象; ( 3 ) 实现了m d p d 的并行化。 1 5 本章小结 本章主要介绍了并行计算的背景和分子模拟的背景。总领了全文以及本课题 3 北京化t 火学硕l j 学位论文 的提出及意义。 4 第二:章耗散粒了动力学算法原理 第二章耗散粒子动力学算法原理 耗散粒子动力学是对于具有动态以及流变性质的简单及复杂的流体的一种 计算模拟方法,它是一个基于粒子的模拟技术。 2 1d p d 方法背景介绍 耗散粒子动力学( d i s s i p a t i v ep a r t i c l ed y n a m i c sd p d ) 是1 9 8 5 年由 h o o g e r b r u g g e 和k o e l m a n 提出的一种介于原子尺度与介观范围内的模拟方法 【4 】。该方法当前被e s p a n o l 及他的合作者修正过。d p d 模拟方法适用于复杂的流 体计算,例如聚合物或者胶态悬浮液等。这种模拟方法的优点在于能有效地探讨 分子的堆积与分散问题。 本论文使用d p d 方法作为基本的模拟方法主要是因为该方法非常适用于研 究分子动力学,因为它是一个典型的基于粒子的模拟方法。所谓的粒子具有粗粒 化的概念,每颗粒子的运动代表的是大量分子( 或原子) 的集体行为,而非分子 动力学模拟中跟踪单个分子( 或原子) 的运动行为【5 】。在d p d 的模拟方法中,相对 于分子动力学中分子( 或原子) 之间的势能来说,耗散粒子动力学中粒子之间的 相互作用会比较的软,因此,耗散粒子动力学所模拟的时间和空间尺度要比分 子动力学大。d p d 还可以理解为宏观的微分流动控制方程在小尺度上的随机描述, 从这个意义上说,d p d 方法是连接微观分子动力学方法和宏观流体力学方法的 一种类似于桥梁的模拟方法,是一种真j 下的介观尺度的模拟技术【6 j 。 d p d 模拟的体系最多可包含1 0 6 个粒子,并且主要是可以研究微秒时 间范围内的动力行为阴。 d p d 中的粒子在连续的空间和离散的时间步长下运动,粒子之间在一定范围 内相互作用( 从下一节的d p d 原理中可以更加清楚的看出粒子之间的作用力都是 与粒子之间的距离成反比关系的) 。粒子之间存在着三种两两相互作用力:保守 力、耗散力和随机力。在每一时间步长下( 时间步长越小模拟的结果就越精确) , 各个粒子在上述三种作用力的作用下获得新的速度开始运动,并且在运动过程中 可能与相邻的粒子发生碰撞。再经历了一系列运动之后粒子到新的位置。整个计 算过程经过在各时间步长下对粒子求解牛顿运动方程来完成,并且在宏观上来说 5 北京化t 大学硕l :学位论文 通过对整个模拟空间中的大量粒子在一定的时间内的位置、速度及受力情况等进 行统计、平均获得诸如流体的粘度、压力等系统参量,从而达到模拟的目的。 2 2d p d 模拟方法原理 首先根据牛顿运动方程,d p d 系统中各个粒子的位置,速度,加速度以及作 用力随时i 、日j 的变化规律为: d 上2 1 ,7 dt 。 虹:ft+f|dt 。 ( 2 1 ) ( 2 2 ) 式中:r i 和v i 为粒子i 个粒子的位置和速度矢量( 由于矢量是既有大小又有 方向的变量,所以本论文中将各矢量分解为x y z 个方向上的标量来分析和模拟, 但是在原理说明中依然用矢量来说明) ;为所有其它粒子( 不包括粒子i 本身) 作用在粒子i 上的作用力的合力;f 。为粒子所受到的外场力;t 为时间,即一个 时间步f 8 】。 d p d 系统中单位质量为单个粒子的质量,因此作用在每个粒子上的力的大 小等于粒子的加速度值。粒子之间的动力相互作用由耗散力和随机力组成。这两 部分作用相互补偿从而使得系统的平均动能为一恒定值。 丘包括保守力f c ,i j 、耗散力f d ,i j 和随机力f r ,i j 三部分,其中每一部分都 表示粒子之间的两两相互作用: f i = o f c + f + f j 、 ,i ( 2 3 ) 式中的求和符号对一定的截断半径r e 内所有的不包括粒子i 的其它粒子进行 求和( 若粒子之间的距离r i j r c 时,粒子之间的相互作用为零) 【9 】 保守力f c ,i j 为作用在两个粒子质心连线方向上的粒子之间的排斥力,可表 示为: ,c ,f ,2口j 1 一,i j ,。】,i 7 ( 2 4 ) 式中:a j j 为保守力系数,表示粒子i 与粒子j 之间最大的排斥力值;n j = r i - r j , 哟= 旧f ,囊i = r i j 蚓,r j 为粒子j 的位置,并且要求r 0 r c 时,w d = 0 ;v i i 为粒子之 间相对速度:删刊叼;v j 为粒子j 的速度矢量;丫为耗散系数,丫前面的负 号表明耗散力的作用方向总是和相对速度啊方向相反【1 0 】。 耗散力的作用总是阻止粒子之间的相对运动,因此耗散力作用的结果会降 低系统的动能。系统动能的降低将由随机力f r ,i j 引起的粒子的随机运动进行补 偿,随机力可表达为: f r ,扩= c rw r ( r u ) 4 u r u ( 2 6 ) 式中:w r 也为与粒子之间距离询有关的权函数,成为随机力权函数,当啕 r e 时w r = 0 ;毛i j 为随机变量,其平均值为零且方差为( 缸) ,a t 为时间步长;盯为 随机力系数。与保守力一样,随机力和耗散力也作用在粒子质心的连线方向【l l 】。 研究表明,式( 2 5 ) 、( 2 6 ) 中的2 个权函数相互关联,两者只能任取一个, 其相互关系可表达为: w d ( r u ) = w 2 r ( r u ) ( 2 7 ) 耗散力系数厂和随机力系数仃也相互关联,两者也只能任取一个: 仃2 = 2 ,k 口t ( 2 8 ) 式中:k b t 为系统的b o l t z m a n n 温度,与系统的涨落耗散理论相类似。将 k a t 作为能量的单位,则有: 仃2=2 y ( 2 9 ) 采用的权函数表达式为: w d ( r u ) = w2 r ( 勺) = 1 一勺厂c ( 2 1 0 ) 这种形式的权函数能够在粒子之间产生较强的耗散力,式( 2 1 0 ) 中, 取 r c = 1 【1 2 】。 2 3d p d 串行程序 本论文所使用的串行程序是由t h i j sj h v l u g t 根据p a g o n a b a r r a g a 、h a g e n 和 7 北京化工人学硕i :学位论文 f r e n k e l 的线性分子自构重组算法( l i n e a rm o l e c u l e ss e l f - c o n s i s t i n gi n t e g r a t i o n a l g o r i t h m ) 编写而成。使用的语言为f o r t r a n ,f o r t r a n 语言由于具有以数组区域 为单位并行计算的便利性,在并行计算中使用广泛,被成为科学计算的第一语言。 本项目所使用的串行程序的主程序由三部分组成:第一部分是运算区域范 围的构建和粒子的位置、速度的初始化;第二部分是程序的主体部分,即对粒子 所受的保守力( f c ) 、耗散力( f d ) 和随机力( f r ) 进计算,并根据牛顿运动 学定律计算出粒子的加速度、速度、位移,从而可计算出粒子到达的新位置,经 多次重复、迭代,根据耗散粒子动力学的原理,同种粒子会重新达到一个稳定的 聚集状态,从而模拟出粒子在混合模式下的聚集过程;第三部分是将粒子的新位 置和一些信息写入结果文件,并形成p d b 文件,可在一些仿真软件上,例如 r a s m o l 上显示出粒子聚合后的状态。 串行程序的流程图如图2 - 1 所示。 区域范围的构建和粒子位置的初始化 i - 1 ,n p 龇 t 计算出粒子受到的保守力、耗散力和随机力 ,并根据所受到的力计算出粒子的加速度、 速度、位移,从而重新确定粒子的位置。 输出结果,生成p d b 文件 图2 - 1d p d 串行程序的盒图 f i g 2 - 1d p d s e r i a lp r o g r a mb o xd i a g r a m 初始时,依据随机算法,为每个基本粒子和分子随机设置在运算区域中的三 维空间位置。在外加随机力及粒子之间保守力、耗散力的作用下,依据牛顿运动 定律,分子在n p a r t 步的循环模拟下,聚合在起。依据间隔时间不同,分子聚 合需要的步数也不同,一般来说,时间问隔越大,聚合所需要的步数越少。 2 4m p i c h 简介 本论文使用的并行库是m p i c h 。m p i ( m e s s a g ep a s s i n gi n t e r f a c e ) 是消息传 递并行程序设计的一个通用标准,当前的规范是m p l l 1 。现在m p l 2 0 的相关规 8 第二章耗散粒子动力学算法原理 范正在制定,并且支持m p i 的f o 以及进程管理规范。m p i 现在基本上已经成 为并行程序设计的工业标准。 m p i 的各种实现版本包括m p i c h 、l a m 、i b mm p l 等,而最常用也是最稳 定的是m p i c h ,本论文就是使用m p i c h1 0 作为m p i 的实现,通过实现可以看 到m p i c h1 0 可以很高效的完成各种实验任务【1 3 】。 下面简单介绍一下m p i c h 。m p i c h 具有三层结构,最上层是m p i 的各种 a p i ,基本实现的是点到点通信,以及在点到点通信基础上构造出来的集群通信 ( c o l l e c t i v ec o m m u n i c a t i o n ) ;中间是a d i 层( a b s t r a c td e v i c ei n t e r f a c e ) ,其中 设备( d e v i c e ) 可以简单地解释为一种底层通信库,a d i 则是对各种不同的这种 底层通信库的不同接口的一个统一标准;最下层是具体的底层通信库,例如工作 站机群上的p 4 通信库等。 而m p i c h1 0 1 2 以下版本都采用第一代的a d i 接口的实现方法,利用底层 d e v i c e ,也就是底层通信库所提供的通信原语和有关服务函数实现所有的a d i 接 口,可以直接实现,也可以依靠一些的模板间接实现。而自1 0 1 3 版本开始, m p i c h 采用第二代的a d i 接口。 2 5 本章小结 本章对耗散粒子动力学( d i s s i p a t i v ep a r t i c l ed y n a m i c sd p d ) 进行了背景介绍 和理论的分析,说明了由于d p d 是基于粒子的模拟方法,因此是一种非常适用 于分子模拟的方法。对d p d 串行程序使得该方法可以使用计算机来模拟,并且 可以得到比较直观的图像结果和在模拟过程中的相关数据的记录,例如粒子的在 各个时间点的位置,速度,能量等,以及整个模拟空间的相关数据。 9 第三章d p d 模拟算法的并行化 第三章d p d 模拟算法的并行化 3 1d p d 串行程序分析 由于传统的d p d 串行程序是基于空间中的粒子的,因此基于空间划分的方 法是一种可行的将d p d 串行程序改为并行程序的方法。由上一章我们可以知道 d p d 程序中会将计算空间分解成小的立方体,因此将这些小的立方体合理的划 分,再交给不同的计算节点去计算就可以得到比较好的结果。 3 2d p d 串行程序并行化 本论文首先来测量d p d 三种力( 保守力、耗散力和随机力) 的计算量占总 的计算量的百分比,以分析证明基于空间的划分的方式是一种正确的划分方法。 对于本论文的d p d 并行程序而言,选定的盒子大小,即运算的区域为3 0 x 3 0 3 0 的空间,基本粒子的数目为7 4 0 0 0 个,分子的数目为1 0 0 0 个,每个分子包含8 个基本粒子,总共8 1 0 0 0 个基本粒子。初始时,依据随机算法,为每个基本粒子 和分子随机设置在运算区域中的三维空间位置。在外加随机力及粒子之间保守 力、耗散力的作用下,依据牛顿运动定律,分子在n p a r t 步的循环模拟下,聚合 在一起。依据间隔时间不同,分子聚合需要的步数也不同,一般来说,时间间隔 越大,聚合所需要的步数越少。 在d p d 程序中会将计算空间分解成小的立方体,例如本论文将上述 3 0 * 3 0 * 3 0 的计算空间分解成为2 7 0 0 0 个1 1 1 大小的计算空间。在计算过程中 每个小计算空间内的粒子被视为一个计算单元,计算其中的保守力、耗散力和随 机力。 3 2 1 时间测试函数 从d p d 程序可以看出,该程序的核心计算量在与计算各个粒子之间的保守 力、耗散力和随机力,从而计算每个时间点上的速度,最后得到下一个时间点上 的位置即粒子的坐标。因此本文中的程序为d p d ( 耗散粒子动力学) 模拟程序, 北京化t 大学硕十学位论 为了研究并行的可行性和提高并行程序的效率,首先须对程序各个部分占用的时 间进行测量,因此,采用f o r t r a n 9 0 编写d p d 时间测试函数。经此子程序测试, 得出在d p d 程序中,主要耗费运算时间的力为保守力、耗散力和随机力,其中 占大部分时间的是保守力和耗散力,两者运行时间将近整个程序的9 0 。 时间测试子程序,测试的时问精确度可以达到m s 级,部分代码在下文中给 出: s u b r o u t i n ec o m p t i m e ( t m ,t i m e 0 ) i m p l i c i tn o n e r e a l * 1 6t m i n t e g e r :t i m e 0 ( 8 ) c a l ld a t ea n dt i m e ( v a l u e s = t i m e 0 ) t m = ( t i m e 0 ( 3 ) - 1 ) 宰2 4 书3 6 0 0 十t i m e o ( 5 ) * 3 6 0 0 + t i m e o ( 6 ) * 6 0 + t i m e o ( 7 ) + 基0 0 0 1 誊t i m e 0 ( 8 ) e n ds u b r o u ti n ec o m p ti m e s u b r o u t i n ew r i t e t i m e ( t i n , t i m e o ) i m p l i c i tn o n e i n t e g e r :t i m e o ( 8 ) r e a l * 1 6t m w r i t e ( 1 0 0 0 0 ,宰) t i m e o ( 1 ) ,一,t i m e o ( 2 ) ,一,t i m e o ( 3 ) , i t i m e o ( 5 ) ,:,t i m e 0 ( 6 ) ,:,t i m e o ( 7 ) ,:,t i m e 0 ( 8 ) ,v a l u e :,t m e n ds u b r o u t i n ew r it e t i m e s u b r o u t i n ew r i t e d u r i n g ( t m l 。t m 2 ) i m p l i c i tn o n e r e a l * 1 6t m l r e a l * 1 6t m 2 w r i t e ( 1 0 0 0 0 ,宰) d u r i n gt i m e = ,t m 2 一t m l e n ds u b r o u ti n e1 忙it e d u r in g 3 2 2 程序各部分所占时间比例 经过时间测试函数,对各部分的力进行测试,在w c c s 系统下,对d p d 程序2 2 步进行测试,每一步测试数据取出,按比例作图3 1 如下 1 2 第1 市d p d 模拟葬法的井 r 化 幽3 - 1 并部分力所 比例图 f i g3 - 1 t h es c a l e m a p o f t h r e e f o r c e s 由图中可以看出,在d p d 程序当中 几乎所有时间,验证了原先的推断 3 3d p d 并行算法的设计 主要是保铂- 力和耗散力,占了d p d 程序的 为以后程序的并行化提供了依据。 在分析d p d 串行程序后,有两种不同的并行设计方案,即将e 述三种作用 力并行以及采取基十空问划分的并行。 3 3i 根据力的并行化设计并行算法 虽然说由上图我们可以看出并行计算保,力和耗散力大约可以减少一般的 时间消耗,但是这种算法设计适合计算节点只有两个,因此如果想把并行程序扩 展到4 个,8 个或更多的节点上会有一定的困难。另外要针对应用修改串行程序, 这样不利于该并行d p d 程序放在集群服务器上运行。因为并行计算平台要求服 务程序具有一定的通用性。 从另外一个方面来讲,如果两个节点分别负责计算保守力和耗散力,那么就 需要在每一个计算步结束后交换所有的粒子的x ,y 和z 方向的坐标。因此可以 设想,一个具有8 4 0 0 0 个粒子的空问中,每个计算步要交换8 4 0 0 0 * 3 个d o u b l e p r e c i s i o n 数据类型的数据,这是很浪费时间和计算资源的。 所以基于上述原因考虑,本论文不采用这种并行算法,而采用居于空间划分 的并行算法柬计算。 北京n i 学i 学n 论 3 3 2 基于空间划分的并行算法设计 假设程序的运行的空间为3 0 3 0 x 3 0 0 3 0 ,而在d p d 系统中的基本单元是 也就是说在x ,y ,z 方向上的范围是 些离散的具有动量的粒子,每颗粒子的 运动代表的是大量分子( 或原子) 的集体行为,而不是分子动力学中单个的分子 或原子的运动行为d p d 系统中的的粒子在连续的空间和离散的时叫步长下运 动。粒子和粒子之e j 存在着= 种作_ i ;| j 力:保, f i 。力、耗散力和随机力,而这种相互 作用是存在于定的范围中的【h | ,也就是| 兑每个粒子受到的作用力和可作用的粒 子都是有一定的范围的,如图3 - 2 : _ j ? p 一? 、1 、7 、i 般来讲作用范倒取1 ,从l 章的公式2 - 4 ,2 - 9 中也可以看出,当r d ,r c 的取值一般来既是1 ,当州,r c 的时候三种作用力都为0 ,因此如果两个粒子之 间的距离人1 。1 ,则二者之删投有相互作用。 因此可以按窄问划分计算区域,然后分师在不同的计算节点上。这样可以在 保证程序正确的自u 提下提高运行效率。又因为计算空间是一个立方体,因此可将 这个立方体平均的划分成为两个,四个或者8 个对称的小立方体,因为d p d 算 法中粒子之间相互作用会使粒子尽量充满整个空间,因此所有子立方体所包含的 的粒子数基本相同,冈此负载基本平衡。 但是这样的区域划分存在边界问题( 本沧文中将两个子立方体相邻的界面成 为边界) ,即在边界附近的粒子小仅仅和本区域的粒子作用,还应该和相邻区域 的粒子作用,如果它们之f n j 的距离小于l 。如图3 3 : 第三章d p d 模拟算法的并行化 ,矿 ;区域a;区域b; 图3 - 3 边界粒子的相互作用 f i g 3 - 3t h ei n t e r a c t i o nb e t w e e np a r t i c l e si n s i d et h eb o u n d a r y 从图3 中我们可以看出区域a 中的粒子b 和同一区域中的粒子a 之间存在 相互作用,但是和相邻区域b 中的粒子c 也存在相互作用,所以如果单纯的将 计算空间划分成a 和b 放在不同的计算节点上去运算,粒子b 和c 之间的作用 力将会被忽略,而从整个空间的角度去看这种简单的划分等于两个不相关的计算 节点独立运行,而不是整个空间的并行计算,所以还要使用新的划分方案。因此 我们引入边界重叠区域划分。 为了避免结果会出现误差,也就是串行计算的结果会不同,所以要重叠划分, 如图3 4 : 。 y o o (刁 、 (刁 o1 41 51 63 0 图3 - 4 边界重叠区域划分 f i g 3 - 4t h eo v e r l a p d i v i d e dm e t h o d 边界重叠区域划分就是将区域a 和区域b 的边界重叠,例如空间大小是 1 5 北京化t 人学硕l j 学位论 3 0 * 3 0 * 3 0 ,因此在x 方向上的范围是0 3 0 ( 以下的作用范围都是在x 坐标方向 上讨论的) 。区域a 在x 轴上的范围是0 - 1 6 ,而区域b 的范围是1 4 3 0 ,这样两 个相邻的区域就有一个公共区域1 4 1 6 ,也就是说处于相重叠域中的粒子的数据 是包含于两个子空间,换句话说就是相邻的计算空间存在冗余数据。 3 3 3 数据交换算法 数据交换的目的就是交换那些重叠区域中的粒子,也就是在上个例子中的a 区域中x 轴方向上的1 4 1 6 的粒子和b 区域中x 轴方向上的1 4 1 6 的粒子相互 交换,从而达到这些冗余数据的一致性。因为在一个计算区域中,如图3 - 4 ,例 如区域a 中0 1 5 中的数据可以认为是正确的。 在d p d 中认为粒子之间的作用在大于1 的距离下是为o 的,所以这样划分 可以认为0 1 5 空间范围内的粒子之间的作用是正确的,也就是和0 3 0 空间范围 中得到的结果是一样的。这样划分的实质是将0 3 0 的区域分为两个区域a 和b , 范围大小分别是1 5 ,即区域a 是0 1 5 ,而区域b 是1 5 3 0 ,但是在边界重叠区 域划分中区域a 的范围是0 1 6 ,这样就可以保证o 1 5 的范围内的粒子所受到的 作用是完整的,而误差出现在1 5 1 6 的范围内。然后再将两个区域放在两个计算 节点上计算,计算几个时间步以后,区域a 和区域b 交换重叠区域的粒子信息, 这样可以保证两个计算节点上的粒子信息数据是正确的。 所以我们所要做的就是用区域b 中的1 5 1 6 范围内的粒子来替代区域a 中 1 5 1 6 的数据,同时用区域a 中的1 4 1 5 范围内的粒子来替代区域b 中1 4 1 5 的 数据,这样的目的是保证所有的所有计算节点的冗余数据统一,从而避免误差。 3 3 4 并行d p d 程序 并行程序可以是2 节点,4 、8 或1 6 节点,但是无论是多少节点都由0 号节 点作为根节点,读写数据。包括程序开始时读取初始数据以及初始化各个粒子的 位置和速度,程序结束时写结果文件,例如p d b 文件。 在0 号节点初始化以后,会把数据广播到其它计算节点,在进入循环步以后 每个节点依据空间位置会从所有粒子中提取属于自己的粒子,然后计算。在计算 结束后所有计算节点将数据收集到0 号节点,0 好节点再将数据进行更新。之后 进入下一步循环或者循环结束。 1 6 第三章d p d 模拟算法的并行化 并行程序保持原并行程序中力的计算部分,但是要根据总计算节点的数目修 改每个节点的空间大小以及一些记录粒子数目的变量。当然划分空间大小依据的 是上述的空间划分算法。 并行d p d 程序如图3 5 所示: s t a r t 上 读取数据 土 依据空间划分算法各个计算节 一 点提取属于该节点的数据 0 计算保守力和随机力 上 计算耗散力 上 数据收集,保存于。号节点 上 数据分发 写结果文件 上 e n d 图3 5 并行d p d 程序流程图 f i g 3 - 5p a r a l l e ld p d p r o g r a mf l o wc h a r t 1 7 否 北京化t 人学硕i :学位论 以下是数据划分的关键部分: 以下是数据汇集的关键部分代码: 数据汇集后在由0 号节点广播来更新所有节点的数据。 3 4 实验结果及分析 1 8 批= 章d p d 模拟算法的 行化 木实骑的d p d 程序的计算次数是1 0 0 0 0 步,即迭代1 0 0 0 0 次,每次计算每 个粒子所受到的三种作用力( 耗散力、保守力和随机力) 的合力,然后根据牛顿 运动定律计算出该分子的加速度和方向,品后计算出一个时间步后靴子的位置, 住选 弋完成后i j 以得到相应的宏观上的聚合效果。 3 4 1 实验环境 本沦文使用联想集群,集群中每个节点有2 个i n t e l ( r ) x e o n ( t m ) 3 0 c p u 并 且内存大小是2 g ;两台小型服务器:一台为i n t e l ( r ) x e o n ( t n lc p u3 0 的4 梭 处理器,以及4 g 内存,该台服务器也充当平台服务器:另一台是i n t e l ( r ) x e o n ( t n ) c p u3 0 的双核处理器,以及4 g 内存,该服务器只是计算节点;以及两台个人 电脯。 3 42 串行程序的结果分析 串行程序是运行在l m e l ( r ) x e o n ( t n ) c p u3 0 的4 核处理器的小型服务器上。 串行程序提交时,设定程序运行步数为一万步,使用前面编写的时间测试工具测 试时间,执行一万步所需时间为:3 小时5 1 分2 5 秒。使用仿真工具r a s m o l 对 最终结果( 1 0 0 0 0 步) p d b 文件进行处理,得到聚合后的三维蚓形,如图3 - 6 : a 正面b 背面 图3 巧串行程序最终结果 f i g 3 6s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 春季养生义诊活动方案策划
- 格瓦斯整合营销方案
- 小型房地产企业管理制度
- 儿童秋衣秋裤活动方案策划
- 十月营销推广方案模板
- 铃木摩托车营销方案模板
- 人造草坪组织施工方案
- 天津趣味跑活动策划方案
- 成华区商业咨询方案公示
- 2025年注册会计师(CPA)考试会计科目真题再现试卷及解析
- 核心素养视域下美术学科“五环式”教学研究
- 《财务大数据分析》教案
- 肥胖症诊断与治疗(2024版)指南解读
- 颅脑CT检查技术讲解
- 2025年高中数学说题比赛系列课件
- 临期品处理办法及流程
- 压裂泵往复密封动态磨损机理及失效自愈控制技术研究
- 消除三病反歧视培训
- 公司储备干部培训启动大会
- 初中英语1900词汇按词性分类
- 《旅游研究方法课程》-课程教学大纲
评论
0/150
提交评论