论文部分内容阅读
当前,计算机微处理器的发展已进入多核时代,并由多核向众核发展。传统桌面仿真软件在多核/众核平台上无法充分利用计算资源,显示出预期的加速性能。仿真软件并行化是提高计算资源利用率和仿真运行速度的有效方法。仿真模型可移植性规范(SMP2)是由欧洲航天局制定并在一批航天仿真和军事仿真项目中得到成功应用的开放仿真模型规范,但目前只支持串行仿真。开展SMP2规范的多核并行化研究,一方面可以提高SMP2仿真应用系统的运行速度,另一方面也为并行模型的设计、开发、集成与运行提供了一套更为成熟的框架。论文以提高SMP2仿真应用系统的运行速度和并行离散事件仿真的软件工程化水平为目标,围绕着“SMP2仿真引擎在多核计算机上如何并行化”、“SMP2仿真模型如何进行并行环境下的适应性改造”两大主题展开研究,解决了SMP2规范面向多核计算机进行并行化的相关理论问题与技术问题。具体研究内容包括以下几个方面:(1)为实现SMP2仿真引擎的并发运行,提出了并行SMP2(P-SMP2)的体系结构和P-SMP2的四层负载分配模型,分析了仿真模型在串并行条件下的一致性及不同时间同步协议下的一致性,提出了基于P-SMP2的建模仿真框架。(2)为有效集成时间同步协议、仿真服务、数据结构三个不同层次的各种算法,提出了基于插件的P-SMP2仿真引擎多算法集成机制,并讨论了采用三种时间同步协议实现逻辑进程插件的方法,以示范插件机制支持多种算法的能力。根据多核计算机的特点,对三种经典时间同步协议进行了优化。(3)讨论了P-SMP2仿真引擎在多核平台上的自动化负载均衡框架,并重点面向时间弯曲同步协议提出了基于Metis图划分工具的静态划分方案和基于优先调度的动态负载均衡方案。(4)为支持模型驱动的组件化P-SMP2仿真模型开发方法,研究了SMP2仿真模型组件间三种交互模式在并行环境下的改造方法,剖析了支撑基于模型驱动工程开发P-SMP2仿真模型组件的两项技术:基于Eclipse建模框架的领域建模环境快速开发方法与基于模板的代码生成方法。(5)在SMP2仿真引擎的基础上,采用OpenMP并行编程语言和Parallel Studio并行编程开发环境,设计并实现了P-SMP2仿真引擎原型系统。开发了卫星导航系统服务性能分析的应用实例,在具有8个处理器核的惠普计算机上运行该实例,P-SMP2仿真引擎较SMP2仿真引擎获得了5.8倍-6.3倍的加速比。论文的创新性工作主要体现在两大方面:以SMP2规范为例系统地提出了桌面仿真软件面向多核计算机的并行化解决方案;通过吸收SMP2规范与现代软件工程的优秀思想推动并行离散事件仿真在软件工程化方面的发展。围绕上述两个方面,论文的主要创新点可概括为下述四点:提出了一种基于模型层次多线程并行与四层负载分配模型的串行仿真软件多核并行化方法。论文基于并行离散事件仿真范式提出了面向模型层次多线程并行的P-SMP2体系结构,实现了SMP2仿真引擎的并发运行;提出了P-SMP2的四层负载分配模型,用于将模型实例分配到核上并行运行,能够很好地适应多核计算机非专用的特点。提出了一种基于插件的并行仿真引擎多算法集成机制。该机制在组件式结构的基础上引入了扩展、扩展点与插件组合方法,实现了运行前配置算法、支持新算法的嵌入、有效管理各种算法三大目标,能够有效集成时间同步协议、仿真服务、数据结构三个不同层次的各种算法,相比于已有的其它多算法集成机制,具有灵活性高、耦合性低、开发效率高、可维护性好的优势。提出了一种基于优先调度的动态负载均衡方案。时间弯曲协议现有的动态负载均衡方案通常采用基于逻辑进程迁移或模型实例迁移的方法。基于优先调度的动态负载均衡方案充分利用了多核计算机共享存储器及采用多线程并发运行的特点,无需迁移模型实例,易于实现。提出了一种模型驱动的组件化并行仿真模型开发方法。并行仿真模型现有的主要开发方法是根据仿真引擎对外提供的API手工编写代码。模型驱动的组件化并行仿真模型开发方法融合了组件化开发与模型驱动开发两种方法,可在很大程度上屏蔽开发并行仿真模型与串行仿真模型的差异,减少代码编写量,改善仿真模型的可移植性和可重用性。综上所述,论文针对SMP2仿真引擎的并行化与SMP2仿真模型的适应性改造提出了有效的解决方案。论文对其它桌面仿真软件的多核并行化在理论和实践上都具有一定的参考价值。