CN113835984A - 一种基于国产超算微架构的众核应用性能评估方法 - Google Patents

一种基于国产超算微架构的众核应用性能评估方法 Download PDF

Info

Publication number
CN113835984A
CN113835984A CN202111135266.3A CN202111135266A CN113835984A CN 113835984 A CN113835984 A CN 113835984A CN 202111135266 A CN202111135266 A CN 202111135266A CN 113835984 A CN113835984 A CN 113835984A
Authority
CN
China
Prior art keywords
core
time
data
size
cpe
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.)
Granted
Application number
CN202111135266.3A
Other languages
English (en)
Other versions
CN113835984B (zh
Inventor
杨美红
郭强
曾云辉
庄园
张海红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Computer Science Center National Super Computing Center in Jinan
Original Assignee
Shandong Computer Science Center National Super Computing Center in Jinan
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong Computer Science Center National Super Computing Center in Jinan filed Critical Shandong Computer Science Center National Super Computing Center in Jinan
Priority to CN202111135266.3A priority Critical patent/CN113835984B/zh
Publication of CN113835984A publication Critical patent/CN113835984A/zh
Application granted granted Critical
Publication of CN113835984B publication Critical patent/CN113835984B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种基于国产超算微架构的众核应用性能评估方法。本发明针对神威国产超级计算机系统Athread并行编程模式中,线程组任务分发和结束、数据传输、数据计算、从核同步与通信等主要流程,根据大量不同规模的实际算例运行数据,拟合出对应的时间运行模型,且误差在10%以内,能有效的评估众核应用程序的运行性能。

Description

一种基于国产超算微架构的众核应用性能评估方法
技术领域
本发明具体涉及一种基于国产超算微架构的众核应用性能评估方法,属于超级计算机性能评估的技术领域。
背景技术
随着国产超级计算机的发展,“应用”在国产超级计算机平台上的性能越来越受到重视,因而急需有效的众核性能评估方法来辅助开发人员进行超级计算机性能的优化。
国产神威系列超级计算机的CPU芯片上每个核组包含1个运算控制核心(主核)和1个运算核心阵列(从核阵列),运算核心阵列由64个运算核心(从核)、阵列控制器、二级指令Cache构成,所有核组的物理空间统一编址,工作频率为1.45GHZ。运算控制核心和运算核心均可以访问芯片上所有的主存空间,但运算核心通过DMA通道访问从核局存空间更高效。基于国产CPU微型架构的特点,为了更好的发挥众核的计算能力,必须建立能有效评估从核性能的方法。
针对上述问题,现有技术中的一些规范可以实现对程序的部分代码性能进行准确、有效的评估,但缺乏系统、全面,且对一般众核代码都有效的性能评估模型;尤其是在众核优化过程中,优化方式多种多样,有时需要具体场景具体分析,对性能评估模型的建立带来巨大挑战。
例如,在清华大学薛巍、黄晓猛等人在《Taming the Monster_OvercomingProgram Optimization Challenges on SW26010》论文中提出一种基于SW26010的模型;该模型是根据内存带宽、置换页面大小以及访存时延等机器参数得到的一种理论上精确的性能模型。
发明内容
针对现有技术的不足,本发明提供了一种基于国产超算微架构的众核应用性能评估方法。
发明概述:本发明针对神威国产超级计算机系统Athread并行编程模式中,线程组任务分发(spawn)和结束(join)、数据传输(athread_get/athread_put)、数据计算、从核同步与通信等主要流程,根据大量不同规模的实际算例运行数据,拟合出对应的时间运行模型,且误差在10%以内,能有效的评估众核应用程序的运行性能。本发明默认用户众核程序能正常运行且运行结果正确。
术语解释:
Athread:神威国产超级计算机系统中的加速线程库接口。
athread_get/athread_put:加速线程库中读入/写回数据接口。
spawn/join:加速线程库的启动/结束接口。
DMA:从核的局存和主存之间的快速数据传输通道。
RMA/RLD:从核之间的通信方式。
本发明的技术方案为:
一种基于国产超算微架构的众核应用性能评估方法,具体方法如下:
1)模型输入包括Lat_SPM、n_v、n_scalar_i、n_scalar、n_arr_i_get、n_arr_ge、n_arr_i_put、n_arr_put、d_size、n_iasm、n_iasmi、n_dasm、n_ddiv、n_cmp、n_1d、n_2d、n_3d、n_i_siz、n_size、n_cpe、n_mb、n_syn、n_cpe_comm、T_cpe、n_cmp、n_gsize、n_psize、T_g1、T_p1、n_core;
其中,Lat_SPM为从核局存访问的时延,单位是cycles;n_v为数组变量的个数;n_scalar_i为整型标量个数;n_scalar为浮点型标量个数;n_arr_i_get为读入的整型数组的个数;n_arr_get为读入的浮点型数组的个数;n_arr_i_put为输出的整型数组的个数;n_arr_put为输出的浮点型数组的个数;d_size为单个数组的大小;n_iasm为循环外,整数加、减、乘指令的次数;n_iasmi为循环内,整数加、减、乘指令的次数;n_dasm为浮点加、减、乘指令的次数;n_ddiv为浮点除法指令的次数;n_cmp为比较与跳转指令的次数;n_1d为第一维及以上的维数大小;n_2d为第二维及以上的维数大小;n_3d为第三维及以上的维数大小;n_i_size为单次dma的整型数据量;n_size为单次dma的浮点型数据量;n_cpe为使用的从核数;n_mb为从核局存更新的次数;n_syn为从核间同步的次数;n_cpe_comm为从核间通信的次数;T_cpe为从核通信时间;n_cmp为比较与跳转指令的次数;n_gsize为读入数据单次传输量;n_psize为写入数据单次传输量;T_g1为单次读入固定数据量下的时间;T_p1为单次写入固定数据量下的时间;n_core为从核通信次数;
2)模型输出变量包括T_tran、T_comp、T_spawjoin、T_syn、T_overlap、T_total;输出变量的单位均为cycle;
其中,T_tran为数据传输的时间;T_comp为计算的拍数;T_spawjoin为从核启动与结束的时间;T_syn为同步的时间;T_overlap为计算与通信重叠的时间;T_total为总运行时间;
3)T_tran的计算
T_tran=T_get+T_put+T_gld (1)
在公式1中,T_get为读入数据athread_get时间,T_put为写入数据athread_put时间,T_gld为从核数据访问主存时间;
3.1)读入数据时间T_get
D_gsize=min(d_size/n_cpe,n_size) (2)
公式(2)求出每个从核读入的数据总量与n_size的最小值,即为每个数组单次读入的数据量D_gsize;
每个数组读入数据的次数:
Figure BDA0003282092400000031
则,T_get=T_g1*n_get*n_arr_get (4)
其中,T_g1为经验值;
T_get等于每个数组单次读入时间乘以每个数组读入数据的次数,再乘以读入数组的个数;T_g1为单次读入某个数据量下的经验值,此值大小通过大量不同规模的算例运行出的数据拟合而成;
3.2)写入数据时间T_put
D_psize=min(d_size/n_cpe,n_size) (5)
n_cpe,n_size这两个参数一般是常数定值,d_size由具体程序确定,一般也为常数;D_gsize与D_pgsize一个读入一个写入,其计算方式相同,得到的数值大小也相同;
每个数组写入数据的次数:
Figure BDA0003282092400000032
则,T_put=T_p1*n_put*n_arr_Put (7)
其中,T_p1为经验值;
T_p1为单次写入某个数据量下的经验值,此值大小通过大量不同规模的算例运行数据拟合成。T_put等于每个数组单次写入时间乘以每个数组写入次数乘以写入数组的个数。
4)T_comp的计算
T_comp=n_iasm*tia+(n_iasmi*tia+n_dasm*tda+n_ddiv*tdd)/2+n_cmp*tcm+T_cpe(8)
其中,tia、tda、tdd和tcm为每条指令周期的经验值;tia为整数加、减、乘运算的指令周期,tda为浮点数据加、减、乘运算的指令周期,tdd为浮点数据除法、幂运算的指令周期,tcm为跳转、比较运算的指令周期。
在公式(8)中:
◆计算的耗时=指令次数*单次指令的周期;
◆计算指令的次数是基于从核函数模板的统计方法;
◆输入的整型变量,在循环外记作单次,在循环内记作多次;
◆输入的浮点型变量,在循环外记作单次,在循环内记作多次;
◆在数据计算中,存在循环展开优化,每次迭代计算两个元素;
◆计算耗时主要统计四则运算、跳转,比较、数学函数等指令周期。
5)T_spawnjoin的计算
Figure BDA0003282092400000041
其中,3MB为程序中所需分配的内存空间,根据当前程序中分配的内存空间大小,计算出对应从核下的时间。公式中的常数(7000、9000等)通过大量不同规模的算例运行数据拟合得到。
6)T_syn的计算
T_syn=n_mb*3+n_syn*14 (10)
在公式(10)中,n_mb*3为数据传输同步指令asm volatile(“memb”)所花费的时间,n_syn*14为从核间同步函数athread_syn(ARRAY_SCOPE,-1)所花费的时间;
其中,asm volatile、athread_syn是函数,asm volatile(“memb”)、athread_syn(ARRAY_SCOPE,-1)分别是一个整体,括号内是参数;因而需要保留“()”。
7)T_overlap的计算
T_overlap=(n_iasm+n_dasm+n_ddiv+n_cmp)*Lat_SPM (11)
计算重叠时间是指,在计算之前把没有依赖关系的数据先从局存中预取出来。
8)众核程序运行的总时间
T_total=T_tran+T_comp+T_spawnjoin+T_syn-T_overlap (12)
众核性能总时间等于数据传输时间、数据计算时间、线程组任务分发与结束时间和从核同步时间总和,再减去计算的重叠时间。
优选的,公式(8)中tia=3cycles,tda=9cycles,tdd=34cycles,tcm=4cycles;公式(10)中n_mb*3=3cycles,n_syn*14=14cycles。
优选的,T_gld=0。访问主存的指令包括gld、gst等中的一个或多个,每条指令的访问时间约为278cycle;当程序优化到一定程度后,从核将完全通过DMA通道进行数据访问,就不存在gld、gst等指令访问主存时间,此时T_gld默认为0。
优选的,公式(8)中如果没有从核通信,则T_cpe=0,如果从核通信数据量≥8个double,则从核通信方式选择RMA,RMA每次通信的时间为100cycles,此时T_cpe=100*n_core;如果从核通信数据量<8个double,则从核通信方式选择RLD,RLD每次通信时间为20cycles,此时T_cpe=20*n_core。其中,double指的是双精度浮点型数据,双精度浮点型数据占8个字节的内存空间,属于实型变量的一种变量类型。
优选的,D_gsize与T_g1的对应关系如下:
当D_gsize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_g1分别为820、950、1350、2300、4100、6200、11200、23700;其中,T_g1的单位为cycle;
D_psize与T_p1的对应关系如下:
当D_psize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_p1分别为2800、3000、3400、4000、5600、10700、17700、35500;T_p1的单位为cycle。
本发明的有益效果为:
1.本发明在超算环境下通过对大量不同规模的实际算例运行的数据进行分析和总结,得到经验值,在经验值的基础上建立模型,并在数据计算中考虑了循环展开对于计算性能模型的影响,拟合出的程序运行时间模型精确度高,通用性好;
2.本发明是一种基于国产超算微架构的众核应用性能评估方法,该方法预估时间与实际众核程序运行时间误差在10%以内,能提前、准确预估出众核应用的性能情况,为众核优化人员提供重要的性能参考数据,提高众核应用的移植优化效率;
3.本发明的方法为在国产超算环境上程序优化方法的选择上提供了理论依据,降低了神威国产超级计算机的使用难度。
附图说明
图1为众核应用性能评估方法的结构图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
一种基于国产超算微架构的众核应用性能评估方法,具体方法如下:
1)模型输入包括Lat_SPM、n_v、n_scalar_i、n_scalar、n_arr_i_get、n_arr_ge、n_arr_i_put、n_arr_put、d_size、n_iasm、n_iasmi、n_dasm、n_ddiv、n_cmp、n_1d、n_2d、n_3d、n_i_siz、n_size、n_cpe、n_mb、n_syn、n_cpe_comm、T_cpe、n_cmp、n_gsize、n_psize、T_g1、T_p1、n_core;
其中,Lat_SPM为从核局存访问的时延,单位是cycles;n_v为数组变量的个数;n_scalar_i为整型标量个数;n_scalar为浮点型标量个数;n_arr_i_get为读入的整型数组的个数;n_arr_get为读入的浮点型数组的个数;n_arr_i_put为输出的整型数组的个数;n_arr_put为输出的浮点型数组的个数;d_size为单个数组的大小;n_iasm为循环外,整数加、减、乘指令的次数;n_iasmi为循环内,整数加、减、乘指令的次数;n_dasm为浮点加、减、乘指令的次数;n_ddiv为浮点除法指令的次数;n_cmp为比较与跳转指令的次数;n_1d为第一维的维数大小;n_2d为第二维的维数大小;n_3d为第三维及以上的维数大小;n_i_size为单次dma的整型数据量;n_size为单次dma的浮点型数据量;n_cpe为使用的从核数;n_mb为从核局存更新的次数;n_syn为从核间同步的次数;n_cpe_comm为从核间通信的次数;T_cpe为从核通信时间;n_cmp为比较与跳转指令的次数;n_gsize为读入数据单次传输量;n_psize为写入数据单次传输量;T_g1为单次读入固定数据量下的时间;T_p1为单次写入固定数据量下的时间;n_core为从核通信次数;
2)模型输出变量包括T_tran、T_comp、T_spawjoin、T_syn、T_overlap、T_total;输出变量的单位均为cycle;
其中,T_tran为数据传输的时间;T_comp为计算的拍数;T_spawjoin为从核启动与结束的时间;T_syn为同步的时间;T_overlap为计算与通信重叠的时间;T_total为总运行时间;
3)T_tran的计算
T_tran=T_get+T_put+T_gld (1)
在公式1中,T_get为读入数据athread_get时间,T_put为写入数据athread_put时间,T_gld为从核数据访问主存时间;
3.1)读入数据时间T_get
D_gsize=min(d_size/n_cpe,n_size) (2)
公式(2)求出每个从核读入的数据总量与n_size的最小值,即为每个数组单次读入的数据量D_gsize;
每个数组读入数据的次数:
Figure BDA0003282092400000071
则,T_get=T_g1*n_get*n_arr_get (4)
其中,T_g1为经验值;
T_get等于每个数组单次读入时间乘以每个数组读入数据的次数,再乘以读入数组的个数;T_g1为单次读入某个数据量下的经验值,此值大小通过大量不同规模的算例运行出的数据拟合而成;
3.2)写入数据时间T_put
D_psize=min(d_size/n_cpe,n_size) (5)
n_cpe,n_size这两个参数一般是常数定值,d_size由具体程序确定,一般也为常数;D_gsize与D_pgsize一个读入一个写入,其计算方式相同,得到的数值大小也相同;
每个数组写入数据的次数:
Figure BDA0003282092400000081
则,T_put=T_p1*n_put*n_arr_Put(7)
其中,T_p1为经验值;
T_p1为单次写入某个数据量下的经验值,此值大小通过大量不同规模的算例运行数据拟合成。T_put等于每个数组单次写入时间乘以每个数组写入次数乘以写入数组的个数。
4)T_comp的计算
T_comp=n_iasm*tia+(n_iasmi*tia+n_dasm*tda+n_ddiv*tdd)/2+n_cmp*tcm+T_cpe(8)
其中,tia、tda、tdd和tcm为每条指令周期的经验值;tia为整数加、减、乘运算的指令周期,tda为浮点数据加、减、乘运算的指令周期,tdd为浮点数据除法、幂运算的指令周期,tcm为跳转、比较运算的指令周期。
在公式(8)中:
◆计算的耗时=指令次数*单次指令的周期;
◆计算指令的次数是基于从核函数模板的统计方法;
◆输入的整型变量,在循环外记作单次,在循环内记作多次;
◆输入的浮点型变量,在循环外记作单次,在循环内记作多次;
◆在数据计算中,存在循环展开优化,每次迭代计算两个元素;
◆计算耗时主要统计四则运算、跳转,比较、数学函数等指令周期。
5)T_spawnjoin的计算
Figure BDA0003282092400000082
其中,3MB为程序中所需分配的内存空间,根据当前程序中分配的内存空间大小,计算出对应从核下的时间。公式中的常数(7000、9000等)通过大量不同规模的算例运行数据拟合得到。
6)T_syn的计算
T_syn=n_mb*3+n_syn*14 (10)
在公式(10)中,n_mb*3为数据传输同步指令asm volatile(“memb”)所花费的时间,n_syn*14为从核间同步函数athread_syn(ARRAY_SCOPE,-1)所花费的时间;
其中,asm volatile、athread_syn是函数,asm volatile(“memb”)、athread_syn(ARRAY_SCOPE,-1)分别是一个整体,括号内是参数;因而需要保留“()”。
7)T_overlap的计算
T_overlap=(n_iasm+n_dasm+n_ddiv+n_cmp)*Lat_SPM (11)
计算重叠时间是指,在计算之前把没有依赖关系的数据先从局存中预取出来。
8)众核程序运行总时间
T_total=T_tran+T_comp+T_spawnjoin+T_syn-T_overlap (12)
众核性能总时间等于数据传输时间、数据计算时间、线程组任务分发与结束时间和从核同步时间总和,再减去计算的重叠时间。
公式(8)中tia=3cycles,tda=9cycles,tdd=34cycles,tcm=4cycles;公式(10)中n_mb*3=3cycles,n_syn*14=14cycles。
T_gld=0。访问主存的指令包括gld、gst等中的一个或多个,每条指令的访问时间约为278cycle;当程序优化到一定程度后,从核将完全通过DMA通道进行数据访问,就不存在gld、gst等指令访问主存时间,此时T_gld默认为0。
公式(8)中如果没有从核通信,则T_cpe=0,如果从核通信数据量≥8个double,则从核通信方式选择RMA,RMA每次通信的时间为100cycles,此时T_cpe=100*n_core;如果从核通信数据量<8个double,则从核通信方式选择RLD,RLD每次通信时间为20cycles,此时T_cpe=20*n_core。其中,double指的是双精度浮点型数据,双精度浮点型数据占8个字节的内存空间,属于实型变量的一种变量类型。
D_gsize与T_g1的对应关系如下:
当D_gsize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_g1分别为820、950、1350、2300、4100、6200、11200、23700;其中,T_g1的单位为cycle;
D_psize与T_p1的对应关系如下:
当D_psize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_p1分别为2800、3000、3400、4000、5600、10700、17700、35500;T_p1的单位为cycle。
本实施例的输入变量为:
Figure BDA0003282092400000101
输出变量为:
名称 含义 数值
T_tran 数据传输的时间 663200
T_comp 计算的拍数 151490
T_spawjoin 从核启动与结束的时间 35600
T_syn 同步的时间 9
T_overlap 计算与通信重叠的时间 0
T_total 总运行时间 850299

