CN102760097B - 一种计算机体系结构性能模拟方法及系统 - Google Patents
一种计算机体系结构性能模拟方法及系统 Download PDFInfo
- Publication number
- CN102760097B CN102760097B CN201110110819.XA CN201110110819A CN102760097B CN 102760097 B CN102760097 B CN 102760097B CN 201110110819 A CN201110110819 A CN 201110110819A CN 102760097 B CN102760097 B CN 102760097B
- Authority
- CN
- China
- Prior art keywords
- architecture
- module
- basic
- abstract model
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种计算机体系结构性能模拟方法及系统,所述计算机体系结构性能模拟方法包括:建立包含目标应用的基本模块的应用抽象模型,所述基本模块包括基本计算模块和基本通信模块;根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型;建立包含通用模拟平台的体系结构性能模拟器,并将所述体系结构抽象模型以模块形式耦合至所述体系结构性能模拟器中,所述体系结构性能模拟器具有与所述应用抽象模型进行通信的模拟接口;调用所述模拟接口,以参数形式传递所述应用抽象模型的计算信息和通信信息,驱动所述体系结构性能模拟器完成目标机体系结构的性能模拟。所述模拟方法简化了性能模拟器实现,提升模拟速度,提高运行和配置的灵活性。
Description
技术领域
本发明涉及计算机系统模拟领域,特别涉及一种计算机体系结构性能模拟方法及系统。
背景技术
科学技术应用对计算能力需求快速的增加,为高性能计算机体系结构设计带来巨大挑战。目前高性能计算机规模已达几十万节点/处理器规模,在可预见的将来,会很快扩大到上百万节点。同时为了充分提高单位空间的计算能力,各种计算技术使其复杂度随规模的增加而急剧增加,高性能计算机已经成为了复杂的巨大系统。模拟技术是计算机体系结构研究的重要手段。大规模高性能计算机特别是超级计算机设计早期,需在整体上研究多种关键设计,需要模拟技术能够快速、灵活、相对准确地对不同方案给出评价,指导总体方案的形成。
当前存在一些面向大规模计算机体系结构的模拟器。有些模拟器完成性能模拟和编程环境,使用分离的网络模拟器完成网络性能模拟,例如BigSim。也有一些模拟器实现了非常详细(节拍级)的节点模拟和功能级的网络模拟,例如BGLsim。此外,当前还存在一些面向大规模科学技术应用的分析建模研究,通过分析应用的并行算法,建立问题规模和机器规模、通信间的性能表达式。
但是,当前面向大规模计算机体系结构性能模拟,应用的分析建模和体系结构的模拟是分离的。同时,详细的体系结构模拟需要的计算资源多,运行速度慢,很难扩展到大规模计算机全系统规模。
相关技术还可参考申请号为200910092644.7的中国专利申请,该专利申请公开了一种大规模并行程序性能预测实现方法。
发明内容
本发明解决的问题是现有技术中计算机体系结构性能模拟器实现复杂,模拟速度较慢、难以扩展到大规模计算机全系统规模。
为解决上述问题,本发明提供一种计算机体系结构性能模拟方法,包括:
建立包含目标应用的基本模块的应用抽象模型,所述基本模块包括基本计算模块和基本通信模块;
根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型;
建立包含通用模拟平台的体系结构性能模拟器,并将所述体系结构抽象模型以模块形式耦合至所述体系结构性能模拟器中,所述体系结构性能模拟器具有与所述应用抽象模型进行通信的模拟接口;
调用所述模拟接口,以参数形式传递所述应用抽象模型的计算信息和通信信息,驱动所述体系结构性能模拟器完成目标机体系结构的性能模拟。
可选的,所述建立包含目标应用的基本模块的应用抽象模型包括:
分离出目标应用中的基本模块;
确定所述基本模块中的模块参数;
找出目标应用中的关键控制流程;
基于所述模块参数和关键控制流程,建立应用抽象模型。
可选的,所述找出目标应用中的关键控制流程包括:通过分析所述目标应用的源代码,找出所述源代码中决定所述基本模块的调用顺序的控制流程及其参数值。
可选的,所述根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型包括:
在目标机上测量得到所述基本模块的性能随所述模块参数变化的性能曲线;
分析所述性能曲线的变化趋势,获得所述基本模块的执行时间与所述模块参数、目标机体系结构的参数之间对应关系的分析结果;
基于所述分析结果建立所述基本模块的体系结构抽象模型。
可选的,对所述模拟接口的调用是基于所述关键控制流程,对所述应用抽象模型中的基本模块进行调用。
可选的,对所述模拟接口的调用是通过高级语言实现的。
可选的,所述基本计算模块包括至少一个计算函数,所述计算信息包括所述计算函数的类型及其参数,所述体系结构性能模拟器完成目标机体系结构的性能模拟包括:
通过所述模拟接口接收所述计算函数的类型及其参数;
分析所述计算函数的类型及其参数后,根据所述基本计算模块的体系结构抽象模型计算出执行完所述计算函数所需的时间;
调用所述通用模拟平台,基于所述计算出的执行完所述计算函数所需的时间完成所述基本计算模块的模拟时间推进。
可选的,所述基本通信模块包括至少一个通信函数,所述通信信息包括所述通信函数的类型及其参数,所述体系结构性能模拟器完成目标机体系结构的性能模拟包括:
通过所述模拟接口接收所述通信函数的类型及其参数;
分析所述通信函数的类型及其参数后,根据所述基本通信模块的体系结构抽象模型计算出执行完所述通信函数所需的时间;
调用所述通用模拟平台,基于所述计算出的执行完所述通信函数所需时间完成所述基本通信模块的模拟时间推进。
为解决上述问题,本发明还提供一种计算机体系结构性能模拟系统,包括:体系结构性能模拟器和应用抽象模型,所述应用抽象模型包括基本计算模块和基本通信模块,所述体系结构性能模拟器包括通用模拟平台、模拟接口以及根据目标机的体系结构特征所建立的所述基本计算模块和基本通信模块的体系结构抽象模型;
所述应用抽象模型,用于以参数形式向所述体系结构性能模拟器传递计算信息和通信信息;
所述体系结构性能模拟器,用于调用所述模拟接口,在所述应用抽象模型提供的所述计算信息和通信信息的驱动下,通过所述体系结构抽象模型获得计算结果,基于所述计算结果调用所述通用模拟平台实现所述基本计算模块和基本通信模块的模拟时间推进以完成对目标机体系结构的性能模拟。
可选的,所述应用抽象模型是基于目标应用中的关键控制流程以及所述基本计算模块和基本通信模块的模块参数建立的。
可选的,所述体系结构抽象模型中具有所述基本计算模块和基本通信模块的执行时间与所述模块参数、目标机体系结构的参数之间的对应关系,所述计算结果是根据所述对应关系计算得出的。
可选的,所述基本计算模块包括至少一个计算函数,所述计算信息包括所述计算函数的类型及其参数,所述计算结果包括根据所述基本计算模块的体系结构抽象模型计算出执行完所述计算函数所需的时间。
可选的,所述基本通信模块包括至少一个通信函数,所述通信信息包括所述通信函数的类型及其参数,所述计算结果包括根据所述基本通信模块的体系结构抽象模型计算出执行完所述通信函数所需的时间。
与现有技术相比,本技术方案具有以下优点:
通过分离出目标应用中的基本模块,并以此建立应用抽象模型,再根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型,由此抓住目标应用的关键模块和目标机的关键结构,忽略了非关键因素;之后再以所述应用抽象模型和体系结构抽象模型为基础构建体系结构性能模拟器以实现对目标机体系结构的性能模拟,由此简化了性能模拟器实现,降低了模拟的成本,还提升了模拟速度,提高了运行和配置的灵活性。
附图说明
图1是本发明实施方式提供的计算机体系结构性能模拟方法流程示意图;
图2是HPL的关键控制流程示意图;
图3是本发明实施例的dgemm函数执行时间随矩阵大小的变化趋势示意图;
图4是本发明实施例的dtrsm函数执行时间随矩阵大小的变化趋势示意图;
图5是本发明实施例的MPI Send函数执行时间随消息长度的变化趋势示意图;
图6是图5中消息长度小于2048B时MPI Send函数执行时间随消息长度的变化趋势示意图;
图7是图5中消息长度大于2048B时MPI Send函数执行时间随消息长度的变化趋势示意图;
图8是本发明实施例的MPI Recv函数执行时间随消息长度的变化趋势示意图;
图9是图8中消息长度小于2048B时MPI Recv函数执行时间随消息长度的变化趋势示意图;
图10是图8中消息长度大于2048B时MPI Recv函数执行时间随消息长度的变化趋势示意图;
图11是本发明实施例建立包含通用模拟平台的体系结构性能模拟器示意图;
图12是本发明实施例的目标机体系结构性能模拟器结构示意图;
图13是本发明实施方式提供的计算机体系结构性能模拟系统结构示意图。
具体实施方式
现有技术中面向大规模计算机体系结构性能模拟时,目标应用的分析建模和目标机体系结构的模拟是分离的。同时,详细的体系结构模拟需要的计算资源多,运行速度慢,很难扩展到大规模计算机全系统规模。本技术方案通过分离出目标应用中的基本模块,并以此建立应用抽象模型,再根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型,由此抓住目标应用的关键模块和目标机的关键结构,忽略了非关键因素;之后再以所述应用抽象模型和体系结构抽象模型为基础构建体系结构性能模拟器以实现对目标机体系结构的性能模拟,从而满足目标机设计初期探索巨大设计空间的速度和准确性要求。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。
图1是本发明实施方式提供的计算机体系结构性能模拟方法流程示意图。如图1所示,所述计算机体系结构性能模拟方法包括:
步骤S101,建立包含目标应用的基本模块的应用抽象模型,所述基本模块包括基本计算模块和基本通信模块;
步骤S102,根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型;
步骤S103,建立包含通用模拟平台的体系结构性能模拟器,并将所述体系结构抽象模型以模块形式耦合至所述体系结构性能模拟器中,所述体系结构性能模拟器具有与所述应用抽象模型进行通信的模拟接口;
步骤S104,调用所述模拟接口,以参数形式传递所述应用抽象模型的计算信息和通信信息,驱动所述体系结构性能模拟器完成目标机体系结构的性能模拟。
下面以具体实施例对上述方法作详细说明。
首先,执行步骤S101,建立包含目标应用的基本模块的应用抽象模型,所述基本模块包括基本计算模块和基本通信模块。本实施例中选取的目标应用为高性能Linpack测试基准(HPL,High-Performance Computing LinpackBenchmark),通过对高性能计算机求解基于LU分解(LU Decomposition)的主元高斯消元法进行非奇异稠密线性方程组Ax=b,是当前国际上流行的高性能计算机系统浮点性能的测试程序。HPL代表了许多大型科学计算特征,其算法广泛应用于大规模离散问题、流体力学、结构力学等领域的线性或非线性偏微分方程的求解,对类似的实际应用具有指导意义;HPL并行实现及性能优化可对并行计算的关键技术,如并行化策略、数据划分方法、通信优化方法、缓存(Cache)性能优化模式等进行研究。HPL实现需要数学库和通信库的支持,包括基础线性代数子程序库(Blas,Basic Linear AlgebraSubprograms)、矢量图形信号处理库(VSIPL)、消息传递接口库(MPI,MessagePassing Interface)等。
所述建立包含目标应用的基本模块的应用抽象模型包括以下步骤:
S101a,分离出目标应用中的基本模块;
S101b,确定所述基本模块中的模块参数;
S101c,找出目标应用中的关键控制流程;
S101d,基于所述模块参数和关键控制流程,建立应用抽象模型。
本实施例中具体以Blas和MPI支持的HPL(v2.0版本)作为目标应用,分别使用ATLAS(Automatically Tuned Linear Algebra Software)和MPICH(MPI的一种具体实现)作为数学库和通信库;使用编译器GCC(GNU CompilerCollection),Linux运行环境。
编译HPL时,使用“-pg”编译选项,编译器GCC在程序中加入运行时指示,HPL在运行过程中会记录各种函数运行时间占总时间的百分比。使用如下的参数运行HPL,测试单进程运行过程:
单进程运行过程中,几个关键计算函数运行时间比例如下表所示:
由此可见,Blas函数占据了绝大部分运行时间,因此可以把Blas函数作为HPL的基本计算模块。通过观察源代码(hpl_blas.h),HPL调用了10个Blas函数:dswap、dcopy、daxpy、dscal、idamax、dgemv、dtrsv、dger、dgemm、dtrsm。上述确定的这10个函数即为所述基本计算模块的模块参数。至此便分离出了目标应用中的基本计算模块,所述基本计算模块包括了上述10个计算函数。
编译HPL时,使用“-mpilog”编译选项,在程序中加入运行时指示,HPL在运行过程中会记录MPI函数。测试多进程运行过程,可使用“jumpshot”程序观察MPI的日志(log)文件,可以看到HPL在运行过程中只使用了MPI Send、MPI Recv、MPI Irecv、MPI Wait四个MPI函数。因此,可以把这四个MPI函数分别作为HPL的基本通信模块。上述确定的这4个函数即为所述基本通信模块的模块参数。至此便分离出了目标应用中的基本通信模块,所述基本通信模块包括了上述4个通信函数。
因此,在后续的步骤中,把这10个Blas函数和4个MPI函数提供给体系结构性能模拟器,使之模拟实现这些函数相应的模拟接口。
所述找出目标应用中的关键控制流程(步骤S101c)包括:通过分析所述目标应用的源代码,找出所述源代码中决定所述基本模块的调用顺序的控制流程及其参数值。在本实施例中,由于目标应用的输入文件(HPL.dat)中规定了HPL运行过程中各种参数和算法,可以通过分析其源代码,找到HPL如何使用这些输入数据,由此找出决定基本计算模块和基本通信模块的调用顺序的关键控制流程及其参数值。例如,HPL的关键控制流程如图2所示,整个控制流程依次为:块分解(对每个节点处理的矩阵块进行分解)、块广播(对分解后的矩阵块进行广播,建立与其他节点的通信)、预计算(在节点的处理器空闲时进行预计算)、更新(计算后更新计算结果),如果完成对整体矩阵的LU分解(L是单位下三角矩阵,U是单位上三角矩阵)后则进行回代求解,否则继续执行对整体矩阵的LU分解。
当分离出目标应用中的基本计算模块和基本通信模块,并确定所述基本模块中的模块参数,找出目标应用中的关键控制流程之后,便可以基于所述模块参数和关键控制流程,建立应用抽象模型。
在建立所述应用抽象模型后,执行步骤S102,根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型。本实施例中的目标机(被模拟的计算机)由计算节点和互联网络组成,每个计算节点主要包括高性能功耗比SoC(System on Chip)处理芯片、DDR内存、Flash卡外存、百兆以太网口;所述互联网络为全交换网络。经过步骤S101确定基本计算模块和基本通信模块之后,便可以根据目标机的体系结构特征,建立所述基本计算模块(10个Blas函数)和基本通信模块(4个MPI函数)的体系结构抽象模型。由于所述体系结构抽象模型的建立不仅考虑了目标机的体系结构特征,而且考虑了针对特定的目标应用所建立的应用抽象模型的特征,因此对体系结构模拟器实现目标应用时的性能模拟更具针对性和准确性。而且,由于应用抽象模型和体系结构抽象模型都抓住目标应用的关键模块和目标机的关键结构,忽略了非关键因素,后续基于其简单的结构而构建的体系结构性能模拟器,由于简化了性能模拟器实现,因此降低了模拟的成本,提升了模拟速度,而且可以针对不同的目标应用和不同的目标机设计对应的应用抽象模型和体系结构抽象模型,提高了运行和配置的灵活性。
步骤S102具体可以包括:
步骤S102a,在目标机上测量得到所述基本模块(基本计算模块和基本通信模块)的性能随所述模块参数变化的性能曲线。
步骤S102b,分析所述性能曲线的变化趋势,获得所述基本模块的执行时间与所述模块参数、目标机体系结构的参数之间对应关系的分析结果。由此,可以使所述基本模块的执行能够适应特定目标机体系结构的参数变化情况,以及特定极限情况。
步骤S102c,基于所述分析结果建立所述基本模块的体系结构抽象模型。
下面对本实施例的基本计算模块(10个Blas函数)和基本通信模块(4个MPI函数)中的几个典型函数建立体系结构抽象模型举例说明:
(1)例如dgemm函数,在目标机计算节点上测试,计算时间随矩阵大小(维数)变化情况如图3所示。分析图3所示的性能曲线的变化趋势并得出分析结果后,可以建立dgemm函数执行时间和矩阵大小之间的关系(体系结构抽象模型):
t=(2E-07)e2.09m
其中,t表示dgemm函数执行时间,m表示矩阵大小。
需要说明的是,在目标机计算节点上测试后得出的计算时间随矩阵大小(维数)变化情况的性能曲线与基于其建立的体系结构抽象模型的曲线在这个例子中是重合,在其他例子中,所建立的体系结构抽象模型的曲线可能与目标机计算节点上测试后形成的性能曲线并不重合。具体可参考下面第3个和第4个的示例。
(2)例如dtrsm函数,在目标机计算节点上测试,计算时间随矩阵大小(维数)变化情况如图4所示。因此可以建立dtrsm函数执行时间和矩阵大小之间的关系(体系结构抽象模型):
t=(8E-07)e2.057m
其中,t表示dtrsm执行时间,m表示矩阵大小。
(3)例如MPI_Send函数,在目标机上测试,执行时间(通信时间)随消息长度(大小)变化情况如图5所示。可以看到,消息长度以2048B为转折点,MPI_Send函数的执行时间呈两种变化趋势。
当消息长度小于2048B时,其执行时间变化趋势如图6中实线所示。由此可以(通过拟合)建立MPI_Send函数执行时间和消息长度之间的关系(体系结构抽象模型),如图6中虚线所示:
t=(6E-09)l6-(2E-07)l5+(3E-06)l4-(2E-05)l3+(8E-05)l2
其中,t表示MPI_Send执行时间,l表示消息长度。
当消息长度大于2024B时,其执行时间变化趋势如图7中实线所示。由此可以建立MPI_Send函数执行时间和消息长度之间的关系(体系结构抽象模型),如图7中虚线所示:
t=(2E-05)l4
t表示MPI_Send执行时间,l表示消息长度。
(4)例如MPI_Recv函数,在目标机上测试,执行时间(通信时间)随消息的大小变化情况如图8所示。可以看到,消息长度以2048B为转折点,MPI_Recv函数的执行时间呈两种变化趋势。
当消息长度小于2048B时,其执行时间变化趋势如图9中实线所示。由此可以建立MPI_Recv函数执行时间和消息长度之间的关系(体系结构抽象模型),如图9中虚线所示:
t=(4E-09)l6-(1E-07)l5+(2E-06)l4-(1E-05)l3+(4E-05)l2-(5E-05)l+6E-05
其中,t表示MPI Recv执行时间,l表示消息长度。
当消息长度大于2048B时,其执行时间变化趋势如图10中实线所示。由此可以建立MPI_Recv函数执行时间和消息长度之间的关系(体系结构抽象模型),如图10中虚线所示:
t=(3E-06)l6-(6E-05)l5+(0.002)l3+(0.004)l2-(0.005)l+0.002
其中,t表示MPI_Recv执行时间,l表示消息长度。
需要说明的是,从上述4个示例的图中,仅能直观地反映出基本模块的执行时间与所述模块参数之间对应关系,但是,目标机体系结构的参数对于基本模块的执行时间同样会有影响,例如,执行时目标机体系结构中的内存大小、处理器的频率大小、网络的带宽大小等参数都会对执行时间产生影响。
如上述建模方式,建立起每种基本模块的体系结构抽象模型。
当建立完所有基本模块的体系结构抽象模型后,执行步骤S103,建立包含通用模拟平台的体系结构性能模拟器,并将所述体系结构抽象模型以模块形式耦合至所述体系结构性能模拟器中,所述体系结构性能模拟器具有与所述应用抽象模型进行通信的模拟接口。所述模拟接口可以预先定义好,也可以基于新的目标应用生成。
图11是本发明实施例建立包含通用模拟平台的体系结构性能模拟器示意图。参阅图11,本实施例中,所述通用模拟平台为大规模多精度并行模拟平台ArchSim,以ArchSim为基础建立目标机的体系结构性能模拟器。所述体系结构性能模拟器中的节点和交换机(路由器)实现为ArchSim的实体,在运行过程中直接利用了ArchSim提供的各种分布运行机制,包括分布启动机制、消息传递机制、远程管理机制、离散时间同步机制、信息管理机制等。图11示出了通过互连网络连接的多个计算节点,每个节点包括至少一个处理器,每个处理器作为一局部服务者通过消息通信机制进行实体管理/调度、实体信息管理等。此外,还设置一个处理器作为全局服务者通过消息通信机制进行全局信息管理、实现集中控制机制等。图11中的圆图表示节点/交换机,箭头表示通信的通道,消息通过各通道在各节点中传递以实现整个目标机体系结构的模拟。
图12是本发明实施例的目标机体系结构性能模拟器结构示意图。如图12所示,所述目标机体系结构性能模拟器包括:模拟接口、体系结构抽象模型以及通用模拟平台;
所述模拟接口包括:Blas函数模拟接口101、MPI函数模拟接口102a和MPI函数模拟接口102b;
所述体系结构抽象模型包括:处理器接口(SoC)103、网络接口(NET)104、输入输出接口(I/O)105、内存系统接口(MEM.System)106;
所述通用模拟平台与所述体系结构抽象模型连接,包括多个计算节点(NODE),图12中仅示出了其中一个计算节点107,其中,计算节点107包括了处理器(SoC)、互连网络(NET)、输入输出(I/O)、内存系统(MEM.System)等模拟模块,分别通过处理器接口(SoC)103、网络接口(NET)104、输入输出接口(I/O)105、内存系统接口(MEM.System)106与所述体系结构抽象模型连接。计算节点通过处理器运行加载的应用(application);各个计算节点通过网络接口104进行消息的传递。
其中,Blas函数模拟接口101与处理器接口103连接,Blas函数及其参数通过处理器接口103传递至所述体系结构抽象模型中进行计算执行完所述Blas函数所需的时间;并且MPI函数模拟接口102a也与处理器接口103连接,因为在Blas函数的计算过程中,也可能会调用通信函数MPI实现消息的传递。当然,也可能存在通信函数MPI单独进行通信的情况,此时,参阅图12,MPI函数模拟接口102b与网络接口104连接,MPI函数及其参数通过网络接口104传递至所述体系结构抽象模型中进行计算执行完所述MPI函数所需的时间。
此外,图12还示出了输入输出接口(I/O)105、内存系统接口(MEM.System)106,由于本实施例中从目标应用分离出的基本模块并不涉及对输入输出以及内存系统的性能模拟,因此并不作详细说明。在其他实施例中,还可以针对输入输出、内存系统的应用建立相应模型(应用抽象模型和体系结构抽象模型),并基于所述模型建立体系结构模拟器对输入输出、内存系统进行性能模拟。
本实施例中,所述目标机体系结构性能模拟器具体提供了10个Blas函数和4个MPI函数相应的模拟接口。
建立上述体系结构性能模拟器后,执行步骤S104,调用所述模拟接口,以参数形式传递所述应用抽象模型的计算信息和通信信息,驱动所述体系结构性能模拟器完成目标机体系结构的性能模拟。本实施例中所述的性能模拟为对目标机体系结构全系统性能模拟,在其他实施例中,也可以对目标机体系结构进行局部性能模拟,例如节点模拟或者网络模拟。
所述基本计算模块包括至少一个计算函数,所述计算信息包括所述计算函数的类型及其参数,所述体系结构性能模拟器完成目标机体系结构的性能模拟包括:
通过所述模拟接口接收所述计算函数的类型及其参数;
分析所述计算函数的类型及其参数后,根据所述基本计算模块的体系结构抽象模型计算出执行完所述计算函数所需的时间;
调用所述通用模拟平台,基于所述计算出的执行完所述计算函数所需的时间完成所述基本计算模块的模拟时间推进。
具体实施例中,Blas函数的实现过程如下:
首先通过Blas函数相应模拟接口(图12所示Blas函数模拟接口101)接收Blas函数类型及其参数(例如图12所示的blas运行时间参数),接着通过体系结构性能模拟器分析Blas函数类型和参数,根据Blas函数模块的体系结构抽象模型计算出执行完对应Blas函数所需的时间,最后调用ArchSim(具体由图12中的计算节点107进行处理),基于所述计算出的执行完对应Blas函数所需的时间完成模拟时间推进。
所述基本通信模块包括至少一个通信函数,所述通信信息包括所述通信函数的类型及其参数,所述体系结构性能模拟器完成目标机体系结构的性能模拟包括:
通过所述模拟接口接收所述通信函数的类型及其参数;
分析所述通信函数的类型及其参数后,根据所述基本通信模块的体系结构抽象模型计算出执行完所述通信函数所需的时间;
调用所述通用模拟平台,基于所述计算出的执行完所述通信函数所需时间完成所述基本通信模块的模拟时间推进。
具体实施例中,MPI函数的实现过程如下:
首先通过MPI函数相应的模拟接口(图12所示MPI函数模拟接口102b)接收MPI函数类型及其参数(例如图12所示的MPI运行时间参数),接着分析所述通信函数的类型及其参数后,通过网络接口(如图12所示网络接口104)把MPI函数及其参数传递给MPI函数模块的体系结构抽象模型,根据其计算执行完对应MPI函数所需的时间,最后调用ArchSim(具体由图12中的计算节点107进行处理),基于计算出的执行完对应MPI函数所需的时间完成模拟时间推进。
对所述模拟接口的调用具体是基于目标应用的所述关键控制流程,对所述应用抽象模型中的基本模块进行调用,并且对所述模拟接口的调用是通过高级语言实现的。本实施例中,根据前面提到的HPL的关键控制流程,调用体系结构性能模拟器提供的Blas函数模块接口和MPI函数模块接口,使用高级语言(例如C/C++)在体系结构性能模拟器上实现应用抽象模型。
例如,所述HPL关键控制流程用C/C++高级语言实现如下:
通过编译所述体系结构性能模拟器,运行获得模拟结果,至此便完成了对目标机体系结构全系统性能模拟。
基于上述计算机体系结构性能模拟方法,本发明实施方式还提供一种计算机体系结构性能模拟系统。图13是本发明实施方式提供的计算机体系结构性能模拟系统结构示意图。参阅图13,所述计算机体系结构性能模拟系统包括:体系结构性能模拟器20和应用抽象模型10,所述应用抽象模型10包括基本计算模块10a和基本通信模块10b,所述体系结构性能模拟器20包括通用模拟平台20c、模拟接口20a以及根据目标机的体系结构特征所建立的所述基本计算模块10a和基本通信模块10b的体系结构抽象模型20b。所述应用抽象模型10,用于以参数形式向所述体系结构性能模拟器20传递计算信息和通信信息;所述体系结构性能模拟器20,用于调用所述模拟接口20a,在所述应用抽象模型10提供的所述计算信息和通信信息的驱动下,通过所述体系结构抽象模型20b获得计算结果,基于所述计算结果调用所述通用模拟平台20c实现所述基本计算模块10a和基本通信模块10b的模拟时间推进以完成对目标机体系结构的性能模拟。
所述应用抽象模型10是基于目标应用中的关键控制流程以及所述基本计算模块10a和基本通信模块10b的模块参数建立的。
所述体系结构抽象模型20b中具有所述基本计算模块10a和基本通信模块10b的执行时间与所述模块参数、目标机体系结构的参数之间的对应关系,所述计算结果是根据所述对应关系计算得出的。
所述基本计算模块10a包括至少一个计算函数,所述计算信息包括所述计算函数的类型及其参数,所述计算结果包括根据所述基本计算模块10a的体系结构抽象模型计算出执行完所述计算函数所需的时间。所述基本通信模块10b包括至少一个通信函数,所述通信信息包括所述通信函数的类型及其参数,所述计算结果包括根据所述基本通信模块10b的体系结构抽象模型计算出执行完所述通信函数所需的时间。
所述计算机体系结构性能模拟系统的具体实施可参考上述计算机体系结构性能模拟方法,在此不再赘述。
综上,本发明实施方式提供的计算机体系结构性能模拟方法及系统,至少具有如下有益效果:
通过分离出目标应用中的基本模块,并以此建立应用抽象模型,再根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型,由此抓住目标应用的关键模块和目标机的关键结构,忽略了非关键因素;之后再以所述应用抽象模型和体系结构抽象模型为基础构建体系结构性能模拟器以实现对目标机体系结构的性能模拟,由此简化了性能模拟器实现,降低了模拟的成本,还提升了模拟速度,提高了运行和配置的灵活性。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (13)
1.一种计算机体系结构性能模拟方法,其特征在于,包括:
建立包含目标应用的基本模块的应用抽象模型,所述基本模块包括基本计算模块和基本通信模块;
根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型;
建立包含通用模拟平台的体系结构性能模拟器,并将所述体系结构抽象模型以模块形式耦合至所述体系结构性能模拟器中,所述体系结构性能模拟器具有与所述应用抽象模型进行通信的模拟接口;
调用所述模拟接口,以参数形式传递所述应用抽象模型的计算信息和通信信息,驱动所述体系结构性能模拟器完成目标机体系结构的性能模拟。
2.根据权利要求1所述的计算机体系结构性能模拟方法,其特征在于,所述建立包含目标应用的基本模块的应用抽象模型包括:
分离出目标应用中的基本模块;
确定所述基本模块中的模块参数;
找出目标应用中的关键控制流程;
基于所述模块参数和关键控制流程,建立应用抽象模型。
3.根据权利要求2所述的计算机体系结构性能模拟方法,其特征在于,所述找出目标应用中的关键控制流程包括:通过分析所述目标应用的源代码,找出所述源代码中决定所述基本模块的调用顺序的控制流程及其参数值。
4.根据权利要求2所述的计算机体系结构性能模拟方法,其特征在于,所述根据目标机的体系结构特征,建立所述基本模块的体系结构抽象模型包括:
在目标机上测量得到所述基本模块的性能随所述模块参数变化的性能曲线;
分析所述性能曲线的变化趋势,获得所述基本计算模块的执行时间与所述模块参数、目标机体系结构的参数之间对应关系以及所述基本通信模块的执行时间与所述模块参数、目标机体系结构的参数之间对应关系的分析结果;
基于所述分析结果建立所述基本模块的体系结构抽象模型。
5.根据权利要求2所述的计算机体系结构性能模拟方法,其特征在于,对所述模拟接口的调用是基于所述关键控制流程,对所述应用抽象模型中的基本模块进行调用。
6.根据权利要求1所述的计算机体系结构性能模拟方法,其特征在于,对所述模拟接口的调用是通过高级语言实现的。
7.根据权利要求1所述的计算机体系结构性能模拟方法,其特征在于,所述基本计算模块包括至少一个计算函数,所述计算信息包括所述计算函数的类型及其参数,所述体系结构性能模拟器完成目标机体系结构的性能模拟包括:
通过所述模拟接口接收所述计算函数的类型及其参数;
分析所述计算函数的类型及其参数后,根据所述基本计算模块的体系结构抽象模型计算出执行完所述计算函数所需的时间;
调用所述通用模拟平台,基于所述计算出的执行完所述计算函数所需的时间完成所述基本计算模块的模拟时间推进。
8.根据权利要求1所述的计算机体系结构性能模拟方法,其特征在于,所述基本通信模块包括至少一个通信函数,所述通信信息包括所述通信函数的类型及其参数,所述体系结构性能模拟器完成目标机体系结构的性能模拟包括:
通过所述模拟接口接收所述通信函数的类型及其参数;
分析所述通信函数的类型及其参数后,根据所述基本通信模块的体系结构抽象模型计算出执行完所述通信函数所需的时间;
调用所述通用模拟平台,基于所述计算出的执行完所述通信函数所需时间完成所述基本通信模块的模拟时间推进。
9.一种计算机体系结构性能模拟系统,其特征在于,包括:体系结构性能模拟器和应用抽象模型,所述应用抽象模型包括基本计算模块和基本通信模块,所述体系结构性能模拟器包括通用模拟平台、模拟接口以及根据目标机的体系结构特征所建立的所述基本计算模块和基本通信模块的体系结构抽象模型;
所述应用抽象模型,用于以参数形式向所述体系结构性能模拟器传递计算信息和通信信息;
所述体系结构性能模拟器,用于调用所述模拟接口,在所述应用抽象模型提供的所述计算信息和通信信息的驱动下,通过所述体系结构抽象模型获得计算结果,基于所述计算结果调用所述通用模拟平台实现所述基本计算模块和基本通信模块的模拟时间推进以完成对目标机体系结构的性能模拟。
10.根据权利要求9所述的计算机体系结构性能模拟系统,其特征在于,所述应用抽象模型是基于目标应用中的关键控制流程以及所述基本计算模块和基本通信模块的模块参数建立的。
11.根据权利要求10所述的计算机体系结构性能模拟系统,其特征在于,所述体系结构抽象模型中具有所述基本计算模块的执行时间与所述模块参数、目标机体系结构的参数之间的对应关系以及所述基本通信模块的执行时间与所述模块参数、目标机体系结构的参数之间的对应关系,所述计算结果是根据所述对应关系计算得出的。
12.根据权利要求9所述的计算机体系结构性能模拟系统,其特征在于,所述基本计算模块包括至少一个计算函数,所述计算信息包括所述计算函数的类型及其参数,所述计算结果包括根据所述基本计算模块的体系结构抽象模型计算出执行完所述计算函数所需的时间。
13.根据权利要求9所述的计算机体系结构性能模拟系统,其特征在于,所述基本通信模块包括至少一个通信函数,所述通信信息包括所述通信函数的类型及其参数,所述计算结果包括根据所述基本通信模块的体系结构抽象模型计算出执行完所述通信函数所需的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110110819.XA CN102760097B (zh) | 2011-04-29 | 2011-04-29 | 一种计算机体系结构性能模拟方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110110819.XA CN102760097B (zh) | 2011-04-29 | 2011-04-29 | 一种计算机体系结构性能模拟方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102760097A CN102760097A (zh) | 2012-10-31 |
CN102760097B true CN102760097B (zh) | 2015-01-14 |
Family
ID=47054561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110110819.XA Active CN102760097B (zh) | 2011-04-29 | 2011-04-29 | 一种计算机体系结构性能模拟方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102760097B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176904B (zh) * | 2013-03-29 | 2015-08-19 | 北京经纬恒润科技有限公司 | 一种仿真测试平台软件架构及基于该架构的测试方法 |
CN105512018A (zh) * | 2014-09-23 | 2016-04-20 | 上海精密计量测试研究所 | 一种并行系统性能的形式化分析方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650687A (zh) * | 2009-09-14 | 2010-02-17 | 清华大学 | 一种大规模并行程序性能预测实现方法 |
-
2011
- 2011-04-29 CN CN201110110819.XA patent/CN102760097B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650687A (zh) * | 2009-09-14 | 2010-02-17 | 清华大学 | 一种大规模并行程序性能预测实现方法 |
Non-Patent Citations (2)
Title |
---|
《面向HPC体系结构性能模拟的建模与模拟框架研究》;张昆 等;《高性能计算技术》;20091231(第6期);1-6 * |
Yong-Qin Huang,et al.《ArchSim: A System-Level Parallel Simulation Platform for theArchitecture Design of High Performance Computer》.《JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY》.2009,第5卷(第24期),901-912. * |
Also Published As
Publication number | Publication date |
---|---|
CN102760097A (zh) | 2012-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bhimani et al. | Fim: performance prediction for parallel computation in iterative data processing applications | |
Chamberlain et al. | Auto-Pipe: Streaming applications on architecturally diverse systems | |
US20170068751A1 (en) | Manifold system and synthesis of a manifold system from input models | |
Duenha et al. | Mpsocbench: A toolset for mpsoc system level evaluation | |
Mack et al. | User-space emulation framework for domain-specific soc design | |
Végh | How Amdahl’s Law limits the performance of large artificial neural networks: why the functionality of full-scale brain simulation on processor-based simulators is limited | |
Krawezik et al. | Accelerating the ANSYS direct sparse solver with GPUs | |
Zarrin et al. | Manycore simulation for peta-scale system design: Motivation, tools, challenges and prospects | |
CN115271078A (zh) | 一种超级计算机与量子计算机协同的软件栈及工作方法 | |
Oyamada et al. | Software performance estimation in MPSoC design | |
CN102760097B (zh) | 一种计算机体系结构性能模拟方法及系统 | |
Tsoi et al. | Programming framework for clusters with heterogeneous accelerators | |
Yih et al. | Fpga versus gpu for speed-limit-sign recognition | |
Yang et al. | An approach to build cycle accurate full system VLIW simulation platform | |
Ahn et al. | Evaluating Performance Optimizations of Large-scale Genomic Sequence Search Applications using SST/macro. | |
Paolucci et al. | EURETILE 2010-2012 summary: first three years of activity of the European Reference Tiled Experiment | |
Svensson | Occam‐pi for Programming of Massively Parallel Reconfigurable Architectures | |
George et al. | An Integrated Simulation Environment for Parallel and Distributed System Prototying | |
Giorgi | Exploring future many-core architectures: The TERAFLUX evaluation framework | |
CN112394914A (zh) | 一种面向物联网应用的以边缘为中心的编程方法 | |
Wojenski et al. | Hardware acceleration of complex HEP algorithms with HLS and FPGAs: Methodology and preliminary implementation | |
Lin et al. | Leveraging simulation of high performance computing systems with node simulation using architecture simulator | |
Duenha et al. | Mpsocbench: A benchmark suite for evaluating multiprocessor system-on-chip tools and methodologies | |
Xiao et al. | End-to-end programmable computing systems | |
Cong et al. | Designing Application-Specific Heterogeneous Architectures from Performance Models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |