摘要:
1.本文的创新点
面向高性能计算机体系结构设计的需要,本文实现了一个能支持大规模系统级模拟的并行模拟平台——ArchSim,其主要创新点如下:
1)提出了一个由全局服务者、局部服务者和实体构成的并行模拟平台体系结构,该体系结构具有良好的可扩展性;
2) 设计和实现了由共享消息队列和多线程TCP通信机制构成的可扩展的消息通信基础设施,可在大规模集群宿主机上支持百万规模实体间的高效消息通信;
3)基于体系结构模拟中激励的确定性和目标系统行为的可预测性,实现了面向体系结构模拟优化的保守时间同步协议,通过运行时动态调整lookahead,可以有效提高模拟速度;
4)基于高性能计算机系统各模块间的局部因果关系和体系结构模拟允许误差的特点,提出了分组模拟策略和混合时间同步协议。通过组内执行严格保守同步协议,组间进行较乐观的非精确同步,可以提高模拟并行性,加速模拟;
5)基于ArchSim 体系结构,设计和实现了分布式检查点机制,可以为大规模系统级模拟提供可靠性保障。
2.实现方法
在ArchSim的设计和实现过程中,本文采用了层次化、模块化的设计和实现方法。层次间、模块间具有良好的接口定义,有效降低了各层次和各模块间的耦合性,使得ArchSim模拟平台具有较好的可扩展性,可以支持在不改变ArchSim体系结构的基础上,对底层基础设施实现机制进行替换和扩展,比如,实现新的时间同步协议等。
在对ArchSim进行测试时,本文采用了合成测试程序和真实应用相结合的方法,对ArchSim的并行加速性能、可扩展性和可靠性进行了全面的测试,并通过建模和模拟真实的高性能计算机系统,验证了ArchSim已经可以为大规模系统级模拟提供较好的支持。
3.结论及未来待解决的问题
本文面向高性能计算机体系结构模拟的需要,实现了一个具有较好的并行加速性能、高可扩展性和高可靠性的系统级并行模拟平台——ArchSim。ArchSim提供了高效消息通信机制和时间同步机制,可以支持大量实体的并行模拟,并能有效利用大规模并行宿主机加速模拟过程。通过实现分布式检查点机制,ArchSim可以为大规模、长时间的系统级模拟提供可靠保障。已有测试表明,ArchSim模拟平台已经可以支持上百万实体规模的细粒度并行模拟,获得很好的加速效果。
本文还基于ArchSim对高性能计算机系统建模和模拟方面进行了研究和探索,构建了一个大规模的并行互连网络模拟器和一个小规模的系统级性能模拟器,取得了一定的研究成果,表明ArchSim已经能够为高性能计算机体系结构模拟提供较好的支持。
对未来的高性能计算机全系统进行建模和模拟本身就是一个非常复杂的系统工程,存在许多问题需要在下一步工作中深入研究。
1)在快速建立模拟器方面,目前全部重新开发的方式效率不高,而通过集成和修改已有成熟的部件级模拟器的方法是一条较为高效的方法,这就要求ArchSim定义良好的接口规范,为已有模拟器的重用和模拟器间的互操作提供支持。
2)在对目标系统建模过程中,一些非关键部件会进行适当的抽象和简化,以简化模拟器实现和加快模拟速度。对模型的抽象必然导致模拟误差,因此,需要深入研究误差的产生原因、传递规律,及其对模拟结果的影响,在此基础上实现对模拟误差的控制。
3)在面向大规模模拟时,传统的执行驱动方式存在资源开销大、模拟速度缓慢的缺点,而传统的Trace驱动方式又存在难以生成大规模Trace、Trace存储量大的问题。因此,需要研究面向大规模系统级模拟的新的Trace驱动技术,在已有并行计算系统上快速提取小规模Trace,分析其计算和通信的内在规律,然后将通信和计算规律外推至大规模情况,生成大规模系统下的应用程序Trace,并在生成过程中实现对Trace的精简和压缩。
4)此外,如何面向体系结构模拟提供更好的建模支持,以降低用户开发模拟器的难度,如何建立模拟精度灵活可调的系统模型,以满足体系结构研究不同阶段的需要,也是本文后续工作中需要研究和解决的一些重要问题。
4.实用价值或应用前景
本文实现的ArchSim模拟平台具有很好的应用前景,可以用于构建面向体系结构设计的系统级并行模拟器,辅助体系结构设计人员对未来高性能计算机系统体系结构设计空间进行快速探索,通过定量分析,帮助设计人员在有限的时间内快速找到制约系统整体性能的瓶颈。目前,ArchSim模拟平台已具有较好的通用性和可扩展性,在ArchSim之上可以构建各种不同的系统级模拟器,用于不同目标系统体系结构的研究。同时,作为并行模拟底层基础设施,ArchSim提供高效的同步和通信机制,可以支持对极大规模目标系统,如千万亿次高性能计算机系统,进行模拟,通过利用大规模并行宿主机对模拟过程进行加速,并在可接受的时间内获得有参考价值的性能模拟数据。