Claims (4)

1.一种基于国产超算微架构的众核应用性能评估方法,其特征在于,具体方法如下:
1)模型输入包括Lat_SPM、n_v、n_scalar_i、n_scalar、n_arr_i_get、n_arr_ge、n_arr_i_put、n_arr_put、d_size、n_iasm、n_iasmi、n_dasm、n_ddiv、n_cmp、n_1d、n_2d、n_3d、n_i_siz、n_size、n_cpe、n_mb、n_syn、n_cpe_comm、T_cpe、n_cmp、n_gsize、n_psize、T_g1、T_p1、n_core;
其中,Lat_SPM为从核局存访问的时延,单位是cycles;n_v为数组变量的个数;n_scalar_i为整型标量个数;n_scalar为浮点型标量个数;n_arr_i_get为读入的整型数组的个数;n_arr_get为读入的浮点型数组的个数;n_arr_i_put为输出的整型数组的个数;n_arr_put为输出的浮点型数组的个数;d_size为单个数组的大小;n_iasm为循环外,整数加、减、乘指令的次数;n_iasmi为循环内,整数加、减、乘指令的次数;n_dasm为浮点加、减、乘指令的次数;n_ddiv为浮点除法指令的次数;n_cmp为比较与跳转指令的次数;n_1d为第一维及以上的维数大小;n_2d为第二维及以上的维数大小;n_3d为第三维及以上的维数大小;n_i_size为单次dma的整型数据量;n_size为单次dma的浮点型数据量;n_cpe为使用的从核数;n_mb为从核局存更新的次数;n_syn为从核间同步的次数;n_cpe_comm为从核间通信的次数;T_cpe为从核通信时间;n_cmp为比较与跳转指令的次数;n_gsize为读入数据单次传输量;n_psize为写入数据单次传输量;T_g1为单次读入固定数据量下的时间;T_p1为单次写入固定数据量下的时间;n_core为从核通信次数;
2)模型输出变量包括T_tran、T_comp、T_spawjoin、T_syn、T_overlap、T_total;输出变量的单位均为cycle;
其中,T_tran为数据传输的时间;T_comp为计算的拍数;T_spawjoin为从核启动与结束的时间;T_syn为同步的时间;T_overlap为计算与通信重叠的时间;T_total为总运行时间;
3)T_tran的计算
T_tran=T_get+T_put+T_gld (1)
在公式1中,T_get为读入数据athread_get时间,T_put为写入数据athread_put时间,T_gld为从核数据访问主存时间;
3.1)读入数据时间T_get
D_gsize=min(d_size/n_cpe,n_size) (2)
公式(2)求出每个从核读入的数据总量与n_size的最小值,即为每个数组单次读入的数据量D_gsize;
每个数组读入数据的次数:
Figure FDA0003282092390000021
则,T_get=T_g1*n_get*n_arr_get (4)
其中,T_g1为经验值;
3.2)写入数据时间T_put
D_psize=min(d_size/n_cpe,n_size) (5)
每个数组写入数据的次数:
Figure FDA0003282092390000022
则,T_put=T_p1*n_put*n_arr_Put (7)
其中,T_p1为经验值;
4)T_comp的计算
T_comp=n_iasm*tia+(n_iasmi*tia+n_dasm*tda+n_ddiv*tdd)/2+n_cmp*tcm+T_cpe (8)
5)T_spawnjoin的计算
Figure FDA0003282092390000023
6)T_syn的计算
T_syn=n_mb*3+n_syn*14 (10)
在公式(10)中,n_mb*3为数据传输同步指令asm volatile(“memb”)所花费的时间,n_syn*14为从核间同步函数athread_syn(ARRAY_SCOPE,-1)所花费的时间;
7)T_overlap的计算
T_overlap=(n_iasm+n_dasm+n_ddiv+n_cmp)*Lat_SPM (11)
8)众核程序运行总时间
T_total=T_tran+T_comp+T_spawnjoin+T_syn-T_overlap (12)。
2.根据权利要求1所述的基于国产超算微架构的众核应用性能评估方法,其特征在于,公式(8)中tia=3cycles,tda=9cycles,tdd=34cycles,tcm=4cycles;公式(10)中n_mb*3=3cycles,n_syn*14=14cycles。
3.根据权利要求1所述的基于国产超算微架构的众核应用性能评估方法,其特征在于,公式(8)中如果没有从核通信,则T_cpe=0,如果从核通信数据量≥8个double,则从核通信方式选择RMA,RMA每次通信的时间为100cycles,此时T_cpe=100*n_core;如果从核通信数据量<8个double,则从核通信方式选择RLD,RLD每次通信时间为20cycles,此时T_cpe=20*n_core。
4.根据权利要求1所述的基于国产超算微架构的众核应用性能评估方法,其特征在于,D_gsize与T_g1的对应关系如下:
当D_gsize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_g1分别为820、950、1350、2300、4100、6200、11200、23700;其中,T_g1的单位为cycle;
D_psize与T_p1的对应关系如下:
当D_psize的值为[8,16)、[16,32)、[32,64)、[64,128)、[128,256)、[256,512)、[512,1024)、[1024,2048)时,对应的T_p1分别为2800、3000、3400、4000、5600、10700、17700、35500;T_p1的单位为cycle。
CN202111135266.3A 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法 Active CN113835984B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111135266.3A CN113835984B (zh) 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111135266.3A CN113835984B (zh) 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法

