CN105512018A - 一种并行系统性能的形式化分析方法 - Google Patents
一种并行系统性能的形式化分析方法 Download PDFInfo
- Publication number
- CN105512018A CN105512018A CN201410490717.9A CN201410490717A CN105512018A CN 105512018 A CN105512018 A CN 105512018A CN 201410490717 A CN201410490717 A CN 201410490717A CN 105512018 A CN105512018 A CN 105512018A
- Authority
- CN
- China
- Prior art keywords
- model
- performance
- parallel
- parallel system
- system performance
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种并行系统性能的形式化分析方法,包括:步骤一、建立并行程序性能模型和并行机模型;步骤二、在并行程序性能模型和并行机模型之间建立映射关系,形成并行系统性能模型,进行并行系统性能分析。本发明提供了一种高效的并行系统性能分析方法。
Description
技术领域
本发明涉及并行系统性能分析领域,特别涉及一种基于赋时着色Petri网计算模型的并行系统性能持续提升方法。
背景技术
作为解决大规模计算问题的重要手段,高性能计算技术被越来越广泛地应用到科学与工程的各个领域。然而,随着高性能计算机规模的不断扩大,系统峰值性能的迅速提高,应用程序的持续性能并未获得同比例的提高,两者间的差距日益扩大。因此,如何发现系统性能瓶颈,提高系统持续性能成为高性能计算研究领域急需解决的重点问题。
目前常用的并行系统(并行程序+并行机)性能分析方法主要有:测量法和模型法。
(1)测量法
可采用的标准商用性能测试软件有LINPACK(为Top500排名提供性能参数根据)、SPEC Benchmark suite、NAS
Parallel Benchmarks和Streams
benchmark等。这些测试程序虽然在一定程度上反映了实际应用的负载特征,但实际负载的多样性,使得Benchmark很难匹配所有负载特征。例如,LINPACK能较为准确地得到密集型矩阵运算应用的性能,但它却不适合于测量科学计算任务中常见的其它负载特征的应用性能,如稀疏矩阵运算模型、不规则mesh结构运算模型、自适应优化mesh结构运算模型等。Benchmark负载特征与实际应用负载特征的不一致性,导致了用Benchmark不能准确地测量出系统的实际性能。
另一种常用的性能测量法是通过测量设备直接从系统中测得各项性能指标或与之密切相关的量,然后由此经过运算求出相应的性能指标值。设备测量可以准确提取系统和负载参数,辅助系统模型和负载模型的建立。此外,在多数情况下,因为实际测量法的结果是准确的,可以用这个结果来验证其它性能预测方法的准确性。
性能测量法属事后验证法,只适用于已经存在并运行的系统,周期长、代价大,不适合大规模复杂科学计算任务的开发。
(2)模型法
该方法需要首先为待评价的并行系统建立一个适当的模型,然后求出模型的性能指标值,以便对系统进行性能评价。模型中一般包括许多参数,这些参数的确定通常依赖于对实际系统的测量结果或对系统参数的估计。与测量法相比,模型方法不仅可以应用于已有的系统性能评价,也可以应用于尚未存在系统的性能预测,而且这种方法工作量小、代价低。
伊利诺伊大学为BlueGene/C开发的并行模拟器BigSim,加州大学COMPASS项目的MPI-SIM,国防科大为预测MPI程序在多核SMP集群上的性能而设计实现的Sim-MSC等,均采用程序动态模拟系统硬件配置和工作负载,通过负载驱动系统模型从而得出模型的性能指标。这种模拟技术在性能评价的代价、时间和灵活性之间有较好的平衡,但作为大规模并行系统的性能评价工具,性能模拟器设计、实现的代价高,模拟器评价时间过长。为此,可采用应用数学理论与方法,适当简化模型参数,来研究、描述性能与并行、并行应用之间的关系,以弥补性能模拟器的不足。
以上这些技术在并行系统性能分析过程中各有优势,比如,在系统设计早期,不存在可运行的完整系统,无法使用测量计算进行分析,只能通过性能模型分析方法来预测系统性能。而随着系统实现的推进,可用组件逐渐增多,因此可以使用模拟器或Benchmark评价系统性能。最后,当系统完全实现,就可利用实际测量技术评价系统性能,并用结果验证其他分析技术的正确性和有效性。
发明内容
本发明解决的问题是现有并行系统性能分析方法代价高、效率差;为解决所述问题,本发明提供一种并行系统性能的形式分析方法。
一种并行系统性能的形式化分析方法,包括:
步骤一、建立并行程序性能模型和并行机模型;
步骤二、在并行程序性能模型和并行机模型之间建立映射关系,形成并行应用性能模型,进行并行系统性能分析。
进一步,所述并行程序性能模型包括程序控制流模型,线程通信模型,并行应用性能模型;所述并行程序性能模型基于赋时着色Petri网建立。
进一步, 还包括对所述并行程序性能模型进行验证:
步骤1.1、将并行程序性能模型按功能模块进行划分,即模型PA={F1 ,
F 2 …Fn },Fi 为第i个功能模块,对PA中的各功能模块分别建模;
步骤1.2、根据PA的数据规模,确定Fi 包含的进程数量n,即Fi ={Fi1 ,
i2 …Fin },Fij 为Fi 中的进程,分别建模;
步骤1.2.1、Fij 中串行执行部分按照预设的并行系统性能分析方法的程序分支结构模型和循环结构模型对程序的控制流建模;
步骤1.2.2、Fij 中的通信部分,分析消息的源进程和目标进程,按照预设的并行系统性能分析方法的程序通信方式模型建立通信模型;
步骤1.2.3、根据Fij 中的数据类型,确定集合Cs 中的元素;
步骤1.2.4、将Fij 中的事件或动作转化为变迁tij ,然后根据变迁tij 的功能,定义变迁函数Ffij ,计算tij 触发后,标识Mij 的变化;
步骤1.2.5、计算Tfij ,得到变迁tij 触发延迟;
步骤1.2.6、若Fij 中的所有进程建模完毕,则转Step3,否则转Step2.1;
步骤1.3、当PA的Fij 均建模完毕,则将各功能模块模型按照同步合成法进行组合,形成完整算法的P模型;
步骤1.4、若得到的P不是安全网,做适当地改造,将受控网改造为相应的安全网。
进一步,步骤二中,进行系统性能分析包括:
步骤2.1、并行度计算;
步骤2.2、负载平衡计算;
步骤2.3、系统运行时间计算;
步骤2.4、资源利用率与操作执行频率计算。
进一步,并行度计算包括:片段集合J(Pp)={j1 ,
j2 ,…jn }=
是程序Pp的所有可能的片段集合,其中AP(M)表示在标识M下活跃的进程,RS(Pp)是并行程序Pp性能模型的可达标识集合,若M0 是Pp的初始状态,则RS(Pp)=R(M0 ); ç ji ç是片段ji 的大小,ji 中进程个数,并行程序Pp的最大并行度为。
进一步,负载平衡计算包括:对于,Ave_tokenpi 表示在稳定状态下,库所在任一可达标识中平均含有的token数,则,,Sum_tokenPpi 为各节点进程库所集合中平均token数之和。
进一步,系统运行时间计算包括:,其中,,,,, Ec为等效计算量,Er为等效计算速度,,Ds和Ar分别是等效数据访问量和等效数据访问速度。
进一步,资源利用率与操作执行频率计算包括:利用Ave_tokenpi 估算资源的利用率,当PS 属于某个子进程时,可以把视为进程任务队列长度,进而分析进程响应时间和吞吐量;"tÎT的触发概率是能使t触发的所有标识的稳定概率之和,即,其中,ES(t)是指能使t触发的所有可达标识集合。
进一步,还包括:确定并行系统性能分析,步骤3.1、计算节点关键性能影响因素的计算;步骤3-2,通信网络关键性能影响因素的计算;步骤3-3,并行应用性能度量参数的计算。
进一步,还包括:
步骤1.1.1:初始化所有集合为Æ;
步骤1.1.2:根据定义3.28建立P模型的关联矩阵Cm ´ n ;
步骤1.1.3:for
i=1~m 判断每个pi 的类型;
步骤1.1.3.1:若,检查C第i列中“1”和“-1”的个数,若各位1,则满足定义4.7(1)和(2),否则FPS= FPSÈ{pi };
步骤1.1.3.2:若,检查C第i列中“1”和“-1”的个数,若都为x,则满足定义4.7(3),否则FPS=
FPSÈ{pi };
步骤1.1.3.3:除以上类型外的pi ,若C第i列中“1”和“-1”的个数都为1,则满足定义4.7(4),否则FPS=
FPSÈ{pi };
步骤1.1.3.4:若,则OMP= OMPÈ{pi };
若,则LMP = LMPÈ{pi };
若,则NMP = NMP È{pi };
步骤1.1.4:for
j=1~n 判断每个tj 的类型;
步骤1.1.4.1:若tj Îtstart ,检查C第j行中“1”和“-1”的个数是否分别为x和1,若是,则满足定义4.7(1),否则FTS= FTSÈ{tj };若tj Îtend ,检查C第j行中“1”和“-1”的个数是否分别为1和x,若是,则满足定义4.7(1),否则FTS= FTSÈ{tj };
步骤1.1.4.2:若tj ÎP2PT,则根据tj 的收发类型分别判断C第j行中“1”和“-1”的个数,若不满足定义4.7(2),则FTS=
FTSÈ{tj };
步骤1.1.4.3:若tj ÎCCT,则根据tj 的通信类型分别判断C第j行中“1”和“-1”的个数,若不满足定义4.7(3),则FTS=
FTSÈ{tj };
步骤1.1.4.4:除以上类型外的tj ,若C第j行中“1”和“-1”的个数都为1,则满足定义4.7(4),否则FPS=
FPSÈ{pi };
步骤1.1.4.5:若,则OMT=OMTÈ{ti };
步骤1.1.4.6:若,则LMT=LMTÈ{ti };
步骤1.1.4.7:若,则NMT=NMTÈ{ti };
步骤1.1.5:算法结束。
随着并行系统规模和复杂性的提高,并行系统峰值性能和实际持续性能的差距越来越明显。而机器体系结构和程序结构的日益复杂,导致影响程序性能的因素越来越多,并且这些因素间还存在复杂、非线性的相互作用,这些都给并行系统性能分析和预测带来了巨大的挑战,传统的性能评价方案已经无法满足现实的需要。
本发明围绕快速评价并行系统性能这一根本目标,对并行系统性能模型的建立和分析技术展开了深入研究,将系统性能评价、分析与并行应用的开发同步进行,利用各阶段的性能分析结果作为后续开发的指导,以减少并行程序编写完成后的调试代价,提高程序在并行机器上运行的性能。通过将这些理论研究成果与实际应用相结合,反复验证、修改,已能为充分发挥并行机硬部件性能和开发高性能并行应用程序提供方向性指导。
(1)提出了面向性能的并行应用开发方法。
针对并行应用开发周期长,代价大的特点,提出了将性能分析与并行应用开发同时进行的方法,根据各阶段的分析结果及时调整设计方案,解决潜在的性能瓶颈问题。
(2)建立了多维空间系统性能度量参数集合。
随着并行机体系结构和并行程序结构的日益复杂,影响程序运行性能的因素越来越多,因此,本发明采用PB实验方法和PCA分析法,从节点计算性能和互连网络性能两方面确定了并行系统关键性能影响因素,形成了多维空间系统性能度量参数集合,建立了实际并行系统到抽象数学描述的映射关系。
(3)提出了并行系统性能建模和验证的形式化方法。
通过分析、比较各种形式化方法和工具对并行系统性能评价的优缺点,明确了TCPN系统在这方面工作的优势。采用PRM技术建立了具有扩展性和开放性的并行系统性能模型,并通过分析正确的并行应用应具有的模型性质,设计了一系列正确性验证算法,使之可以同时验证Pps模型和建模对象的正确性,避免出现性能模型正确而建模对象错误的情况。
(4)实现了基于模型的并行系统性能分析方法,并在实际项目的实施过程中得到了验证。
对并行系统进行性能建模,是为了在并行应用的设计、开发初期就引入性能分析工程,然后采用模型分析方法,评价程序在目标机上的运行性能。本项目根据性能模型的特点,定义了性能评价指标,从并行系统整体性能和程序内部运行性能两个角度进行评价,并提出了相应的性能数据采集方法,通过计算、分析,从中获取性能优化的指导信息。
附图说明
图1是本发明实施例提供的并行系统性能分析方法计算节点关键性能影响因素的计算过程式意图;
图2是本发明实施例提供的并行系统性能分析方法流程示意图;
图3 (a)、图3 (b)、图3 (c)是本发明实施例提供的并行系统性能分析方法的通信方式的分支结构模型示意图;
图4(a)、图4(b)、图4(c)是本发明实施例提供的并行系统性能分析方法的循环结构模型示意图;
图5 是本发明实施例提供的并行系统性能分析方法的点到点阻塞式通信的模型示意图;
图6 是本发明实施例提供的并行系统性能分析方法的缓冲型阻塞式通信的模型示意图;
图7 是本发明实施例提供的并行系统性能分析方法的就绪型阻塞式通信的模型示意图;
图8 是本发明实施例提供的并行系统性能分析方法的非阻塞式发送和阻塞式接收同步模式的模型示意图;
图9 是本发明实施例提供的并行系统性能分析方法的并行算法模型的正确性验证过程示意图。
具体实施方式
下文中,结合附图和实施例对本发明作进一步阐述。
本发明是为充分发挥并行机硬部件性能和开发高性能并行应用程序提供指导,因此选择了数据量、复杂度高的多层快速多极子算法MLFMA实现飞行器RCS精确数值计算的过程进行实例说明。
该并行程序基础数据结构是一个分布树,散射体在该树型结构上完成逐层聚合、转移和解聚操作。MLFMA树的建立涉及到数据的分布存储,根据分布树特点(即分布层盒子数多角谱数少,而共享层盒子数少角谱数多),我们采用在分布层用盒子数均分法划分数据,各节点存储部分盒子全部角谱,而在共享层,采用角谱数均分法划分数据,各节点存储全部盒子,部分角谱。
采用本发明对该并行算法性能进行分析和优化的过程如下:
步骤一、建立并行应用性能模型,包括建立程序控制流模型,线程通信方式模型,并行应用性能模型。
将MLFMA算法中的程序控制流、通信方式按图3-图8进行转换。
并行应用性能模型建模方法包括:
步骤1.1、将并行程序性能模型按功能模块进行划分,即模型PA={F1 ,
F 2 …Fn },Fi 为第i个功能模块,对PA中的各功能模块分别建模;
步骤1.2、根据PA的数据规模,确定Fi 包含的进程数量n,即Fi ={Fi1 ,
i2 …Fin },Fij 为Fi 中的进程,分别建模;
步骤1.2.1、Fij 中串行执行部分按照预设的并行系统性能分析方法的程序分支结构模型和循环结构模型对程序的控制流建模;
步骤1.2.2、Fij 中的通信部分,分析消息的源进程和目标进程,按照预设的并行系统性能分析方法的程序通信方式模型建立通信模型;
步骤1.2.3、根据Fij 中的数据类型,确定集合Cs 中的元素;
步骤1.2.4、将Fij 中的事件或动作转化为变迁tij ,然后根据变迁tij 的功能,定义变迁函数Ffij ,计算tij 触发后,标识Mij 的变化;
步骤1.2.5、计算Tfij ,得到变迁tij 触发延迟;
步骤1.2.6、若Fij 中的所有进程建模完毕,则转Step3,否则转Step2.1;
步骤1.3、当PA的Fij 均建模完毕,则将各功能模块模型按照同步合成法进行组合,形成完整算法的P模型;
步骤1.4、若得到的P不是安全网,做适当地改造,将受控网改造为相应的安全网。
在本发明的优选实施例中,还包括对并行应用性能模型进行验证,包括:
步骤1.1.1:初始化所有集合为Æ;
步骤1.1.2:根据定义3.28建立P模型的关联矩阵Cm ´ n ;
步骤1.1.3:for
i=1~m 判断每个pi 的类型;
步骤1.1.3.1:若,检查C第i列中“1”和“-1”的个数,若各位1,则满足定义4.7(1)和(2),否则FPS= FPSÈ{pi };
步骤1.1.3.2:若,检查C第i列中“1”和“-1”的个数,若都为x,则满足定义4.7(3),否则FPS=
FPSÈ{pi };
步骤1.1.3.3:除以上类型外的pi ,若C第i列中“1”和“-1”的个数都为1,则满足定义4.7(4),否则FPS=
FPSÈ{pi };
步骤1.1.3.4:若,则OMP= OMPÈ{pi };
若,则LMP = LMPÈ{pi };
若,则NMP = NMP È{pi };
步骤1.1.4:for
j=1~n 判断每个tj 的类型;
步骤1.1.4.1:若tj Îtstart ,检查C第j行中“1”和“-1”的个数是否分别为x和1,若是,则满足定义4.7(1),否则FTS= FTSÈ{tj };若tj Îtend ,检查C第j行中“1”和“-1”的个数是否分别为1和x,若是,则满足定义4.7(1),否则FTS= FTSÈ{tj };
步骤1.1.4.2:若tj ÎP2PT,则根据tj 的收发类型分别判断C第j行中“1”和“-1”的个数,若不满足定义4.7(2),则FTS=
FTSÈ{tj };
步骤1.1.4.3:若tj ÎCCT,则根据tj 的通信类型分别判断C第j行中“1”和“-1”的个数,若不满足定义4.7(3),则FTS=
FTSÈ{tj };
步骤1.1.4.4:除以上类型外的tj ,若C第j行中“1”和“-1”的个数都为1,则满足定义4.7(4),否则FPS=
FPSÈ{pi };
步骤1.1.4.5:若,则OMT=OMTÈ{ti };
步骤1.1.4.6:若,则LMT=LMTÈ{ti };
步骤1.1.4.7:若,则NMT=NMTÈ{ti };
步骤1.1.5:算法结束。
步骤二、在已通过正确性验证的模型上,建立并行系统性能模型,并进行系统性能分析;
Sps ={Pps, Rps, M}是一个并行系统性能模型,其中Pps是并行算法或程序的TCPN模型,根据步骤一,可以证明算法Pps的正确性;Rps是目标机硬件资源的TCPN模型,Rps =(Pr;Tr, Ar, Cs,
G, M0)用来描述目标机资源特征;M是Pps到Rps的映射(即P-R映射),MÍ(Pr´Tp)È(Tp´Pr)。
在Sps模型上,可以进行程序运行性能的分析,如并行程序运行时间的计算,资源利用率的计算等。程序中操作的完成时间与分配的资源性能有关,操作由Pps中的变迁描述,资源由Rps中的库所描述,两者的映射由Sps描述,即操作变迁ti 的资源需求是ri =(L,
m),其中,nk 表示原子变迁atk 在集合L中出现的次数,ATi ÍAT;资源sj 能够为原子操作ATj ÍAT的实现提供支持,且其服务时延为tj (at),atÎATj ,ATi Í ATj ,若sj =m,则操作变迁ti 完成操作需要耗时。
(1)并行度计算
片段集合J(Pp)={j1 ,
j2 ,…jn }=是程序Pp的所有可能的片段集合,其中AP(M)表示在标识M下活跃的进程,RS(Pp)是并行程序Pp性能模型的可达标识集合,若M0 是Pp的初始状态,则RS(Pp)=R(M0 )。ç ji ç是片段ji 的大小,即ji 中进程个数。并行程序Pp的最大并行度为。
(2)负载平衡计算
负载平衡可以通过计算各节点进程库所集合中平均token数之和Sum_tokenPpi 来判断,若进程ppi 的Sum_tokenPpi 大大于其他进程,则该进程负载过重,否则过轻,根据该值可以判断任务划分方案是否合适。要计算Sum_tokenPpi ,首先需要计算系统性能模型的可达状态稳定概率,即根据与并行系统性能模型同构的MC,构造转移矩阵Qn ´ n ,其中n=MC中的状态数。
假设MC中n个状态的稳定概率是一个行向量B=(b1 ,
b2 , …, bn ),则根据MC过程计算线性方程组,即可得每个可达标识Mi 的稳定概率P[Mi ]=
bi 。
根据可达标识稳定概率,可计算在稳定状态下,库所中token不同数量的概率,即
"pÎP,
其中,表示库所p中包含x个token的概率,且。
对于,Ave_tokenpi 表示在稳定状态下,库所在任一可达标识中平均含有的token数,则
(3)系统运行时间
并行程序在某并行机上运行的时间,也称之为并行系统运行时间TS
"tÎPT,Tf (t)受问题规模大小、本地节点处理器中的功能部件、分支预测部件性能和存储子系统性能的影响,即
其中算术计算时间,其中Ec为等效计算量,Er为等效计算速度。考虑到应用程序中常涉及不同类型的计算(如整型、浮点型、双精度型等),不同的机器指令类型又需要不同的执行拍数,因此,在仅用一个量描述计算量或计算速度时,需要在不同类型之间做等效变换。访存时间,Ds和Ar分别是等效数据访问量和等效数据访问速度。Ds与数据在各任务间的分布和数据访问次数有关,Ar则依赖于机器执行存取操作的速度,包括指令类型、访存模式(如随机访问模式、固定步长访问模式等)、数据存放位置(如存放在一级cache、二级cache或内存中等)。
"tÎCT,Tf (t)受通信量大小和通信软硬件性能的影响,则一次完整通信的时间花费为
其中Cx 是每次的通信量,do是计算和通信的重叠度,Tui 是单位消息传送延时,与通信操作类型,实现方式以及机器的通信能力有关。
(4)资源利用率与操作执行频率
对于,表示在稳定状态下,库所在任一可达标识中平均含有的token数。当时,M(pi )=0说明资源忙,M(pi )=1说明资源空闲,由此,可以利用Ave_tokenpi 估算资源的利用率。
一个库所集合PS ={p1 ,
p2 , … pi }ÍP,其平均token数可以通过计算集合中的每个库所pj ÎPS 平均token数之和而知,即
当PS 属于某个子进程时,可以把视为进程任务队列长度,进而分析进程响应时间和吞吐量等性能指标。
"tÎT的触发概率是能使t触发的所有标识的稳定概率之和,即
其中,ES(t)是指能使t触发的所有可达标识集合。U(t)可以用来说明变迁t的触发频率,即其对应的操作e的执行频率,若某一U(t)值相对较高,则说明提高该变迁t所需硬件资源的性能,能改善操作e的执行性能,进而提高系统整体性能。
一般变迁吞吐量,l是t的实施速率,可以采用通信变迁的吞吐量评价系统通信率,进而分析通信与计算的整体比例。如,进程ppx 和ppy 之间的通信率
其中com(ppx ,
ppy )是完成进程间通信的复合变迁集合。
步骤三、并行系统性能影响因子的计算,包括并行机性能度量参数HPP的计算,并行应用性能度量参数PAP的计算,并行系统相似度及匹配度的计算。
并行系统具有规模大、复杂性高的特点,它不仅与并行计算机硬件系统的结构、组成与实现相关,还与具体的应用程序相关,这些因素之间相互影响、相互作用。
步骤3-1,计算节点关键性能影响因素的计算,其过程如图1所示;
以Plackett-Burman实验方法(简称PB)为基础,将众多复杂的性能影响因素快速聚焦到少数关键因素,然后采用主成分分析法确定关键因素间的相互联系,从而将多个性能影响因素简化为少数几个互不相关的综合指标,进一步突出对并行系统性能影响较大的硬部件。
根据图1所示过程,建立规模为的PB矩阵,矩阵行向量代表不同性能影响因素的配置,列向量代表每个因素在实验中的所有取值情况,响应为并行程序在该配置下的运行时间,采用SPEC2000Int和SPEC2000FP两类测试程序进行实验。
结合两类程序的PB实验结果对各因素性能影响度进行降序排序,以影响度平均值为选取关键因素的标准,确定了14个性能因素为关键因素,其累计性能影响度为76.07%。
步骤3-2,通信网络关键性能影响因素的计算;
以Alexandrov等人提出的LogGP模型为基础,用五个参数来评价一个并行机互连网络的通信性能,即:从源模块发送消息(包含一个或几个字)到目标模块的延时的上界L(Latency);处理器发送os或接收or一个消息所用的时间(系统开销)o(Overhead),在此时间段内处理器不能执行其他操作;处理器连续发送或接收消息时的最小时间间隔g(Gap),即通信间距,是两个点对点通信进程之间通信所能达到的最大带宽的倒数;互连网络连接的处理节点个数P(Processor);用来描述大消息传送时连续两个字节之间的间隔时间G,其倒数是传送长消息的带宽。
步骤3-3,并行应用性能度量参数的计算;
并行系统(并行应用+并行机)的性能不仅与并行计算机硬件系统的结构、组成与实现相关,还与具体的应用程序相关,这些因素之间相互影响、相互作用。步骤3-1和3-2是对计算节点和互连网络两类硬部件性能因素的计算,并行应用的性能主要是指与这些硬部件相关的操作对系统性能的影响。由于在并行算法设计阶段,无法精确获得涉及这些操作的具体数量,只能根据问题规模、计算次数、通信量等估计并行应用各性能度量参数值。在算法逐渐精确化后,采用基于抽样的方法采集部分指令来获得整个应用的性能特征。
假设用并行算法P实现某一应用需求,在算法A和输入规模I的情况下,称PAP={zp1 ,
zp2 , …, zpn }为P的性能度量参数,即并行程序P以算法A为设计基础,在问题规模为I时的资源需求为PAP。其中,
(1)pi表示并行应用P中所包含的不同类型的操作;
(2)zpi 表示P在输入规模为I时,操作pi对硬件资源的需求。zpi 是一个二元组<xs, v>,其中s是一个基本操作多重集,x是该操作的数量,s的实现需要在硬部件v的支持下才能完成。
PAP从并行应用P资源需求角度反映了其性能特点,只与问题规模、应用算法及其实现相关,与具体硬件环境无关。
在经过以上三大步骤的分析和处理之后,对复杂目标电磁散射特性精确计算的并行算法提出了合理、有效的优化,优化后的效率提高如表1所示。
表1
F(GHZ) | N | P | L | D | R | 原算法(s) | 冗余算法(s) | 效率提高(%) | |
环 | 1.0 | 19600 | 8 | 9 | 6 | 6 | 3.97 | 3.61 | 9.07 |
钻石体 | 3.0 | 85524 | 16 | 7 | 6 | 6 | 6.41 | 5.27 | 17.78 |
立方体 | 2.5 | 115200 | 16 | 6 | 5 | 5 | 8.81 | 8.02 | 8.97 |
表中F为入射波的频率,N为未知数的个数(问题规模),P为结点数,L为分布树的总层数,D为分布层的起始层号,R为冗余层起始层。
本发明从性能分析对并行程序设计、开发过程的指导意义入手,提出了面向性能的并行应用开发方法,确定了能够反映程序运行性能的宏观评价指标和微观评价指标,然后以并行系统性能模型为基础,提出了获得这些性能数据的方法,并通过综合分析这些数据来指导并行应用面向体系结构特点进行性能优化。这些理论方法在具体项目实施过程中得到了实践,具有很高的理论意义和实用价值。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (10)
1.一种并行系统性能的形式化分析方法,其特征在于,包括:
步骤一、建立并行程序性能模型和并行机模型;
步骤二、在并行程序性能模型和并行机模型之间建立映射关系,形成并行系统性能模型,进行并行系统性能分析。
2.依据权利要求1所述的并行系统性能的形式化分析方法,其特征在于,所述并行程序性能模型包括程序控制流模型,线程通信模型,并行应用性能模型;所述并行程序性能模型基于赋时着色Petri网建立。
3.依据权利要求1所述的并行系统性能的形式化分析方法,其特征在于, 还包括对所述并行程序进行性能建模和初步验证;
步骤1.1、将并行程序性能模型按功能模块进行划分,即模型PA={F1 , F 2 …Fn },Fi 为第i个功能模块,对PA中的各功能模块分别建模;
步骤1.2、根据PA的数据规模,确定Fi 包含的进程数量n,即Fi ={Fi1 , i2 …Fin },Fij 为Fi 中的进程,分别建模;
步骤1.2.1、Fij 中串行执行部分按照预设的并行系统性能分析方法的程序分支结构模型和循环结构模型对程序的控制流建模;
步骤1.2.2、Fij 中的通信部分,分析消息的源进程和目标进程,按照预设的并行系统性能分析方法的程序通信方式模型建立通信模型;
步骤1.2.3、根据Fij 中的数据类型,确定集合Cs 中的元素;
步骤1.2.4、将Fij 中的事件或动作转化为变迁tij ,然后根据变迁tij 的功能,定义变迁函数Ffij ,计算tij 触发后,标识Mij 的变化;
步骤1.2.5、计算Tfij ,得到变迁tij 触发延迟;
步骤1.2.6、若Fij 中的所有进程建模完毕,则转Step3,否则转Step2.1;
步骤1.3、当PA的Fij 均建模完毕,则将各功能模块模型按照同步合成法进行组合,形成完整算法的P模型;
步骤1.4、若得到的P不是安全网,做适当地改造,将受控网改造为相应的安全网。
4.依据权利要求1所述的并行系统性能的形式化分析方法,其特征在于,步骤二中,进行系统性能分析包括:
步骤2.1、并行度计算;
步骤2.2、负载平衡计算;
步骤2.3、系统运行时间计算;
步骤2.4、资源利用率与操作执行频率计算。
5.依据权利要求4所述的并行系统性能的形式化分析方法,其特征在于,并行度计算包括:片段集合J(Pp)={j1 , j2 ,…jn }=
是程序Pp的所有可能的片段集合,其中AP(M)表示在标识M下活跃的进程,RS(Pp)是并行程序Pp性能模型的可达标识集合,若M0 是Pp的初始状态,则RS(Pp)=R(M0 ); ç ji ç是片段ji 的大小,ji 中进程个数,并行程序Pp的最大并行度为。
6.依据权利要求4所述的并行系统性能的形式化分析方法,其特征在于,负载平衡计算包括:对于,Ave_tokenpi 表示在稳定状态下,库所在任一可达标识中平均含有的token数,则,,Sum_tokenPpi 为各节点进程库所集合中平均token数之和。
7.依据权利要求4所述的并行系统性能的形式化分析方法,其特征在于,系统运行时间计算包括:,其中,,,,, Ec为等效计算量,Er为等效计算速度,,Ds和Ar分别是等效数据访问量和等效数据访问速度。
8.依据权利要求4所述的并行系统性能的形式化分析方法,其特征在于,资源利用率与操作执行频率计算包括:利用Ave_tokenpi 估算资源的利用率,当PS 属于某个子进程时,可以把视为进程任务队列长度,进而分析进程响应时间和吞吐量;"tÎT的触发概率是能使t触发的所有标识的稳定概率之和,即,其中,ES(t)是指能使t触发的所有可达标识集合。
9.依据权利要求1所述的并行系统性能的形式化分析方法,其特征在于,还包括:确定并行系统性能分析,步骤3.1、计算节点关键性能影响因素的计算;步骤3-2,通信网络关键性能影响因素的计算;步骤3-3,并行应用性能度量参数的计算。
10.依据权利要求3所述的并行系统性能的形式化分析方法,其特征在于,还包括对并行应用性能模型进行正确性验证:
步骤1.1.1:初始化所有集合为Æ;
步骤1.1.2:根据定义3.28建立P模型的关联矩阵Cm ´n ;
步骤1.1.3:for i=1~m 判断每个pi 的类型;
步骤1.1.3.1:若,检查C第i列中“1”和“-1”的个数,若各位1,则满足定义4.7(1)和(2),否则FPS= FPSÈ{pi };
步骤1.1.3.2:若,检查C第i列中“1”和“-1”的个数,若都为x,则满足定义4.7(3),否则FPS= FPSÈ{pi };
步骤1.1.3.3:除以上类型外的pi ,若C第i列中“1”和“-1”的个数都为1,则满足定义4.7(4),否则FPS= FPSÈ{pi };
步骤1.1.3.4:若,则OMP=
OMPÈ{pi };
若,则LMP
= LMPÈ{pi };
若,则NMP
= NMP È{pi };
步骤1.1.4:for j=1~n 判断每个tj 的类型;
步骤1.1.4.1:若tj Îtstart ,检查C第j行中“1”和“-1”的个数是否分别为x和1,若是,则满足定义4.7(1),否则FTS= FTSÈ{tj };若tj Îtend ,检查C第j行中“1”和“-1”的个数是否分别为1和x,若是,则满足定义4.7(1),否则FTS= FTSÈ{tj };
步骤1.1.4.2:若tj ÎP2PT,则根据tj 的收发类型分别判断C第j行中“1”和“-1”的个数,若不满足定义4.7(2),则FTS= FTSÈ{tj };
步骤1.1.4.3:若tj ÎCCT,则根据tj 的通信类型分别判断C第j行中“1”和“-1”的个数,若不满足定义4.7(3),则FTS= FTSÈ{tj };
步骤1.1.4.4:除以上类型外的tj ,若C第j行中“1”和“-1”的个数都为1,则满足定义4.7(4),否则FPS= FPSÈ{pi };
步骤1.1.4.5:若,则OMT=OMTÈ{ti };
步骤1.1.4.6:若,则LMT=LMTÈ{ti };
步骤1.1.4.7:若,则NMT=NMTÈ{ti };
步骤1.1.5:算法结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410490717.9A CN105512018A (zh) | 2014-09-23 | 2014-09-23 | 一种并行系统性能的形式化分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410490717.9A CN105512018A (zh) | 2014-09-23 | 2014-09-23 | 一种并行系统性能的形式化分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105512018A true CN105512018A (zh) | 2016-04-20 |
Family
ID=55720019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410490717.9A Pending CN105512018A (zh) | 2014-09-23 | 2014-09-23 | 一种并行系统性能的形式化分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512018A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392308A (zh) * | 2017-06-20 | 2017-11-24 | 中国科学院计算技术研究所 | 一种基于可编程器件的卷积神经网络加速方法与系统 |
CN110209577A (zh) * | 2019-05-20 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 一种测试方法及装置 |
CN110320798A (zh) * | 2019-05-21 | 2019-10-11 | 西安电子科技大学 | 一种基于安全网的控制器结构简化及行为优化方法 |
CN110609744A (zh) * | 2018-06-15 | 2019-12-24 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、设备和计算机程序产品 |
CN112148384A (zh) * | 2020-09-27 | 2020-12-29 | 中国民用航空飞行学院 | Sca波形组件加载方法、装置、可读介质及电子设备 |
CN112765917A (zh) * | 2021-01-08 | 2021-05-07 | 华东师范大学 | 基于内存回收方案的非阻塞算法的形式化验证方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185732B1 (en) * | 1997-04-08 | 2001-02-06 | Advanced Micro Devices, Inc. | Software debug port for a microprocessor |
CN101650687A (zh) * | 2009-09-14 | 2010-02-17 | 清华大学 | 一种大规模并行程序性能预测实现方法 |
CN102289205A (zh) * | 2011-09-09 | 2011-12-21 | 河海大学常州校区 | 基于Agent的赋时着色Petri网的可重构装配系统建模方法 |
CN102571423A (zh) * | 2011-12-29 | 2012-07-11 | 清华大学 | 基于gshlpn的网络数据传输建模及性能分析方法 |
CN102760097A (zh) * | 2011-04-29 | 2012-10-31 | 无锡江南计算技术研究所 | 一种计算机体系结构性能模拟方法及系统 |
CN104021460A (zh) * | 2014-06-27 | 2014-09-03 | 北京太格时代自动化系统设备有限公司 | 一种工作流程管理系统及工作流程处理方法 |
-
2014
- 2014-09-23 CN CN201410490717.9A patent/CN105512018A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185732B1 (en) * | 1997-04-08 | 2001-02-06 | Advanced Micro Devices, Inc. | Software debug port for a microprocessor |
CN101650687A (zh) * | 2009-09-14 | 2010-02-17 | 清华大学 | 一种大规模并行程序性能预测实现方法 |
CN102760097A (zh) * | 2011-04-29 | 2012-10-31 | 无锡江南计算技术研究所 | 一种计算机体系结构性能模拟方法及系统 |
CN102289205A (zh) * | 2011-09-09 | 2011-12-21 | 河海大学常州校区 | 基于Agent的赋时着色Petri网的可重构装配系统建模方法 |
CN102571423A (zh) * | 2011-12-29 | 2012-07-11 | 清华大学 | 基于gshlpn的网络数据传输建模及性能分析方法 |
CN104021460A (zh) * | 2014-06-27 | 2014-09-03 | 北京太格时代自动化系统设备有限公司 | 一种工作流程管理系统及工作流程处理方法 |
Non-Patent Citations (1)
Title |
---|
成斌: "基于TCPN模型的并行系统性能分析方法研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107392308A (zh) * | 2017-06-20 | 2017-11-24 | 中国科学院计算技术研究所 | 一种基于可编程器件的卷积神经网络加速方法与系统 |
CN107392308B (zh) * | 2017-06-20 | 2020-04-03 | 中国科学院计算技术研究所 | 一种基于可编程器件的卷积神经网络加速方法与系统 |
CN110609744A (zh) * | 2018-06-15 | 2019-12-24 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、设备和计算机程序产品 |
CN110209577A (zh) * | 2019-05-20 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 一种测试方法及装置 |
CN110320798A (zh) * | 2019-05-21 | 2019-10-11 | 西安电子科技大学 | 一种基于安全网的控制器结构简化及行为优化方法 |
CN110320798B (zh) * | 2019-05-21 | 2021-09-24 | 西安电子科技大学 | 一种基于安全网的控制器结构简化及行为优化方法 |
CN112148384A (zh) * | 2020-09-27 | 2020-12-29 | 中国民用航空飞行学院 | Sca波形组件加载方法、装置、可读介质及电子设备 |
CN112148384B (zh) * | 2020-09-27 | 2023-04-18 | 中国民用航空飞行学院 | Sca波形组件加载方法、装置、可读介质及电子设备 |
CN112765917A (zh) * | 2021-01-08 | 2021-05-07 | 华东师范大学 | 基于内存回收方案的非阻塞算法的形式化验证方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105512018A (zh) | 一种并行系统性能的形式化分析方法 | |
Badr et al. | SynFull: Synthetic traffic models capturing cache coherent behaviour | |
US10445657B2 (en) | General framework for cross-validation of machine learning algorithms using SQL on distributed systems | |
CN104834479A (zh) | 面向云平台的自动优化存储系统配置的方法及系统 | |
CN101650687B (zh) | 一种大规模并行程序性能预测实现方法 | |
CN106055729A (zh) | 一种基于蒙特卡洛仿真的故障树分析方法 | |
CN106033469B (zh) | 用于大数据的结构化查询的高效性能预测的方法和系统 | |
CN102736896B (zh) | 运行前近似计算 | |
CN107533473B (zh) | 用于仿真的高效波形生成 | |
US9852360B2 (en) | Data clustering apparatus and method | |
CN108804473A (zh) | 数据查询的方法、装置和数据库系统 | |
Brix et al. | Parallelisation of multiscale-based grid adaptation using space-filling curves | |
Vatutin et al. | Comparison of sequential methods for getting separations of parallel logic control algorithms using volunteer computing | |
Zhu et al. | Bigop: Generating comprehensive big data workloads as a benchmarking framework | |
CN112433853A (zh) | 一种面向超级计算机数据并行应用的异构感知数据划分方法 | |
Gatzhammer et al. | A coupling environment for partitioned multiphysics simulations applied to fluid-structure interaction scenarios | |
CN102722653B (zh) | 一种基于MapReduce的射线跟踪加速算法 | |
US10120965B2 (en) | Waveform based reconstruction for emulation | |
Carrington et al. | Applying an automated framework to produce accurate blind performance predictions of full-scale hpc applications | |
Cui et al. | Modeling the performance of MapReduce under resource contentions and task failures | |
Tallent et al. | Diagnosing the causes and severity of one-sided message contention | |
Meyer | Structural stationarity in the π-calculus. | |
Kumar et al. | CMT-bone: a mini-app for compressible multiphase turbulence simulation software | |
Guan et al. | Impact of uncertainty and correlations on mapping of embedded systems | |
Kim et al. | Parallel and distributed framework for standalone monte carlo simulation using mapreduce |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160420 |
|
RJ01 | Rejection of invention patent application after publication |