[发明专利]一种利用时间局部性的格子玻尔兹曼方法并行加速方法有效
申请号: | 201711297745.9 | 申请日: | 2017-12-08 |
公开(公告)号: | CN108038304B | 公开(公告)日: | 2020-08-18 |
发明(设计)人: | 伍卫国;刘松;邹年俊;崔元桢;谢骁;屈彬 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F30/28 | 分类号: | G06F30/28;G06F119/14;G06F113/08 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 徐文权 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 利用 时间 局部性 格子 玻尔兹曼 方法 并行 加速 | ||
1.一种利用时间局部性的格子玻尔兹曼方法并行加速方法,其特征在于,包括步骤:
1)将单时间迭代步内的三个空间维的DOALL循环融合成一个DOACROSS循环;
2)对融合后的DOACROSS循环执行循环偏斜,消除与时间维相关的负依赖,形成融合时间维的DOACROSS循环;
3)使用循环分块技术,对融合时间维的DOACROSS循环执行循环分块,形成分块大小为a×a×t的多个分块;
4)对分块实现波阵面并行;
在步骤4)中,将步骤3)所得分块采用POST/WAIT操作实现波阵面并行,POST/WAIT操作的方式为:线程T2被分配给子块n2时,先执行WAIT操作,等待接收执行上一个波阵面对应子块n1的线程T1发出的信号;待接收到线程T1发出的信号之后,线程T2立即执行子块n2,计算结束后,线程T2执行POST操作,发送信号给下一个波阵面的对应子块n3,以启动处于等待的线程T3执行子块n3。
2.如权利要求1所述的利用时间局部性的格子玻尔兹曼方法并行加速方法,其特征在于,在步骤1)中,
取偏斜因子为1对存在负依赖的三个空间维的DOALL循环执行循环偏斜以消除负依赖,并实现循环融合。
3.如权利要求1所述的利用时间局部性的格子玻尔兹曼方法并行加速方法,其特征在于,在步骤2)中,
取偏斜因子为2对融合后的DOACROSS循环执行循环偏斜,消除与时间维相关的负依赖,形成融合时间维的DOACROSS循环。
4.如权利要求1所述的利用时间局部性的格子玻尔兹曼方法并行加速方法,其特征在于,在步骤3)中,
执行循环分块时,分块大小为a×a×t,其中,a为空间维分块因子,t为时间维分块因子;
空间维分块因子a可以根据以下公式进行计算并取整:
cache_capacity:私有L1/L2 cache的容量,
num_of_data:最内层循环单次迭代所访问的变量的数目,
DataType :变量所占字节数。
5.如权利要求1所述的利用时间局部性的格子玻尔兹曼方法并行加速方法,其特征在于,在步骤3)中,
融合时间维的DOACROSS循环采用矩形分块的方式执行循环分块,得到多个分块。
6.如权利要求1所述的利用时间局部性的格子玻尔兹曼方法并行加速方法,其特征在于,所述格子玻尔兹曼方法为采用D2Q9模型的格子玻尔兹曼方法。
7.如权利要求1所述的利用时间局部性的格子玻尔兹曼方法并行加速方法,其特征在于,所述方法应用在共享内存架构上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711297745.9/1.html,转载请声明来源钻瓜专利网。