Publications (2)

Publication Number Publication Date
CN113835984A true CN113835984A (zh) 2021-12-24
CN113835984B CN113835984B (zh) 2023-08-08

Family

ID=78970783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111135266.3A Active CN113835984B (zh) 2021-09-27 2021-09-27 一种基于国产超算微架构的众核应用性能评估方法

Country Status (1)

Country Link
CN (1) CN113835984B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128343A2 (en) * 2012-03-02 2013-09-06 Fondazione Istituto Italiano Di Tecnologia Method for estimating a model on multi-core and many-core mimd architectures
US20150277877A1 (en) * 2014-03-25 2015-10-01 Nec Laboratories America, Inc. Compiler optimization for many integrated core processors
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
CN109002659A (zh) * 2018-09-07 2018-12-14 西安交通大学 一种基于超级计算机的流体机械仿真程序优化方法
CN110222007A (zh) * 2019-06-20 2019-09-10 山东省计算中心(国家超级计算济南中心) 一种基于申威众核处理器的加速运行方法
CN112825058A (zh) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 处理器性能评估方法及装置
CN112860512A (zh) * 2021-01-29 2021-05-28 平安国际智慧城市科技股份有限公司 接口监控的优化方法、装置、计算机设备及存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128343A2 (en) * 2012-03-02 2013-09-06 Fondazione Istituto Italiano Di Tecnologia Method for estimating a model on multi-core and many-core mimd architectures
US20150277877A1 (en) * 2014-03-25 2015-10-01 Nec Laboratories America, Inc. Compiler optimization for many integrated core processors
CN107168683A (zh) * 2017-05-05 2017-09-15 中国科学院软件研究所 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法
CN109002659A (zh) * 2018-09-07 2018-12-14 西安交通大学 一种基于超级计算机的流体机械仿真程序优化方法
CN110222007A (zh) * 2019-06-20 2019-09-10 山东省计算中心(国家超级计算济南中心) 一种基于申威众核处理器的加速运行方法
CN112825058A (zh) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 处理器性能评估方法及装置
CN112860512A (zh) * 2021-01-29 2021-05-28 平安国际智慧城市科技股份有限公司 接口监控的优化方法、装置、计算机设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
周文: "基于MIC众核架构的并行算法设计与优化", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 3, pages 137 - 70 *
黄品丰;赵荣彩;姚远;赵捷;: "面向异构多核处理器的并行代价模型", 计算机应用, vol. 33, no. 06, pages 1544 - 1547 *

