论文部分内容阅读
模拟器是计算机系统体系结构研究的常用工具,是研究新型计算机系统的重要途径。未来,高性能计算机将向超大规模并行方向发展,不但节点规模进一步增加,节点内部的并行性也会进一步增加。这种并行化趋势给传统的串行模拟器带来了巨大的挑战:由于单机处理能力的限制,大规模系统的模拟无法在有限时间内完成。目前,已有的并行系统提供了强大的计算和存储能力,为模拟大规模的高性能计算机提供了可能。因此,并行模拟是高性能计算机系统和体系结构研究的重要手段。
并行模拟的关键技术包括模块间的高效同步、调度、通信和缓冲区管理机制,本文在这些方面分别提出了基于阻塞/唤醒机制的同步策略、无锁调度和通信机制,以及线程安全的缓冲区管理方法,其中无锁调度机制中在因果一致性系统中甚至不需要原子指令的支持。另外,对于并行模拟情况下的模块执行模式,还提出了一种超步执行的加速途径。基于以上方法实现的模拟器的测试结果表明,上述机制在SMP节点上取得近似线性的扩展性,最好情况下在8线程模式可以取得14.96倍的超线性加速比。
为了充分利用宿主机资源,并行模拟的负载需要在宿主机各CPU上均匀分配。由于静态负载分配的方法无法应对系统运行中的动态变化情况,本文根据细粒度模拟的负载特征,提出了一种毫秒级的协作迁移机制。该机制不仅具有快速决策和迁移的特点,而且充分考虑了多核处理器之间的cache影响。基于共享内存编程模型,给出了迁移队列的三种实现方式。实验表明,在4核处理器上最高可以取得16.2%的性能提高。
本文对上述工作进行了评测和分析,发现多核处理器的cache对并行模拟有着显著的影响。扩展性测试中,如果多核cache被充分利用,可以取得超线性加速比;迁移机制测试中,对多处理器间cache行为做细致优化,则效果明显;反之,迁移机制甚至会对性能带来负面影响。
目前已知的并行模拟器很少,并行模拟器具有细粒度同步的紧耦合特征,因此并行化实现的难度很大。源于微内核操作系统的思想,本文开发了并行模拟引擎SimK,它以API的形式将并行模拟的支撑环境提供给模块开发者,可以减轻并行模拟器的开发工作量。微测试程序表明,SimK可以支持上万规模的目标系统的并行模拟,并且在调度、同步和通信方面具有较好的扩展性。
基于SimK,本文开发了一种新型高性能计算机体系结构HPP的系统模拟平台。通过多粒度并行模拟、模拟器和宿主机协作执行等技术,该平台有效地支持了HPP系统的微结构研究。该模拟平台提供了linux二进制兼容的应用程序运行环境,使得SPEC CPU2000,NPB-MPI2.4,HPCC1.0等测试程序可以直接运行。实验表明,该模拟平台正确地模拟了HPP结构,并支持了互连网络体系结构的研究和系统软件、应用软件的开发。