高速列车数字化仿真平台仿真性能分析
2015-08-01黄海于
刘 露,黄海于
(西南交通大学 信息科学与技术学院,四川 成都 611756)
0 引 言
随着计算机仿真技术被广泛应用到科研和开发领域,仿真任务的计算量变得也越来越大,对仿真技术的高效性、精确性、可靠性等要求也越来越高,因此与分布式仿真有关的技术的研究也成为当前仿真领域热门的研究方向之一[1].分布式体系结构给仿真带来便利的同时,也带来了一些影响仿真系统整体性能至关重要的因素[2].在分布式构架下,通讯的使用引入了一些必须加以重新考虑的方面[3],包括系统体系结构、时间延迟、通讯调度、系统的可重构性、维护灵活性、容错能力、模块间同步以及系统整体性能的保证等[4].
本研究的高速列车数字化仿真平台是基于C/S模式的分布式仿真体系结构,其主要的功能模块包括主控模块、前处理模块、耦合计算模块、后处理模块和系统管理模块[5].为了保证多子系统耦合后的整体仿真效率,仿真平台部署在由高速网络连接的分布式计算环境中.
高速列车数字化仿真过程中,数据存储扮演着非常重要的角色,它为仿真过程分析提供了必需的数据,为仿真结果的事后测试与评估提供了极大的帮助[6].该仿真平台的仿真过程监视子系统用于对仿真过程数据的监视,其主要功能是从数据库获取仿真过程中产生的数据,并通过独立的计算过程监视系统对这些数据进行图形化展示,以便及时发现计算中出现的问题,提高应用效率[5].
高速列车数字化仿真平台是国家支撑计划项目,本研究主要完成了仿真平台架构的创建,承担调度器、耦合器、代理子系统、图形建模和数据监控等几个子系统的研究.
1 仿真过程中数据存储方式对平台性能的影响
本研究从性能提升的角度对仿真平台的数据存储进行了探讨.为提高仿真数据的传输效率,仿真平台采用UDP 通信.经过测试发现,通过不同子系统存储仿真过程产生的数据对平台仿真性能的影响是不同的.其对系统仿真性能的影响主要体现在仿真过程数据的产生、传输、处理与存储等方面.
1.1 仿真过程数据存储原理
仿真过程产生的数据大部分来源于分布在不同计算资源的任务执行模块(以下简称执行机),为了使其他执行机获得下一步仿真所需要的计算数据,这些执行机将每一步仿真的结果发送给耦合器,耦合器根据耦合关系表将所收到的数据发送给需要这些数据的执行机.一个完整的仿真计算过程具体描述如下:
1)数据的产生.当耦合器代理启动耦合器、计算资源代理启动任务执行模块之后,执行机执行每一步数据的仿真计算,并将计算结果打包,以备发送给耦合器进行数据分发,这个过程称之为数据的产生.
2)数据的传输.执行机把每一步仿真过程数据传输给耦合器,耦合器又将每一步仿真过程数据传输给执行机,此过程为仿真过程数据的传输.
3)数据的处理.执行机将计算出的仿真结果数据进行打包以备发送,此过程为仿真过程数据的打包处理;系统中任何一个子系统将接收到的数据包进行拆包,得到可用的仿真过程数据,此过程为仿真过程数据的解析处理;耦合器通过计算将收到的数据传送给执行机,此过程为仿真过程数据的分发处理.
4)数据的存储.将仿真过程数据存入数据库中,此过程为仿真过程数据的存储.
由于本仿真平台不同模块在执行时可能分布在不同的计算资源上,其数据发送、接收及处理可以相互独立,并行进行.同时执行机、耦合器、数据监控3个模块之间的数据交互也不是绝对串行的,因此仿真一步所需要的时间并不是单纯将每一个过程所消耗的时间进行求和得到,而是要进行严密的逻辑分析.另一方面,对于分布式系统,没有一个全局的时钟,大多数情况下需要通过事件发生的先后顺序,引入“逻辑时钟”,然后由逻辑时钟提供逻辑时间保证所有进程保持事件前后的一致性[7].
1.2 不同存储方式对仿真性能的影响分析
结合高速列车数字化仿真平台的体系架构和具体工作原理,平台可以采用耦合器存储、执行机存储和数据监控子系统存储3 种方式存储仿真过程数据.主要参数定义如下:
1)Tpi[j].表示执行机i 在进行第j 步计算时所需时间.
2)Tbci[j].表示耦合器对执行机i 第j 步仿真输出数据进行分发计算处理所需时间.
3)Tbei[j].表示执行机i 对第j 步仿真输出数据进行打包处理时所需时间.
4)Tuci[j].表示耦合器对执行机i 的第j 步仿真输出数据进行解析处理时所需时间.
5)Tumi[j].表示数据监控对执行机i 的第j 步仿真输出数据进行解析处理时所需时间.
6)Teci[j].表示执行机i 将第j 步仿真输出数据发送到耦合器时所需时间,该时间还包括数据在发送队列等待的时间(该时间与耦合器接收执行机i第j 步仿真数据所需时间基本相同).
7)Tcei[j].表示耦合器将第j 步仿真输入数据发送到执行机i 所需时间,该时间还包括数据在发送队列中等待的时间(该时间与执行机i 接收耦合器发送给该执行机第j 步仿真输入数据所需时间基本相同).
8)Temi[j].表示执行机i 将第j 步仿真输出数据发送到数据监控子系统所需时间,该时间还包括数据在发送队列中等待的时间(该时间与数据监控接收执行机i 第j 步仿真输出数据所需时间基本相同).
9)Twei[j].表示执行机i 将第j 步仿真输出数据存储到数据库所需时间,该时间还包括数据在存储队列中等待的时间.
10)Twci[j].表示耦合器将执行机i 的第j 步仿真输出数据存储到数据库所需时间,该时间还包括数据在存储队列中等待的时间.
11)Twmi[j].表示数据监控将执行机i 的第j 步仿真输出数据存储到数据库所需时间,该时间还包括数据在存储队列中等待的时间.
1.2.1 耦合器存储仿真过程数据对仿真性能的影响.
耦合器是耦合数据的处理和收发集散中心,所有耦合数据都向其汇集并经其分发到各子系统[6].执行机和耦合器之间的数据交互方式如图1 所示.
图1 任务执行机和耦合器的交互关系
由图1 可知,每一个执行机和耦合器都是一个独立执行的进程,因此对数据的处理都是独立进行的,但是耦合器计算分发数据时采用串行方式.
根据仿真计算过程中数据历经的4 个过程,采用耦合器来存储一步仿真过程数据需要耗费的时间由下面4 个部分构成:
1)执行机计算第j 步仿真输出数据所需时间Tpi[j].
2)耦合器处理第j 步数据所需时间Tdci[j],该时间包括Tuci[j]、Tbei[j]及Tbci[j].该系统中,数据打包、数据解析及数据分发处理均通过多线程并行处理,运行在不同的CPU 核上,因此Tdci[j] =max(Tbei[j],Tuci[j],Tbci[j]).
4)耦合器将第j 步数据存储到数据库所需时间Twci[j].
上述过程中,有些操作是在执行机上完成的,有些操作是在耦合器上完成的.二者分布在不同的计算机上,因此可以并行执行.即使运行在同一台计算机上,由于数据的处理可以通过多个CPU 核分别执行,因此也可以并行执行.数据的收发以及数据的处理也可以并行执行.所以耦合器完成一步数据仿真及存储所需时间为,
其中,N 为执行机的个数.可以看出,当任务增多时,执行机之间耦合关系复杂程度会相应增加,由于存储数据参与到仿真过程,数据存储的耗费也会增加.
1.2.2 执行机存储仿真过程数据对仿真性能的影响.
执行机用于各子系统的仿真计算,由各个计算模块构成,包括车辆动力学、线路动力学、弓网动力学、牵引供电及传动和空气动力学耦合计算子模块.执行机和数据库之间的数据交互方式如图2 所示.
图2 任务执行机和数据库的交互关系
由图2 可知,执行机计算产生某一步仿真过程数据之后,在数据打包之前即可存入数据库中,而耦合器无需解析即可转发数据包.采用执行机来存储一步仿真过程数据的时间相较于耦合器存储将会节约耦合器解析第j 步数据的数据包所需时间Tuci[j].
上述过程中,执行机向数据库存储仿真结果数据与执行机计算和收发数据均可以通过多个CPU核分别执行,因此可以并行执行.所以,执行机完成一步数据仿真及存储所需时间为,其中,N 为执行机的个数.存储数据过程中无需解析数据,可直接存储,因此节约了仿真时间消耗.
1.2.3 数据监控子系统存储仿真过程数据的对仿真性能的影响.
数据监控子系统用于对计算过程进行实时监控,对异常情况进行提示或警告,使计算过程透明化[2].数据监控子系统和执行机之间的交互关系如图3 所示.
图3 数据监控子系统和执行机之间的数据交互关系
由图3 看出,执行机和数据监控子系统之间的数据交互方式是单向的,不影响仿真过程的进行.执行机向数据监控子系统发送第j 步数据所需时间Temi[j]和数据监控子系统存储第j 步数据所需时间Twmi[j]可不计入仿真一步的总时间中,因为该过程不影响仿真过程的进行.因此,由数据监控子系统完成一步仿真所需时间为,
其中,N 为执行机个数.当任务增多时,仿真时间消耗几乎不受数据存储的影响.
2 不同存储方式下的仿真性能比较
由于仿真过程中,基于计算机硬件和软件性能、网络环境的不确定性,要精确比较每种存储方式的时间消耗几乎是不可能的.但是本研究从每种存储方式的时间复杂度方面着手分析,同样能够比较不同存储方式下的仿真过程时间消耗情况,且都以执行机、耦合器、数据监控所处计算机软硬件性能稳定,并处于同一网络环境中为研究前提.
前节已分析了不同存储方式对平台性能的影响,针对3 种存储方式中仿真过程数据历经的4 个过程,可以得出以下理论结果:
1)耦合器存储一步数据额外多出了数据存储所需时间,因此耦合器完成一步仿真所需的时间明显大于执行机和数据监控子系统;
2)执行机存储一步数据与计算一步数据可以并行完成,但处于同一计算资源上势必会相互产生降低效率的后果,从而影响执行机的计算性能;
3)数据监控子系统存储一步数据的过程中,执行机会额外产生一个向数据监控子系统发送数据的过程,但一个数据包发送行为所需的时间远远小于执行机计算一步数据所需的时间.
本研究中对于仿真性能的评价指标是基于仿真速率的,而仿真速率的定义为仿真总步数与仿真时间的比值.综上可知,对于采用数据监控子系统存储仿真结果数据时在本研究中是非常理想的数据存储方式.
3 测试验证
高速列车数字化仿真平台上,以仿真速率V(步/s)作为评估指标,采用UDP 作为传输协议,用Oracle 磁盘数据库作为存储介质,以车辆动力学、线路动力学、弓网动力学和牵引供电耦合计算子模块作为任务执行模块,对采用不同子系统存储仿真过程数据的实例进行测试.
3.1 测试环境
硬件支持,基于Intel(R)Core(TM)2 Quad CPU Q9500 @ 2.83 GHz 双核处理器,内存8 G,64 或者32 位Windows 操作系统PC 机4 ~6 台,基于Linux/Unix 操作系统高性能计算机集群;软件支持,基于C/S 架构的Oracle 11.2 磁盘数据库系统;网络支持,主网络为千兆网,其中计算网络采用Infiniband 网,带宽为40 GB/s,网络状态良好;参与模块,车辆,线路,弓网,牵引供电;测试组合1,车辆—线路组成两模块测试;测试组合2,车辆—线路—弓网—牵引供电组成四模块测试;测试次数,每组测试为10 次.
3.2 测试结果
测试采取了增加执行机的方式来测试不同的子系统存储仿真结果数据对仿真速率的影响.
参与测试的模块输入参数设置如下:
全局仿真参数:总积分时间=200 000 步,耦合步长=0.00100.参与仿真的各模块的仿真参数设置如表1 所示.
经过仿真实验测试,耦合器、执行机、数据监控子系统在不存储数据库时仿真速率是一样的,基本保持在81 步/s 左右.
车线耦合模式下,车辆子系统、线路子系统、耦合器和数据监控子系统分别部署在不同的计算资源上,在网络状态良好的同一网络环境中进行仿真测试.采用不同系统以磁盘数据库为存储介质的仿真速率如图4 所示.
表1 全局仿真参数
图4 车—线耦合下不同系统以磁盘数据库为存储介质的仿真速率(步/s)
图4 中,纵轴表示仿真速率V,单位为步/s,横轴表示仿真次数.在数据存储到数据库的情况下,耦合器的平均仿真速率为1.6 步/s,执行机平均仿真速率为2.5 步/s,数据监控子系统平均仿真速率为80 步/s.由数据监控子系统存储数据的仿真速率比较接近于不写数据库,而且远大于执行机和耦合器.在使用耦合器和执行机存储数据的时候,一方面要计算数据,一方面要存储数据,因此时间耗费较大,降低了仿真性能,数据监控子系统不参与数据计算,因此对仿真过程基本没有影响.
在车线牵弓耦合模式下,各个任务模块、耦合器、数据监控子系统分别部署在不同的计算资源上,在网络状态良好的同一网络环境中进行仿真测试.不同系统以磁盘数据库为存储介质的仿真速率如图5 所示.
图5 车—线—牵—弓耦合下不同系统以磁盘数据库为存储介质的仿真速率(步/s)
由图5 可以得出,在数据存储到数据库的情况下,耦合器的平均仿真速率为1.4 步/s,执行机平均仿真速率为2.0 步/s,数据监控子系统在平均仿真速率为78.5 步/s.除了采用不同子系统存储数据时仿真速率有差距之外,相较于图4 各个子系统本身的存储速率已有所降低,这就证明了增加仿真任务模块会相应降低仿真性能的结论.
4 结 语
通过采集样本测试可知,不存数据时执行任务模块的增加,仿真速率降低;耦合器存储数据时执行任务模块增加,仿真速率降低;执行机存储数据时执行任务模块增加,仿真速率降低;数据监控子系统存储数据时执行任务模块增加,仿真速率降低.在仿真速率的稳定性上,增加执行任务模块对仿真速率的影响都不太明显,而且仿真速率也比较高,趋于理想.因此,选择数据监控子系统存储仿真数据对于平台来说是比较合适的.
[1]Ajay D.Kshemkalyani,MukeshSinghal.分 布 式 计 算—原理、算法与系统[M].余宏亮,张冬艳,译.北京:高等教育出版社,2012.
[2]张玉宏,黄志球,杨俊.分布式系统中性能评估模型的改进方案[J].计算机工程与设计,2006,27(14):176-180.
[3]Yook J,Tilbury D,Chervela K,et al.Decentralized modular realtime control for machiningapplications[C]//Proceedings of the 1998 American Control Conference.Philadelphia,PA,USA:IEEE Press,1998.
[4]王兰香.影响分布式控制系统性能的若干因素[J].自动化技术与应用,2007,26(5):98-101.
[5]张卫华.高速列车耦合大系统动力学理论与实践[M].北京:科学出版社,2013.
[6]冯玉琳,黄涛,金蓓弘.网络分布式计算与软件工程[M].北京:科学出版社,2011.
[7]杨艳,李炜,王纯.内存数据库在高速缓存方面的应用[J].现代电信科技,2011,41(12):59-64.