[發明專利]一種對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.szxzyx.cn/pat/books/201410175864.7/2.html,轉載請聲明來源鉆瓜專利網。





