论文部分内容阅读
人工社会是进行社会科学研究的有效手段,其核心方法是基于Agent的建模、仿真和实验分析。随着仿真应用需求的发展,人工社会规模逐渐增大,Agent模型及其行为规则日益复杂、交互关系网络越来越庞大。为了满足人工社会仿真计算实验实时性、高效性的要求,提高大规模人工社会仿真执行效率就成为了亟待解决的问题。随着GPU等异构处理器的发展,CPU/GPU异构并行系统在合理功耗下能够获得强大的计算性能,已经成为高性能计算机发展的方向,也逐渐应用于仿真领域的计算加速中。面对日益增长的人工社会仿真规模和复杂度,利用CPU/GPU异构并行系统计算优势进行仿真性能优化,就成为了提升人工社会仿真执行效率的有效途径。在上述问题背景下,本文基于单进程、多线程的保守并行仿真引擎框架,提出了基于三层引擎管理的CPU/GPU异构并行仿真引擎架构,同时针对大规模Agent仿真特点,对GPU仿真内核的数据结构和调度算法进行了设计和优化。为了弥补并行仿真内核对人工社会不同应用领域的性能加速局限,本文提出了面向领域的GPU仿真计算服务组件思想。主要研究工作和成果如下:(1)提出了面向大规模人工社会的CPU/GPU异构并行系统计算加速方法和实现框架。CPU/GPU异构并行系统计算加速方法将GPU的两种仿真应用方式(协处理器与主处理器)共同应用于大规模Agent仿真的计算加速中。GPU主处理器方式与CPU一起构成异构仿真引擎,负责Agent仿真的底层驱动计算加速,同时GPU协处理器方式以计算组件的方式接入仿真引擎,将人工社会模型中的大规模并发计算剥离,载入GPU中实现并行计算加速。在基于三层引擎管理的引擎架构下,异构仿真内核和计算组件可以实现灵活拓展。(2)实现了面向大规模Agent仿真的GPU仿真内核。根据Agent仿真特点和GPU硬件执行特点,对Agent模型和事件队列数据结构进行优化设计,并基于此数据结构设计了基于同步保守并行策略的GPU内核调度算法。针对GPU内核运行时的并发事件操作,提出了GPU消息输出算法;为了进一步提升同步保守并行仿真算法的性能,提出了基于GPU的大规模时间归约算法。在GameOfLife测试模型中,相对单核CPU,GPU仿真内核获得了11.2倍的性能加速。(3)提出了基于GPU的计算服务组件,并实现了在公共卫生事件仿真中基于GPU的社会关系网络查询组件。与CPU查询算法相比,不仅减少了Agent模型的内存占用,而且在并发查询数量较大时也能够获得较大的性能加速。