论文部分内容阅读
多核处理器成为高性能计算机的主流配置,如何充分发挥多核计算资源的效能是计算机仿真技术的研究热点。然而当前的并行仿真主要是基于逻辑进程的粗粒度并行,单逻辑进程内及单实体内多事件的并行并未被挖掘,难以充分利用多核平台的计算资源。因此,开展针对单逻辑进程及单实体内部多事件并行技术研究,对于提高仿真系统的性能,充分利用多核计算资源等具有重要的理论意义和实用价值。论文针对当前并行离散事件仿真技术未充分挖掘细粒度事件并行性的问题,在深入分析研究相关技术的基础上,围绕单逻辑进程及单实体内多事件并行、实体事件组织以及时间同步等问题展开研究,主要工作及创新如下:(1)为减少系统资源需求及同步开销,并行仿真单逻辑进程内往往包含多个实体,而这些实体间事件存在并行性,然而当前PDES一个逻辑进程中多个实体事件大都保存在一个FIFO事件队列中,该队列中的所有事件按时戳顺序串行执行,使得实体间事件的并行性没有得到充分挖掘。为此,提出了一种基于实体事件队列的逻辑进程内多实体事件并行处理方法ELPP(Entities of Logical Process processed in Parallel),ELPP以实体为单位重新组织逻辑进程中的事件,并采用多线程技术实现多实体队列事件的并行处理。实验结果表明,与传统的PDES系统相比,ELPP方法可有效提高系统的并行性能,在实体数大于等于2、仿真事件和处理器核数足够多的情况下,加速比可达到2.0以上。(2)单实体中事件在传统PDES技术中一直被串行执行,然而在实际应用中,单实体事件也存在并行性。对此,提出了一种基于可并行标志的单实体事件并行方法EEP(Events of Entities processed in Parallel),该方法依据应用开发人员设置的事件可并行标志将单实体可并行事件进行提取,然后使用基于贪心算法的负载均衡方法进行事件重组,使用多线程对重组后的多事件队列进行并行执行。实验结果表明该方法在可并行执行事件占比为25%时,可获得14%左右的性能提升。(3)实体与事件的组织方式决定了实体及事件管理的开销。为降低这类开销,提出了一种基于嵌套堆结构的实体与事件管理方法。该方法采用堆结构来管理实体和事件,并通过将事件堆嵌套至实体堆中,从而降低了实体和事件管理的时间复杂度,提高了查找实体中最小时戳事件的效率,减少了GVT(Global Virtual Time)同步开销。论文通过将以上优化算法加入到本课题组开发的SUPE引擎中,从而设计实现了一个支持单逻辑进程及单实体内多事件并行的仿真引擎SUPE-MT。通过基于SIR模型的计算机病毒传播仿真应用测试结果表明:论文提出的上述优化方法在6核CPU配置下,当仿真规模达到100以上时,可以获得相比于原始SUPE引擎接近2X的加速。