[发明专利]一种对GTC软件SHIFT模块串行代码并行化的方法有效
申请号: | 201410175864.7 | 申请日: | 2014-04-29 |
公开(公告)号: | CN103902362B | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 吴韶华;张广勇;沈铂;张清 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/44 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250014 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 gtc 软件 shift 模块 串行 代码 并行 方法 | ||
本发明公开了一种对GTC软件SHIFT模块串行代码并行化的方法,通过排它性扫描有效的实现了SHIFT模块原有串行代码的并行化,即利用排它性扫描对每个线程的数据在整体数据中的位置进行标定,各个线程依据标定的位置,直接进行后续的计算,避免了原串行代码中将散布在内存中不同位置的数据聚合到一个连续的内存空间的过程,并实现了填充空洞过程的并行化,显著的缩短了GTC程序运行时间,有效的改进了GTC程序的性能。
技术领域
本发明涉及高性能计算领域中的并行程序设计及优化,尤其涉及一种对GTC软件SHIFT模块串行代码并行化的方法。
背景技术
高性能计算通常是指利用许多计算资源,如很多的CPU或协处理器,来完成单个CPU所不能完成的计算任务。为使程序运行在多个计算设备上,需要将原本是串行的程序并行化。我们所讲的串行程序是指由于程序自身算法的限制,使得其在计算时仅能采用单个进程或线程运行的程序。而并行程序是指程序在运行时可以利用多个进程在多个设备上同时执行。
GTC是用来进行非线性回旋动理学湍流模拟的一个大规模并行软件,由普林斯顿大学等离子体实验室研制,是国际热核聚变实验堆(ITER)计划中模拟高能粒子湍流的关键程序。GTC通过对等离子体在磁场作用下的输运性质的模拟,可以再现等离子体随时间的运行演化过程,这对于研究磁约束受控核聚变,提高等离子体在Tokamak装置中的约束时间有着非常重要的意义。SHIFT模块是GTC软件最耗时的模块之一,其根源在于该模块中存在着大量的串行代码,通过将该部分的串行代码并行化将极大的提升GTC程序整体的性能。
在串行程序的并行化过程中,首先需要考虑的是采用何种方式来并行化原有的串行程序。设计并行算法一般有三种策略:a)检测和开拓现有串行算法中的固有并行性而直接将其并行化,它虽不是对所有问题总是可行的,但对很多应用问题仍不失为一种有效的方法;b)从问题本身的描述出发,根据问题固有的属性,从头开始设计一种全新的并行算法,它虽有一定的难度,但所设计的并行算法通常是高效的;c)借用已有的并行算法使之可求解新的一类问题,采用该方法往往有可能产生一个很优秀的并行算法。本发明中采用排它性扫描对GTC软件的SHIFT模块进行并行化的方法即属于该类方法。
排它性扫描是指这样的一个过程:假设数组a中共有N个元素,它们依次为:
a={a
经过排它性扫描后,得到的数组b中同样具有N个元素,它们依次为:
b={0,a
可以看到,b中第1个元素的值为0,第i>1个元素的值是a中前i-1个元素之和。以上的过程即为排它性扫描。如果a中的第i个元素代表在i位置处需要操作的数据的个数,那么b中的第i个元素的意义是a(i)在整个数据序列中的位移。
发明内容
本发明针对GTC软件中SHIFT模块由于大部分的串行执行过程导致的程序效率低下的问题,提出了利用排它性扫描进行GTC软件SHIFT模块中串行代码并行化的方法。
本发明公开了一种对GTC软件SHIFT模块串行代码并行化的方法,其解决所述技术问题采用的技术方案如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410175864.7/2.html,转载请声明来源钻瓜专利网。