论文部分内容阅读
当今,随着微处理器制造与集成技术的不断进步与发展,以多核处理器为节点而构成的集群系统以其较高的性价比日渐成为主流的并行计算平台。与此同时,现代科学与工程计算中大规模数据处理的需求也在与日俱增。如何充分发挥多核集群的计算资源优势,从根本上提高并行程序运行性能,满足人们的计算需求,却是摆在研究人员面前一个急需解决的难题。由于大规模科学与工程计算程序的运行时间往往很长,因此,借助模拟器而非实际运行来得到并观测程序运行行为和性能参数已成为程序性能优化的一个重要且有效的手段。
影响并行程序运行性能的因素是多方面的,其中一个重要方面就是计算节点或处理器访存效率。然而在这方面,传统的模拟器所提供的功能有限,这主要是因为传统的模拟器往往针对串行程序的访存模拟,缺少对并行硬件平台以及并行程序的运行特点的考虑。为此,本文提出了一个面向当前主流并行系统——多核集群的并行程序Cache模拟器。本文主要的研究工作与成果如下:
第一,多核集群中Cache模型的建立与设计。本文研究了包括异构集群在内的集群Cache模型的有效建立与形式化表示方法;从可扩展性与可维护性的角度出发,给出了将诸如查找替换算法、一致性协议等Cache相关的核心算法与cache模型的不同层次进行有效整合的设计策略。本文还研究了基于消息传递多进程、基于共享变量多线程或两者混合的多种模式并行程序到多核集群Cache模型的映射关联机制。
第二,多核集群Cache模拟器的研究与设计。结合多种模式并行程序的运行特点和前面提出的多核集群Cache模型,本文对并行程序Cache模拟的全过程进行了深入的分析与探讨。在此基础上,本文研究了多核集群Cache模拟器的软件体系架构,提出了一个由Cache模拟层、通讯层和应用层组成的层次化的模拟器框架,详细定义并设计了各层的功能与接口。
目前,我们已在Intel公司Pin软件基础上完成上述模拟器框架的一个原型系统的设计与实现。较之以往的模拟器,该原型系统具有以下特色:
1、面向多核集群和多种并行程序运行环境。利用本文提出的模拟器,可以得到多模式的并行程序中各个进程或线程运行时的Cache访问信息。
2、可以模拟异构多核集群下Cache访问行为。在模拟器中,通过配置文件,用户可以分别为异构的节点指定相应的Cache模型参数,从而模拟并行程序中的进程或线程在异构集群上不同的Cache模型下的运行情况。
3、具有较高的扩展性可满足不同用户的需求。模拟器架构采用层次设计,所涉及到各个Cache有关算法都与模拟器松散耦合,方便替换。
4、可方便地模拟并行程序中几乎任意程序段的Cache访问行为。这样做不仅可以满足研究人员对某段程序或某个模块的Cache访问特征的研究需求,加强了我们模拟器使用的针对性;还减少不必要的模拟时间,提高了模拟的效率。
5、兼顾串行程序的Cache模拟。虽然针对的是Cluster并行系统及多形式并行程序运行时的Cache访问模拟,但对传统的单核处理器和串行程序也提供了良好的支持。扩大了我们模拟器的使用范围。
实际测试表明,我们的并行Cache模拟器时效好、针对性强、适应面宽。它的提出与实现弥补了以往Cache模拟工具在模拟并行程序应用时的不足,较好地满足了用户对并行程序性能优化的需求。