第30卷第12期 文章编号:1006—9348(2013)12—0219—05 计算机仿真 2013年12月 基于相互作用的耦合振子群体动力系统仿真 徐桂兰,唐宋,李清都 (重庆邮电大学非线性电路与系统研究所,重庆400065) 摘要:大规模振子经耦合所形成的网络广泛存在于自然界的众多领域。由于存在高维非线性系统,研究网络的群体行为,是 对其进行设计控制和应用的前提。但是,对耦合振子网络群体构造的特定高维系统的研究往往涉及的大规模数值计算,算 法如果仅基于CPU的计算平台往往会存在效率低的问题。为解决上述问题,提出了一种基于CPU+GPU平台的异构并行 算法。算法首先设计了高效GPU内核程序,然后借助GPU加速,相对基于仅CPU的平台,效率提高了近30倍,实现了耦合 振子网络的高效仿真。 关键词:耦合振子网络;异构平台;并行计算 中图分类号:TP301.6 文献标识码:B Simulation for Dynamic System Based on Interacting Coupled——Oscillator Ensembles XU Gui—lan,TANG Song,LI Qing—du (Institute for Nonlinear Circuit and Systems,Chongqing University of Posts and Telecommunications,Chongqing 400065,China) ABSTRACT:It is a wide range of existence of networks formed by coupled large—scale oscillators in the nature. The study of the group behavior of the networks is a premise that carries on designing,controlling and putting into ap— plication.However,the problem of massive numerical calculation and the low eficiency of tfhe computing platform based on CPU aye often involved in the research of the high—dimension system built by the coupled oscillator network groups。In order to solve the problems mentioned above,the paper first presented a heterogeneous parallel algorism based on CPU&GPU platform and developed a high eficientf GPU kernel program.Then by adding GPU into the plat— form,the efficiency of the new platform was increased nearly 30 times compare to the CPU platform.Finally,the high eficientf simulation of the coupled oscillator network was implemented. KEYWORDS:Coupled oscillator network;Heterogeneous platform;Parallel computing 群体行为,发挥着越来越重要的作用。例如:大群萤火虫的 1 引言 随着非线性科学的不断发展,高维非线性系统的复杂行 同步闪烁…,大量观众的同频鼓掌 ,伦敦千禧桥的摇 摆 j,细胞的无氧乳酸振荡 ,神经元协同震荡引起的癫 为逐渐成为研究的热点。该系统涉及很多领域,如流体动力 学、激光物理学、非线性光学、电子学和神经动力学…等等。 此类系统通常可以看做是大量相对简单元素的集体行为。 振子常被选为此类简单元素,因其之间具备不同类型的相互 痫 ],电化学中大量振子的凝聚现象 等。研究这些群体行 为是对其设计控制和进行应用的前提。例如,制造高能效半 导体激光器 ]、基于Josephson结阵列的大功率微波器件 和治疗癫痫 等。目前,国外关于振子网络群体行为的研究 较多,早期有日本的Kuramoto研究全局耦合振子 ,然后有 作用 j,在许多情况下,系统的动力学行为可以在适当的低 维集体模式下得到有效体现。大规模的振子经简单耦合形 成的网络广泛存在于自然界的众多领域。网络所表现出的 基金项目:国家自然科学基金资助项目(61104150,10972082) 收稿日期:2013—03—15 Kiss、Olmi、McCullen、Strogatz等也对其它振子网络群体进行 了深入研究 ’ t”],国内主要有王文旭、杨会杰等人研究E卜 dos—Renyi网络 。 由于在实际情况中,对于耦合振子网络的研究一般存在 三点困难。第一,构成的特定高维系统的耦合振子网络群体 一219— 通常由成千上万个振子构成,其理论研究只能基于简化系 统,比如著名Kuramoto模型 ,但是,对于大多实际系统,这 种近似系统可能根本就不存在。因此,迫切需要开辟一些通 用方法来实施研究。第二,耦合振子网络一般是高维甚至是 超高维的系统,目前,并没有成熟的理论和研究方法。因此, 如何采用数值计算对群体混沌进行深入研究,成了一个极具 挑战的重要问题。第三,耦合振子网络个体数目的庞大导致 对其进行研究一般都会涉及大规模的数值计算,因此仅用 -(Q ) 其中,c和s分别描述振子网络群体内部和相互之问的耦合, (t)和 (t)描述两个群体内部交替地进行着全局耦合。由 (5)式降阶后的控制方程为: ,CPU做计算往往会出现速度慢,效率低和分辨率低等问题。 当今计算机构架面向并行计算和异构计算革新的趋势越来 警)= 越明显 。CPU从单核发展到多核的过程中,多线程编程 )=(Q )鲁 2 (f)警+ 也变得越来越重要。中央处理器CPU和图形处理器GPU都 有计算能力,前者拥有高效的串行指令,而后者有突出的并 行计算能力 17 3。异构计算则大多采用CPU+GPU异构并 行。目前,随着GPU的计算能力不断提高和快速发展,特别 是GPU异构计算协议的制定 ,使得个人计算变得简单而 经济,且实现了计算机整体计算能力利用的最大化。 本文针对这些问题,提出了基于CPU+GPU平台上的异 构算法。OpenCL是一种可横跨CPU、GPU和其它处理器,让 软件开发人员的并行编程便携,且能高效地获取这些异构处 理平台能力的编程语言,因此本文采用MATLAB、C++和 OpenCL相互协调的异构计算。为了更好地进行理论描述, 选用了 个简单而且方便的理想广义模型 。这个模型由 两个“ 的自维持振子网络群组成,当一个振子网络群体内 部进行全局耦合时,另一个振子群体内部的全局耦合关闭。+ + 振子群体之间附加的耦合是采用二次非线性平均场实现。甜 y 然后对由此振子网络群体构造的特定高维系统在集体变量 = = 层面上进行仿真,最终证明其具有混沌行为。 2耦合振子群体构造的高维系统的模型 2.1+ 一 基本广义模型 + 一 考虑两个之间有相互作用,由自维持振子构造成的振子 网络群体。群体的大小都为K=64 2 n,群体中的成员分 .吼 .一 n n 别用 、fY 表示,其中k的取值范围为1至K。在网络群体 内,振子之间通过平均场 和y耦合, 和y的表达式为: X= 1 Y'=--…Z y (1) (1)式的导数dX/dt、dY/dt的表达式为: dX1 dY= , = (2) 网络群体问之问的非线性相互作用通过二阶平均场来 描述,表达式为: X2= 1 2 = y2 (3) (3)式的导数dX2/dt、d /df的表达式为: dX2= 2 鲁, = 2yk dyk c4, 整个模型用以下二阶微分方程作为控制方程: ....——220....—— sin 0t Jy(Yk, 、) , ) 2 KL(t) + sin ∞ t (6) 2.2模型的数值设置 为了对模型进行仿真以研究其性质,需要对广义模型 (5)中参数值进行具体设置。其中模型中振子的自然频率 tO 的分布如下: =tOo—A + a盯 recos[L 凡 一 ]J (7) 对于(7)式,选择振子基频 。=21r,进一步,令△ =av/8 对其进行离散化。同时设置模型(5)中的 (t)=COS (竹∥ ) (t)=sin ( ̄rt/T),同步周期T=100,描绘振子群体内 部耦合的参数 =1以及描绘振子群体间耦合的参数 = 0.1,单个振子幅度Q=3。 根据数值设置后的具体模型,设计了以下基于CPU+ GPU异构计算的算法以对模型所构造的高维系统进行仿真, 算法的具体细节如下。 3异构计算的系统仿真算法 3.1算法的基本思想 MATLAB具备强大的作图功能,本算法基本思想是通过 建立MEX文件,使MATLAB能够调用C++子程序,从而分 别发挥MATLAB和GPU的各自优势。首先在MATLAB中进 行系统初始化,令K=64 2 n,设置绘图的最大时问 …: 200、采样间隔(同时也是时间间隔)h=0.01。计算出采样点 数后,将其赋值给M。将系统参数,绘图参数以及数1/6,1/ 3,1/2等赋给一个30 x 1的数组P。系统初始化即构造振子 、Y 及其导数dx /dt、dy^/dt的初始值且赋值给K×4的矩 阵 。然后调用MEX函数和处理其接口,将由系统初始值, 频率值所组成的数组以及P作为MEX函数的输入值。把第 一个输入变量,即系统初始值和频率值所组成的数组的首地 址赋给pz;把第二输入变量数组P的首地址赋给数组PP;同 时创建一个M×5的矩阵,用以存放输出数据,同时将矩阵首 地址赋给PZ。最后进入OpenCL宿主程序部分。宿主程序 共分为三部分:第一部分是对OpenCL进行初始化,包括计算 平台(Platform)的寻找,上下文(Context)的创建,对计算设备 3)将t移动半个步长,程序转人利用计算出的第二阶的 点求(2)和(4)式。然后进人第二个-厂0r循环求R—K法第二 阶相应值。 。和 :用与第一阶相同的方法计算。 [i]和 5 [i]在第一阶值的基础上分别叠加上1/3乘以 和 , 同时将(6)式第三阶要使用到的点求出来。第三个 r循环 (Devices)的探测和创造OpenCL命令队列(Command Queue)。第二部分是建立GPU内核对象,如果GPU的内核 程序是二进制文件,则直接加载,然后创建一个程序对象。 若不是二进制文件而是源程序,则创建程序对象,用该程序 对象创建内核对象,同时输出二进制内核文件,以便下次调 按照与第二个循环相似的方法计算 、rk 、SV[i]、 [i]。 因为在计算(6)式第四阶将要使用到的点时只需用第三阶斜 率乘以h,所以算法中仅用当次最外层 r循环的初始值加上 l用。第三部分是运行内核程序,包括获取计算设备的具体信 息、得到给定名称的内核对象句柄以及数据传输与并行计 和 2。 4)时间t移动半个步长进入第四个 r循环。计算方法 算。然后执行内核,完成后将数据读回,并传回MATLAB,再 与上述类似。根据R—K法,叠加到SV[i]、SV [i]的值用1/6 在MATLAB中进行曲线绘制。 整个算法的核心部分,也是体现GPU并行算法的地方 是内核程序,下面详细介绍内核程序。 3.2算法的结构与内容 3.2.1程序初始化 OpenCL宿主程序中,为了让常数便于存取,在GPU的 常数内存区创建只读缓存区zb和pb,在GPU的全局内存区 创建可读可写缓存区zB,并将指针pz,pp,PZ所指向的内容 分别复制给指针zb,pb和zB.然后将它们设置为内核对象的 第一、第二和第三参数。同时将线程总数及每一个线程组大 小均设置为128。然后进入内核程序部分。首先对(6)进行 宏定义,在GPU的本地内存区创建缓存区bf和sbf。对该程 序将要用到的变量进行初始定义后,便将数组pb中的参数 值赋给相应变量以便以后调用,此时,数据p6为二维空间中 的数组。读取参数后,利用线程的,z)且一个线程处理n个 数据,根据 。等于z6加上线程 乘以n所体现的并行计 算,后面的很多数据处理都只需要考虑一个线程的n个振子 即可. 3.2.2龙格库塔算法部分 整个内核程序的最终目的是用一个外层 r循环加四个 内层 r循环实现系统(6)的龙格库塔算法(以下简称R—K 法)。详细流程如下: 1)外层循环共z层。首先根据传递的第Z×h时刻的系 统值计算(1)、(2)和(4)式(计算出(4)式可使(6)式中的 (‰,dx /dt)√ (Y ,dy /dt)相互独立,便于后面计算 —K 法中的四个斜率)。其中z为循环变量且初值为Z=0。将 计算出的X、dX/dt、Y、dY/dt值分别存在Pz的第z+1行。 2)进入内层,0r循环。每个内层循环为n层。第一个 -厂0r循环用来R—K法第一阶相应的值:因计算第二阶斜率时 要使用第一阶斜率乘以h/2,且计算系统的下一个点也要乘 以矗,为了简便起见,算法提前乘以 。这些相应的值用 和 2表示, ,的两维分别等于 ( ,dx /dt) ̄fy(Y , / dt)乘以h,同理 的两维等于厶( , / )和厶(Y , /dt)乘以h。然后根据R—K法计算系统下一个点的公 式,将 , :乘以1/6后,用定义的SV[i]、SV i]存起来,同 时将求R—K法第二阶相应值将要使用到的点计算出来。 乘以 .和 ,再叠加上当次外层 r循环的初始值以得到 系统的间隔为h的下一个点。将它们分别赋给 [i]和 [i] 来作为求下一次循环的初始值。 5)最后利用计算所得的下一次循环的初始值平均场 、 l,及其导数dX/dt、dY/dt的下一个点。将其与相应的时间 (时间间隔为h)分别存在Pz的第z+2行。然后Z自加1, 直到完成M一1次循环。将得到的矩阵返值给宿主程序。 算法的广义详细控制流程见图1。 图1 R—K法的广义控制流程图 3.2.3算法的仿真结果与性能分析 图2至5为当单个网络群体大小 取128,群体个数为 2时平均场 、y及其导数dX/dt、dY/dt最终的仿真结果。从 仿真图1和3可以看出,当调制 (t)和 (t)的值较小时, 平均场 、y几乎为0,当 (£)和 (f)值较大时, 、l,则变 为最大。此仿真结果与文献[19]的仿真结果是完全一致的。 从图2和图4可以发现,dX/dt、dY/dt都稳定到了周期轨,即 最终都进入了稳态,说明网络群体的成员最后同步。 改变K=64 2 n中的n,使之为10,图6至9为当群 体个数为20时 、y及它们的导数的仿真结果。比较图2—5 和图5—9,可见虽然修改了个数和提高了速度,最终图的结 果是一致的。 一22l一 图9平均场Y的导数的仿真结果图 表1算法测试结果对比 4结论 本文提出了基于CPU+GPU异构平台,对耦合振子网络 群体构造的特定高维系统所涉及的大规模数值计算,相对于 一般的非异构算法,提高了接近30倍以上的计算速度.并行 是把一个复杂问题,分解成多个能同时处理的子问题,非常 适合具有大规模点的快速计算.本文虽然只对大小为128、 1280和1536的振子网络群进行仿真,对于具有更多群体个 数的耦合振子网络,此方法可通过直接修改K的值、增加群 体个数和每个线程处理个数得以沿用。而且,基于CPU+ GPU异构平台是计算机未来的发展方向,因此本文所涉及到 的算法的应用前景还是十分广阔,它能够解决了一些大规模 计算问题,如基于CPU+GPU异构平台应用于吸引盆,可使 求出的吸引盆更加细致,包含更多信息,使对吸引盆的数值 研究变得更加细致全面。 参考文献: [1]A Pikovsky,et a1.Synchronization:a universal concept in nonlin— ear science[M].Cambridge university press,2003. [2] Z Nrda,et a1.The sound of many hands clapping—Tumultuous 印plause can transform itself into w ̄ves of synchronized clapping [J].Nature,2000,403(6772):849—850. [3] S H Strogatz,et a1.Theoretical mechanics:Crowd synchrony oN the Millennium Bridge[J].Nature,2005,438(7064):43—44. [4]D Gonze,N Markadieu,A Goldbeter.Selection of in—phase or out—-of——phase synchronization in a model based on global COU- pling of cells undergoing metabolic oscillations[J].Chaos:An In— terdiseiplinary Journal of Nonlinear Science,2008,18(3):037127 —037127—12. [5] I Osorio.et a1.Epilepsy:The Intersection of Neurosciences,Biol— ogy,Mathematics,Engineering and Physics[M]. CRC Press,2011. [6] I Z Kiss.Y Zhai.J L Hudson.Emerging coherence in a popula- tion of chemical oscillators[J].Science,2002,296(5573):1676 1678. [7] M C Cross.P C Hohenberg.Pattern formation outside of equilibri— am[J].Reviews of Modem Physics,1993,65(3):851. [8] Y Kuramoto.Self—entrainment of a population of coupled non— linear oscillators[c].International symposium on mathematical problems in theoretical physics:Springer,1975:420—422. [9] M Nixon,et a1.Synchronized cluster formation in coupled laser networks[J].Physical Review Letters,2011,106(22):223901. [1O] M Bennett,K Wiesenfeld.Averaged equations for distirbuted Jo- sephson junction arrays[J].Physica D:Nonlinear Phenomena, 2004,192(3):196—214. [11] S H St Strogatz.From Kuramoto to Crawford:exploring the onset of synchronization in populations of coupled oscillators[J].Physi— ca D:Nonlinear Phenomena,2000,143(1):l一20. [12] N McCullen,P Moresco.Route to hyperchaos in a system of COH— pled oscillatorswithmuhistability[J].PhysicalReview E,2011, 83(4):046212. [13] S Olmi,A Politi,A Torcini.Collective chaos in pulse—coupled neural networks[J].EPL(Europhysics Letters),2011,92 (6):60007. [14] H Yang,F Zhao,B Wang.Collective chaos induced by strue- tures of complex networks[J].Physica A:Statistical Mechanics and its Applications,2006,364:544—556. [15 ]J A Acebr6n,et a1.The Kuramoto model:A simple paradigm ofr synchronization phenomena[J].Reviews of modem physics, 2005,77(1):137. [16] W Hwu,D Kirk.Programming massively parlalel processors[J]. Special Edition,2009,92. [17] 李清都,周红伟,杨晓松.基于异构计算的简单行走模型的吸 引区域研究[J].物理学报,2012,61(4):40503—040503. [18] Group Kow.The OpenCL Speciifcation Version 1.1,2010[J]. Document Revision,2010,44. [19] S P Kuznetsov,A Pikovsky,M Rosenblum.Collective phase cha— os in the dynamics of interacting oscillator ensembles[J].arXiv preprint arXiv:10120652,2010. [作者简介] 徐桂兰(1985一),女(汉族),四JIl省遂宁市人,硕 士研究生,主要研究领域为动力系统、数值计算。 唐宋(1982一),男(汉族),四川省达州人,硕士 研究生,主要研究领域为动力系统、数值计算。 李清都(1980一),男(汉族),重庆人,教授,博士, 主要研究方向:混沌动力系统、流形计算、拓扑马蹄理论。 ----——223...——