一种用于消除存储访问拥塞的同构计算任务分组方法

文档序号:6547384阅读:194来源:国知局
一种用于消除存储访问拥塞的同构计算任务分组方法
【专利摘要】一种用于消除存储访问拥塞的同构计算任务分组方法,该方法依据同构计算任务执行的并行收益进行分组,通过重叠不同分组的计算区域和访存区域,减轻或消除应用在众核处理器系统运行时的存储访问拥塞。本发明不需要在算法层面对是否发生存储访问拥塞进行分析,为具有同构计算任务特征应用的访存性能分析和优化提供了统一有效的方法。
【专利说明】一种用于消除存储访问拥塞的同构计算任务分组方法
【技术领域】
[0001]本发明属于计算机系统结构领域,涉及一种计算任务分组方法,尤其涉及一种用于消除存储访问拥塞的同构计算任务分组方法。
【背景技术】
[0002]高性能计算发展水平是衡量一个国家综合国力与国际竞争力的重要指标,是一个国家科技实力的综合体现,在航空航天、核武研制、石油勘探、气象预报、生命科学、海嘯与地震自然灾害预测等关键领域有着巨大应用需求。因此,世界各国都竞相将高性能计算作为技术与经济争夺的战略制高点。目前,众核处理器为解决高性能计算提供了契机,它采用大量处理器核加速应用执行。然而,由于受成本和硬件技术的制约,众核处理器的存储部件不能有效的满足众核系统大量处理器核的访存需求,使得众核处理器系统的存储访问成为其性能提升的瓶颈。尽管众核系统使用GDDR5存储、高速片上总线、以及多存储访问通道等硬件技术提升性能,存储访问瓶颈并没有得到根本性的改善。
[0003]众核处理器芯片集成数量巨大的处理器核,通过众多处理器核并行运行加速应用程序的执行。然而,当运行于不同处理器核上的计算任务是同构计算任务时,由于所有计算任务几乎是在同一时间段内请求存储访问,大量的存储访问超出了众核处理器存储部件的正常处理能力,导致存储访问拥塞,降低了应用程序的整体执行性能。
[0004]目前消除众核处理器存储访问拥塞的最简单的方法是仅在众核处理器运行计算密集型任务,比如矩阵相乘,以减轻众核处理器存储部件的压力。该方法忽略了其他类型应用利用众核处理器加速执行的需求,比如访存密集型应用、介于访存密集型和计算密集型之间的应用。折中方法是将访存密集型应用和计算密集型应用按一定比例混合后加载到众核处理器运行。由于计算密集型应用占用访存资源有限,访存密集型应用可以使用大部分访存资源加速其执行。这些方法从资源有效利用层面解决众核系统的访存墙问题,存在以下不足:
[0005](I)没有考虑具有同构计算任务特征的应用,比如MapReduce应用。具有同构计算任务特征的MapReduce应用是大数据时代的主流应用,该类应用包含大量的同构计算任务,而这些计算任务在大部分情况下属于访存密集任务,其并行执行时,存储访问拥塞不可避免。
[0006](2)该类方法仅考虑了如何有效利用访存资源,没有考虑在存储访问拥塞不可避免的情况下,如何通过对同构计算任务进行合理分组,减轻或避免存储访问拥塞对计算任务执行的影响。
[0007]由于这些问题的存在,针对目前主流应用,这类方法不能有效解决众核处理器系统的存储访问拥塞问题。

【发明内容】

[0008]本发明的目的在于提供一种用于消除存储访问拥塞的同构计算任务分组方法,该分组方法解决了具有同构计算任务特征的应用在众核系统上运行时的存储访问拥塞问题。
[0009]为了达到上述目的,本发明采用的技术方案包括如下步骤:
[0010]I)设置并行执行的同构计算任务数nl =处理器核最多能够支持的硬件线程数;设置预期并行收益pb_exp = I ;
[0011]2)设置n2 = 2Xnl ;然后分别以nl个同构计算任务和n2个同构计算任务并行执行应用,记录并行执行的同构计算任务数为nl时的运行时间为Tl,并行执行的同构计算任务数为n2时的运行时间为T2 ;
[0012]3)利用并行执行的同构计算任务数为nl时的运行时间Tl以及并行执行的同构计算任务数为n2时的运行时间T2得到实际并行收益为pb_real,且pb_real = T1/T2,若pb_real>2,则将n2的值赋值给nl,返回步骤2);否则转入步骤4);
[0013]4)若pb_real≥pb_exp- Δ,则将n2的值赋值给η I,将pb_real的值赋值给pb_exp,返回步骤2);否则,将nl作为一个分组中最多能够包括的同构计算任务数,其中,Δ =表示可容忍的实际并行收益低于预期并行收益的最大幅度;
[0014]5)利用一个分组中最多能够包括的同构计算任务数对所有等待执行的同构计算任务进行分组,每间隔Ts时间,顺序的将一个分组内的同构计算任务映射到对应的处理器核上开始执行任务;其中,Ts是所有同构计算任务访存区域的平均执行时间。
[0015]所述的步骤4)中,对于Intel Phi?众核处理器以及Phoenix++运行时系统,Ts为Oms≤Ts≤IOOms ;对于由计算密集型同构计算任务组成的分组,Ts = IOOms ;对于由其它类型的同构计算任务组成的分组,Ts〈100ms。
[0016]所述的步骤4)中,Δ =O-10
[0017]与现有技术相比,本发明的有益效果在于:
[0018]本发明通过迭代的方式合理确定在不发生存储访问拥塞的情况下最多可以同时启动的同构计算任务的数目,并以此为依据对同构计算任务进行分组。同时通过预期并行收益pb_eXp和实际并行收益pb_real的对比用于判断一个分组中的同构计算任务数nl是否合理;当pb_exp_ Δ >pb_real时,说明分组中的同构计算任务数继续增加,不仅不会带来预期的或好于预期的并行收益,而且还会导致存储访问拥塞,所以将nl作为一个分组在不发生存储访问拥塞的情况下最多可以包括的同构计算任务数。
[0019]另外,该方法基于不同分组计算任务之间的计算和访存可以异步执行的特征,采用流水线的方式重叠不同分组的存储访问和计算,减少了大量同构计算任务同时请求存储访问的机会。该分组方法使得众核处理器的存储访问部件最大可能的工作在非拥塞状态,避免了同构计算任务并行执行导致的存储访问拥塞。
【专利附图】

【附图说明】
[0020]图1为本发明的流程图;
[0021]图2为Word Count的pb_real变化趋势图
[0022]图3为使用分组和未使用分组的对比图。
【具体实施方式】
[0023]以下结合附图对本发明作进一步的详细描述。[0024]参见图1,本发明能够对等待执行的同构计算任务进行分组,以减少或避免存储访问拥塞,分组流程如图1所示,具体包括以下步骤:
[0025]I)设置并行执行的同构计算任务数nl =处理器核最多能够支持的硬件线程数;设置预期并行收益pb_exp = I ;
[0026]2)设置n2 = 2Xnl ;然后分别以nl个同构计算任务和n2个同构计算任务并行执行应用,记录并行执行的同构计算任务数为nl时的运行时间为Tl,并行执行的同构计算任务数为n2时的运行时间为T2 ;
[0027]3)利用并行执行的同构计算任务数为nl时的运行时间Tl以及并行执行的同构计算任务数为n2时的运行时间T2得到实际并行收益为pb_real,且pb_real = T1/T2,若pb_real>2,则将n2的值赋值给nl,返回步骤2);否则转入步骤4);
[0028]4)若pb_real≤pb_exp- Δ,则将n2的值赋值给η I,将pb_real的值赋值给pb_exp,返回步骤2);否则,将nl作为一个分组中最多能够包括的同构计算任务数,其中,Δ =表示可容忍的实际并行收益低于预期并行收益的最大幅度,其值取0.1 ;
[0029]5)利用一个分组中最多能够包括的同构计算任务数对所有等待执行的同构计算任务进行分组,每间隔Ts时间,顺序的将一个分组内的同构计算任务映射到对应的处理器核上开始执行任务;其中,Ts是所有同构计算任务访存区域的平均执行时间;其中,对于Intel Phi?众核处理器以及Phoenix++运行时系统,Ts为Oms ^ Ts ^ IOOms ;对于由计算密集型同构计算任务组成的分组,Ts = IOOms ;对于由其它类型的同构计算任务组成的分组,Ts〈100ms。
[0030]本发明中的同构 计算任务是指:那些计算量相同且访存区域和计算区域的分布相同或非常接近,且能够在同一时间启动的计算任务。
[0031]处理器核最多能够支持的硬件线程数指一个处理器的每个处理核能够最多支持的硬件线程的数目。
[0032]预期并行收益pb_eXp是指:当并行执行的计算任务数量增加一倍时,程序执行时间预期减少的倍数。
[0033]实际并行收益pb_real指:当并行执行的计算任务数量增加一倍时,程序执行时间实际减少的倍数,即pb_real (η) = T(2n)/T(n) ;Τ(η)表示当并行执行的计算任务数为η时,应用并行执行需要的时间。
[0034]本发明预期并行收益pb_exp和实际并行收益pb_real的对比用于判断一个分组中的同构计算任务数nl是否合理。当pb_exp_ Δ >pb_real时,说明分组中的同构计算任务数继续增加,不仅不会带来预期的或好于预期的并行收益,而且还会导致存储访问拥塞。故nl为一个分组在不发生存储访问拥塞的情况下最多可以包括的同构计算任务数。
[0035]下面以Word Count应用和支持240硬件线程的Intel Phi?处理器为例,说明分组过程。其中,每个计算任务对应一个硬件线程,Word Count的实际并行收益pb_real如图2所示,由于所有的pb_real值都不大于1.7,因此,关于pb_real>2的条件判断可以直接跳过。
[0036]首先,nl = 4, pb_exp = I。
[0037]当nl = 4 时,n2 = 8,由图 2 可知,pb_real = T (4)/T (8) >pb_exp = 1- Δ.因此,设置 pb_exp = pb_real, nl = n2,继续迭代。[0038]当nl = 8 时,n2 = 16,由图 2 可知,pb_real = T (8) /T (16) >pb_exp = T (4) /T (8) - Δ ,设置 pb_exp = pb_real, η I = n2,继续迭代。
[0039]当nl = 16时,由于Intel Phi?支持的有效硬件线程数为240,为了便于计算,我用使用n2 = 30个计算任务的并行执行近似表示nl = 16个计算任务数翻倍后的执行。由图2可知,pb_real = T (16)/T (30) <pb_exp = T⑶/T (16)-Δ ,说明计算任务数继续增加不会进一步增加并行收益pb_real,反而会诱发存储访问拥塞,因此,结束迭代,将nl赋值给Group_Size,表示一个分组最多能够包括Group_Size = 16个同构计算任务。
[0040]利用一个分组中最多能够包括的同构计算任务数对所有等待执行的同构计算任务进行分组;每间隔Ts时间,将一个分组内的同构计算任务映射到对应的处理器核上开始执行任务,目的是在某一时间段Ts内只执行一个分组的访存区域。使用分组方法和未使用分组方法的应用程序执行区别如图3所示。
[0041]由图3可以看出,由于不同分组的访存区域分布在不同的时间段内,而执行单个分组的访存区域不会诱发存储访问拥塞,因此,存储访问部件可以一直工作在非拥塞状态,避免了存储访问拥塞的发生。尽管Ts推迟了部分计算任务的执行,然而基于分组的执行明显缩短了同构计算任务的存储访问时间,使得运行完所有同构计算任务整体所用的时间更短。
[0042]本发明通过迭代方式计算出在不发生存储访问拥塞的情况下允许的最大分组,通过流水线控制不同分组之间的计算和访存重叠,有效减少了并行应用在众核系统执行时存储访问拥塞发生的机会。该分组方法不需要在算法层面对是否发生存储访问拥塞进行分析,为具有同构计算任务特征的大数据应用的访存性能分析和优化提供了统一有效的方法。
【权利要求】
1.一种用于消除存储访问拥塞的同构计算任务分组方法,其特征在于,包括如下步骤: 1)设置并行执行的同构计算任务数nl=处理器核最多能够支持的硬件线程数;设置预期并行收益pb_exp = I ; 2)设置n2= 2Xnl ;然后分别以nl个同构计算任务和n2个同构计算任务并行执行应用,记录并行执行的同构计算任务数为nl时的运行时间为Tl,并行执行的同构计算任务数为n2时的运行时间为T2 ; 3)利用并行执行的同构计算任务数为nl时的运行时间Tl以及并行执行的同构计算任务数为n2时的运行时间T2得到实际并行收益为pb_real,且pb_real = T1/T2,若pb_real>2,则将n2的值赋值给nl,返回步骤2);否则转入步骤4); 4)若pb_real≥ pb_exp- Δ,则将η2的值赋值给η I,将pb_real的值赋值给pb_exp,返回步骤2);否则,将nl作为一个分组中最多能够包括的同构计算任务数,其中,Δ =表示可容忍的实际并行收益低于预期并行收益的最大幅度; 5)利用一个分组中最多能够包括的同构计算任务数对所有等待执行的同构计算任务进行分组,每间隔Ts时间,顺序的将一个分组内的同构计算任务映射到对应的处理器核上开始执行任务;其中,Ts是所有同构计算任务访存区域的平均执行时间。
2.根据权利要求1用于消除存储访问拥塞的同构计算任务分组方法,其特征在于:所述的步骤4)中,对于Intel Phi?众核处理器以及Phoenix++运行时系统,Ts为Oms≤Ts≤100ms ;对于由计算密集型同构计算任务组成的分组,Ts = IOOms ;对于由其它类型的同构计算任务组成的分组,Ts〈100ms。
3.根据权利要求1用于消除存储访问拥塞的同构计算任务分组方法,其特征在于:所述的步骤4)中,Δ =O-10
【文档编号】G06F9/48GK103995744SQ201410219408
【公开日】2014年8月20日 申请日期:2014年5月22日 优先权日:2014年5月22日
【发明者】董小社, 李亮, 朱正东, 张兴军, 巨涛, 白秀秀, 颜康 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1