[发明专利]基于渐进式踪迹更新的并行程序能耗模拟评估方法有效

专利信息
申请号: 201110450987.3 申请日: 2011-12-29
公开(公告)号: CN102567079A 公开(公告)日: 2012-07-11
发明(设计)人: 车永刚;徐传福;张理论;王勇献;刘巍;陆平静;王正华 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: G06F9/455 分类号: G06F9/455
代理公司: 国防科技大学专利服务中心 43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于渐进式踪迹更新的并行程序能耗模拟评估方法,技术方案是构建安装有目标程序TAPP、模拟运行软件SIMComp、存储性能模拟软件SIMIO、通信性能模拟软件SIMComm、能耗模拟软件SIMEngy的宿主机,SIMComp评估TAPP各个逻辑进程LP的各个计算代码块的执行时间,生成TAPP运行的踪迹文件;SIMIO基于SIMComp生成的踪迹文件,对每个LP中相应的I/O操作进行模拟,获得每个I/O代码块的执行时间,形成新的踪迹文件;SIMComm基于SIMIO生成的踪迹文件,对每个LP中相应的消息通信操作进行模拟,获得每个消息通信代码块的执行时间,形成新的踪迹文件;SIMEngy基于SIMComm生成的踪迹文件,对程序运行的能耗进行评估。采用本发明实现了对并行程序运行电能消耗的高效评估,有利于并行计算系统能耗管理、优化配置及应用优化。
搜索关键词: 基于 渐进 踪迹 更新 并行 程序 能耗 模拟 评估 方法
【主权项】:
一种基于渐进式踪迹更新的并行程序能耗模拟评估方法,其特征在于包括以下步骤:第一步,构建宿主机,宿主机是执行模拟过程的由多个结点构成的并行计算机系统或单结点多处理器并行计算机系统,宿主机上共有P个处理器,P为正整数,各个处理器间通过网络或共享内存互连,并具有共享的磁盘存储设备,从每个处理器均可访问共享磁盘存储设备;宿主机上安装有如下软件:所模拟的目标程序TAPP、模拟运行软件SIMComp、存储性能模拟软件SIMIO、通信性能模拟软件SIMComm、能耗模拟软件SIMEngy,SIMComp、SIMIO、SIMComm和SIMEngy均是并行程序,它们均以多进程方式运行,每个进程运行在宿主机的一个处理器上;SIMComp、SIMIO、SIMComm和SIMEngy的进程分别称为COMP模拟进程、IO模拟进程、COMM模拟进程和ENGY模拟进程,这些模拟进程均有进程号;目标程序TAPP在目标系统上运行时,每个处理器上运行一个进程,将由SIMComp、SIMIO、SIMComm和SIMEngy模拟的TAPP的进程称为逻辑进程,简记为LP,每个LP都有进程号;第二步,在宿主机上启动模拟运行软件SIMComp,在全部处理器上并行地模拟执行目标程序TAPP,评估TAPP各个LP的各个计算代码块的执行时间,并记录I/O操作和通信操作,生成TAPP运行的踪迹文件TRACE0,TRACE1,...,TRACEP‑1,方法是:2.1在宿主机上启动模拟运行软件SIMComp,共启动P个COMP模拟进程,分别编号为0到P‑1;2.2每个COMP模拟进程均读取计算性能模拟配置文件,获得计算性能配置参数;2.3SIMComp对目标程序TAPP进行模拟执行,每个COMP模拟进程对目标程序TAPP的多个LP进行模拟,根据计算性能配置参数来评估各个计算代码块的执行时间,并在内存的踪迹结构中记录各个LP的执行踪迹信息,具体步骤是:2.3.1每个COMP模拟进程为其所模拟的每个LP在内存中创建一个新的内存踪迹结构,以记录该LP的执行踪迹信息;2.3.2在每个COMP模拟进程中,对于其所模拟的每个LP,进行如下处理:2.3.2.1初始化变量iblk_no=0;2.3.2.2如果iblk_no=0,取该LP代码中的第一块,否则取该LP代码中的下一块;2.3.2.3如果当前取的是计算代码块,则对该块中的代码进行模拟执行,并根据计算 性能配置参数来评估该代码块在目标系统上的执行时间t_comp;然后,在本LP对应的内存踪迹结构中增加一个新的计算代码块,记录其块编号BLK_NO为iblk_no,记录其块类型BLK_TYPE为CCB,并记录其执行时间BLK_DURATION为t_comp;计算代码块是指LP代码中一片连续的计算代码段;2.3.2.4如果当前取的是I/O代码块,则对该块中的代码进行模拟执行;然后在本LP对应的内存踪迹结构中增加一个新的I/O代码块,记录其块编号BLK_NO为iblk_no,记录其块类型BLK_TYPE为IOCB,并置其本地存储访问时间IO_LDURATION和远程存储访问IO_RDURATION为NULL,NULL表示一种未赋值的空状态;记录本块中的读写操作记录列表IO_LIST,其中包含本块中全部读写语句的操作记录,每条记录包括下列信息:该语句在本块中的序号IO_NO、读写位置IO_LOC、读写类型IO_TYPE、数据量大小IO_SIZE;I/O代码块是指LP代码中一片连续的存储访问代码段;2.3.2.5如果当前取的是消息通信代码块,则对该块中的代码进行模拟执行;然后,在本LP对应的内存踪迹结构中增加一个新的消息代码块,在其中记录其块编号BLK_NO为iblk_no的值,记录其BLK_TYPE为MCB,置其结点内消息通信时间COMM_IDURATION和结点间消息通信时间COMM_XDURATION为NULL;记录本块中的消息记录列表COMM_LIST,其中包含本块中全部消息通信语句的记录,每条记录包括下列信息:消息在本块中的序号MSG_NO、通信位置MSG_LOC、通信对象编号MSG_ENTY、消息大小MSG_SIZE;消息通信代码块是指LP代码中一片连续的消息通信代码段;2.3.2.6如果已经到达该LP代码的末尾,则转2.4;否则,置iblk_no=iblk_no+1,转2.3.2.2;2.4每个COMP模拟进程根据其所模拟的各个LP在内存中对应的踪迹结构,创建一个踪迹文件,编号为i的COMP模拟进程生成的踪迹文件为TRACEi,0≤i≤(P‑1),在踪迹文件中记录本COMP模拟进程所负责模拟的全部LP的执行踪迹;每个踪迹文件为各个LP记录了一个沿其虚拟时间轴分布的代码块序列结构,其开始部分是一个元数据块,其中记录了该COMP模拟进程所模拟的LP数目、编号、各个LP对应踪迹在踪迹文件中的位置,元数据块后逐个存储各个LP的踪迹信息;2.5模拟运行软件SIMComp退出;第三步,在宿主机上启动存储性能模拟软件SIMIO,以TRACE0,TRACE1,...,TRACEP‑1为输入,对每个LP中相应的I/O操作进行模拟,获得每个I/O代码块的执行 时间,并修改TRACE0,TRACE1,...,TRACEP‑1,记录I/O代码块的时间,步骤是:3.1在宿主机上启动存储性能模拟软件SIMIO,共启动P个IO模拟进程,分别编号为0至P‑1;3.2每个IO模拟进程均读取存储性能模拟配置文件,获得存储系统配置参数,包括本地存储系统性能参数和远程存储性能参数;3.3每个IO模拟进程读取第二步生成的一个踪迹文件,编号为i的IO模拟进程读取的踪迹文件为TRACEi,根据踪迹文件元数据块中的信息定位各个LP对应踪迹的位置,在内存中重建各个LP的踪迹结构;3.4所有IO模拟进程并行执行,每个IO模拟进程对其负责模拟的各个LP的踪迹结构进行逐块遍历,对其中每个I/O代码块进行模拟,具体步骤:3.4.1定位到第一个代码块;3.4.2如果当前代码块的BLK_TYPE等于CCB或MCB,则转3.4.4;3.4.3如果当前代码块BLK_TYPE等于IOCB,则遍历本块中的读写操作记录列表IO_LIST,基于存储系统配置参数来评估其中各条语句的执行时间,最后更新本块的执行时间,具体步骤:3.4.3.1定位到本块第一条读写记录,置变量lio_time=0,rio_time=0;3.4.3.2如果当前读写记录的IO_LOC等于LOCAL,则基于本地存储系统性能参数,结合IO_TYPE和IO_SIZE字段的值,模拟得到其本地存储访问时间tio_local,置lio_time=lio_time+tio_local;如果当前读写记录的IO_LOC等于REMOTE,则基于远程存储性能参数,结合IO_TYPE和IO_SIZE字段的值,模拟得到其远程存储访问时间tio_remote,置rio_time=rio_time+tio_remote;3.4.3.3如果已到本块中最后一条读写记录则转3.4.3.4;否则,定位到本块中下一条读写记录,转3.4.3.2;3.4.3.4在该LP对应的内存踪迹结构中更新当前代码块的本地存储访问时间IO_LDURATION的值为lio_time,更新远程存储访问IO_RDURATION的值为rio_time;3.4.4如果已到最后一个代码块,则转3.5;否则,定位到下一个代码块,转3.4.2;3.5每个IO模拟进程根据其所模拟的各个LP在内存中对应的踪迹结构,更新相应的踪迹文件,编号为i的IO模拟进程更新的踪迹文件为TRACEi;3.6存储性能模拟软件SIMIO退出;第四步,在宿主机上启动通信性能模拟软件SIMComm,以TRACE0,TRACE1,..., TRACEP‑1为输入,对每个LP中相应的消息通信操作进行模拟,获得每个消息通信代码段的执行时间,并修改TRACE0,TRACE1,...,TRACEP‑1,记录消息通信代码块的时间,具体步骤是:4.1在宿主机上启动通信性能模拟软件SIMComm,一共启动P个COMM模拟进程,分别编号为0到P‑1;4.2每个COMM模拟进程均读取通信性能模拟配置文件,获得通信系统配置参数,包括结点内通信性能参数与结点间通信性能参数;4.3每个COMM模拟进程读取一个踪迹文件,编号为i的COMM模拟进程读取的踪迹文件为TRACEi,根据踪迹文件元数据块中的信息定位各个LP对应踪迹的位置,在内存中重建各个LP的踪迹结构;4.4所有COMM模拟进程并行执行,每个COMM模拟进程对其负责模拟的各个LP的踪迹结构进行逐块遍历,对其中的每个消息通信代码块进行模拟,具体步骤:4.4.1定位到第一个代码块;4.4.2如果当前代码块的BLK_TYPE等于CCB或IOCB,则转4.4.4;4.4.3如果当前代码块的BLK_TYPE等于MCB,则遍历本块中的消息通信记录列表MSG_LIST,基于通信系统配置参数来模拟评估各条语句的执行时间,最后更新本块的执行时间,具体步骤:4.4.3.1定位到本块第一条消息通信记录,置变量mintra_time=0,minter_time=0;4.4.3.2如果当前消息通信记录的MSG_LOC等于INTRA_NODE,则基于结点内通信性能参数及MSG_ENTY和MSG_SIZE字段的值,模拟得到其通信时间tmsg_intra,置mintra_time=mintra_time+tmsg_intra;如果当前读写记录的MSG_LOC等于INTER_NODE,则基于结点间消息通信性能参数及MSG_ENTY和MSG_SIZE字段的值,模拟得到其通信时间tmsg_inter,置minter_time=minter_time+tmsg_inter;4.4.3.3如果已到本块中最后一条消息通信记录则转4.4.3.4;否则,定位到本块中下一条消息通信记录,转4.4.3.2;4.4.3.4在该LP对应的内存踪迹结构中更新当前代码块的结点内消息通信时间MSG_IDURATION的值为mintra_time,结点间消息通信时间MSG_XDURATION的值为minter_time;4.4.4如果已到最后一个代码块,则转4.5;否则,定位到下一个代码块,转4.4.2;4.5每个COMM模拟进程根据其所模拟的各个LP在内存中对应的踪迹结构,更新 相应的踪迹文件,编号为i的COMM模拟进程更新的踪迹文件为TRACEi;4.6通信性能模拟软件SIMComm退出;第五步,在宿主机上启动能耗模拟软件SIMEngy,以TRACE0,TRACE1,...,TRACEP‑1为输入,根据能耗模拟配置文件,对程序运行的能耗进行评估,具体步骤:5.1在宿主机上启动能耗模拟软件SIMEngy,一共启动P个ENGY模拟进程,分别编号为0至P‑1;5.2每个ENGY模拟进程读取能耗模拟配置文件,该配置文件中包括:目标系统执行计算代码期间单位时间的电能消耗Pcpu;执行I/O代码期间单位时间的电能消耗,分为本地存储访问单位时间的电能消耗Plio,远程存储访问单位时间的电能消耗Prio;执行通信代码期间单位时间的电能消耗,分为结点内通信单位时间的电能消耗Pimsg和结点间通信单位时间的电能消耗Pxmsg;5.3每个ENGY模拟进程读取一个踪迹文件,编号为i的ENGY模拟进程读取的踪迹文件为TRACEi,根据踪迹文件元数据块中的信息定位各个LP对应踪迹的位置,在内存中重建各个LP的踪迹结构;5.4所有ENGY模拟进程并行执行,每个ENGY模拟进程对其负责模拟的各个LP的踪迹结构进行逐块遍历,对每个代码块进行能耗评估,具体步骤:5.4.1初始化变量Eq为0,q为本ENGY模拟进程的编号;5.4.2对本ENGY模拟进程所负责模拟的每个LP,执行如下操作:5.4.2.1定位到第一个代码块,置变量EEi=0,i为当前被模拟LP的进程号;5.4.2.2如果当前代码块的BLK_TYPE等于CCB,则取其BLK_DURATION字段的值到变量tcomp中,置EEi=EEi+Pcpu×tcomp;如果当前代码块的BLK_TYPE等于IOCB,则分别取其IO_LDURATION和IO_RDURATION字段的值到变量tlio和trio中,置EEi=EEi+Plio×tlio+Prio×trio;如果当前代码块的BLK_TYPE等于MCB,则分别取其MSG_IDURATION和MSG XDURATION字段的值到变量timsg和txmsg中,置EEi=EEi+Pimsg×timsg+Pxmsg×txmsg;5.4.2.3如果尚未达到最后一个单元块,定位到下一个代码块,转5.4.2.2;否则,置Eq=Eq+EEi,执行5.4.3;5.4.3如果本ENGY模拟进程的编号不等于0,则将Eq发送给编号为0的ENGY模 拟进程;如果本ENGY模拟进程的编号等于0,接收来自其他所有ENGY模拟进程的Eq,计算 E total = Σ 0 q ( P - 1 ) E q ; 5.4.4编号为0的ENGY模拟进程输出目标程序TAPP在目标系统上的能耗评估值Etotal;5.5能耗模拟软件SIMEngy退出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201110450987.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top