[发明专利]一种支持多核帮助线程的低开销的块同步方法无效
申请号: | 200910085602.0 | 申请日: | 2009-05-26 |
公开(公告)号: | CN101561766A | 公开(公告)日: | 2009-10-21 |
发明(设计)人: | 古志民;郑宁汉;张轶;黄艳;唐洁;刘昌定;陈嘉;周伟峰;张博 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F12/08 |
代理公司: | 北京理工大学专利中心 | 代理人: | 张利萍 |
地址: | 100081北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 支持 多核 帮助 线程 开销 同步 方法 | ||
1.一种支持多核帮助线程的低开销的块同步方法,其特征在于其基本思想是在共享缓存的多核架构基础上,针对多核应用中非规则数据缺失的问题,通过为预取帮助线程引入提前量和低开销的块同步机制,达到降低计算线程执行时的数据缺失、减少预取帮助线程与计算线程同步的开销,提高计算线程执行性能的目的;具体实现步骤如下:
步骤一、构造预取帮助线程的提前量
在预取非规则数据时,借助历史地址信息,动态保持预取帮助线程的预取工作指针总提前于计算线程的当前工作指针k个位置,这样,无论在计算线程和预取帮助线程是处于开始或同步状态时,预取帮助线程可动态保持在计算线程之前访问数据,并使该数据能在被计算线程访问之前被及时推送到共享缓存之中;
步骤二、选择低开销的块同步机制
在步骤一构造预取帮助线程的提前量基础上,步骤二选择一种低开销的块同步机制;
该低开销的块同步机制分为两种情况,可依据测试情况择优选择其中之一:
a.双计数器的块同步机制
块同步机制将计算线程中引发共享缓存缺失的数据访问流,按先后顺序划分为若干块,每个块的大小依据应用实例的选择测试效果情况来设定具体值;并且同步操作仅仅发生在块的边界,以减小同步的精度来降低同步代价;预取帮助线程的提前量及其动态的保持可由步骤一来完成,对于每一个块用pushsize表示块的大小,计算线程和预取帮助线程都拥有自己的计数器,当它们每访问共享缓存缺失数据流中的一项数据,就会对其计数器加1,当计数器的数值达到pushsize时,计算线程和预取帮助线程之间必须进行同步,如果它们没有达到同一进度,计算器的数值达到pushsize的进程必须被阻塞并等待直到另一线程与之同步;
b.单计数器的块同步机制
计算线程不会被同步所阻塞,也没有加入额外的同步操作,只有预取帮助线程拥有一个计数器,当计数器的值达到pushsize,预取帮助线程会将推送数据的指针与计算线程设为相同,预取帮助线程的提前量及其动态的保持可由步骤一来完成。
2.根据权利要求1所述的一种支持多核帮助线程的低开销的块同步方法,其特征在于步骤一中构造预取帮助线程的提前量步骤为:
第(1)步:在计算线程中,对当前预取位置的计算工作量进行估算,如果属于没有计算工作量或少计算工作量的情况,转第(2)步,否则转第(4)步;
第(2)步:为保证预取帮助线程领先于计算线程Δt时间,在计算线程的当前预取位置,找到提前Δt代码计算量的位置,并在预取帮助线程代码中调整当前预取工作指针提前于计算线程的当前工作指针k个位置,对于数组的下标调整为这个下标值加k;对于链表,预取工作指针调整为当前链表指针后的第k个指针;这里Δt和k有下式关系:
Δt=f(k)=k*MissPenalty+c0
其中:k代表一个正整数,可依据Δt的估计值或测量值来确定;
MissPenalty代表一次长延迟访存的开销;
c0代表一个设定的常数值;
第(3)步:当计算线程本次数据推送的分片结束,转第(4)步;当同步时,转第(2)步;
第(4)步:结束。
3.根据权利要求1所述的一种支持多核帮助线程的低开销的块同步方法,其特征在于步骤二选择低开销的块同步机制中,双计数器的块同步机制由计算线程的计算分片操作步骤和预取帮助线程的操作步骤组成:
①计算线程的计算分片具体操作步骤如下:
第(1)步:开始;
第(2)步:计数器置0,计算线程与预取帮助线程开始协作;
第(3)步:读数据,计数器加1,执行计算;
第(4)步:如果计算分片结束,转第(6)步;第(5)步:如果计数器值大于pushsize,转第(2)步,否则转 第(3)步;
第(6)步:结束;
②预取帮助线程的具体操作步骤如下:
第(1)步:开始;
第(2)步:计数器置0,计算线程与预取帮助线程开始协作;
第(3)步:如果是同步的开始,按帮助预取线程调整提前量后的当前工作指针推送预取数据,否则按帮助预取线程新的当前工作指针推送预取数据,计数器加1;
第(4)步:如果计算结束,转第(6)步;
第(5)步:如果计数器值大于pushsize,转第(2)步,否则转第(3)步;
第(6)步:结束。
4.根据权利要求1所述的一种支持多核帮助线程的低开销的块同步方法,其特征在于步骤二选择低开销的块同步机制中,单计数器的块同步机制由计算线程的计算分片操作步骤和预取帮助线程的操作步骤组成:
①计算线程的计算分片具体操作步骤如下:
第(1)步:开始;
第(2)步:计算线程与预取帮助线程开始协作;
第(3)步:读数据,执行计算;
第(4)步:如果计算分片结束,转第(5)步,否则转第(3)步;
第(5)步:结束;
②预取帮助线程的具体操作步骤如下:
第(1)步:开始;
第(2)步:计算线程与预取帮助线程开始协作;
第(3)步:计数器置0,获取计算线程的当前工作指针;
第(4)步:如果是同步的开始,按帮助预取线程调整提前量后的当前工作指针推送预取数据,否则按帮助预取线程新的当前工作指针推送预取数据,计数器加1;
第(5)步:如果计算结束,转第(7)步;
第(6)步:如果计数器值大于pushsize,转第(3)步,否则转第(4)步;
第(7)步:结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910085602.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种空转锁
- 下一篇:一种非吸收性材料与纯水泥基材料结合处的防水密封方法