Also Published As

Publication number Publication date
CN113835984B (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
KR100254080B1 (ko) 마이크로프로세서의 파워 에스티메이터
JP4231516B2 (ja) 実行コードの生成方法及びプログラム
CN109002659B (zh) 一种基于超级计算机的流体机械仿真程序优化方法
Oden Lessons learned from comparing C-CUDA and Python-Numba for GPU-Computing
Lai et al. Accelerating Strassen-Winograd's matrix multiplication algorithm on GPUs
Clarke et al. Fupermod: A framework for optimal data partitioning for parallel scientific applications on dedicated heterogeneous hpc platforms
CN113553057B (zh) 一种针对不同架构的gpu进行并行计算的优化系统
KR102160251B1 (ko) 복수의 프로세서들을 병렬적으로 이용하여 시뮬레이션을 수행하는 방법 및 장치
Brown Accelerating advection for atmospheric modelling on Xilinx and Intel FPGAs
CN113835984A (zh) 一种基于国产超算微架构的众核应用性能评估方法
Vaugon et al. Programming microcontrollers in ocaml: the ocapic project
CN109522127B (zh) 一种基于gpu的流体机械仿真程序异构加速方法
Henkel et al. Hardware generation and partitioning effects in the COSYMA system
CN103955394A (zh) 一种基于推迟提交的gpu虚拟化优化方法
CN103077008A (zh) 数组相加运算汇编库程序的地址对齐simd加速方法
CN102063308B (zh) 一种用于地震勘探资料处理流程控制的方法
US20140344555A1 (en) Scalable Partial Vectorization
Tukanov et al. Modeling matrix engines for portability and performance
CN114356738A (zh) 预估执行神经网络模型所需时间的方法及相关产品
CN114117896A (zh) 面向超长simd管线的二值规约优化实现方法及系统
CN108846248B (zh) 一种应用建模及性能预测方法
Faber et al. Efficient parallel execution of genetic algorithms on Epiphany manycore processor
Heisinger et al. QuAPI: Adding Assumptions to Non-Assuming SAT & QBF Solvers.
CN107408060A (zh) 用于大数据应用的多个多维计算机架构
Ashby et al. Migrating a scientific application from MPI to coarrays

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant