欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于多尺度耦合的并行進(jìn)程合并方法及系統(tǒng)與流程

文檔序號:11133735閱讀:666來源:國知局
一種基于多尺度耦合的并行進(jìn)程合并方法及系統(tǒng)與制造工藝

本發(fā)明涉及計(jì)算方法的并行進(jìn)程合并技術(shù),尤其涉及一種基于多尺度耦合的計(jì)算方法的并行進(jìn)程合并方法及系統(tǒng)。



背景技術(shù):

在多尺度耦合大規(guī)模計(jì)算中,通常會涉及到兩類或以上計(jì)算方法的耦合計(jì)算,而不同計(jì)算方法在大規(guī)模計(jì)算中對于內(nèi)存的需求也會不盡相同。因此在實(shí)現(xiàn)超大規(guī)模的耦合計(jì)算時,為節(jié)約計(jì)算資源,實(shí)現(xiàn)資源利用最大化,對于兩類或以上計(jì)算方法在大規(guī)模并行計(jì)算中進(jìn)行不同進(jìn)程的數(shù)據(jù)合并十分必要。

在多尺度耦合計(jì)算中,兩類或以上計(jì)算方法的耦合通常牽涉到各計(jì)算方法之間的數(shù)據(jù)繼承與傳遞。對于超大規(guī)模多尺度耦合并行計(jì)算中,各計(jì)算方法間的數(shù)據(jù)傳遞更是一個難點(diǎn)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于,解決現(xiàn)有的超大規(guī)模多尺度耦合并行計(jì)算中不同進(jìn)程的數(shù)據(jù)合并困難的問題,提供了一種基于多尺度耦合的并行進(jìn)程合并方法及系統(tǒng),通過計(jì)算合并寬度并對相應(yīng)進(jìn)程數(shù)據(jù)進(jìn)行釋放和遷移傳輸,實(shí)現(xiàn)計(jì)算方法在大規(guī)模并行計(jì)算中進(jìn)行不同進(jìn)程的數(shù)據(jù)合并,節(jié)約了計(jì)算資源,實(shí)現(xiàn)資源利用的最大化。

為了實(shí)現(xiàn)上述目的,一方面,本發(fā)明提供了一種基于多尺度耦合的并行進(jìn)程合并方法,該方法包括以下步驟:分別計(jì)算統(tǒng)計(jì)需耦合計(jì)算的至少兩類計(jì)算方法所需的變量和所需的內(nèi)存空間,并確定需傳遞的數(shù)據(jù)的類型與大小;判斷所述至少兩類計(jì)算方法中第一類計(jì)算方法的n個進(jìn)程合并成第二類計(jì)算方法的1個進(jìn)程的合并寬度;按照所述合并寬度對第一類計(jì)算方法的n個進(jìn)程和第二類計(jì)算方法的1個進(jìn)程之間的數(shù)據(jù)進(jìn)行釋放和遷移傳輸。

另一方面,本發(fā)明提供基于多尺度耦合的并行進(jìn)程合并系統(tǒng),具體包括:第一計(jì)算模塊,分別計(jì)算統(tǒng)計(jì)需耦合計(jì)算的至少兩類計(jì)算方法所需的變量和所需的內(nèi)存空間,并確定需傳遞的數(shù)據(jù)的類型與大??;第二計(jì)算模塊,判斷所述至少兩類計(jì)算方法中第一類計(jì)算方法的n個進(jìn)程合并成第二類計(jì)算方法的1個進(jìn)程的合并寬度;傳輸模塊,按照所述合并寬度對第一類計(jì)算方法的n個進(jìn)程和第二類計(jì)算方法的1個進(jìn)程之間的數(shù)據(jù)進(jìn)行釋放和遷移傳輸。

本發(fā)明提供的一種的基于多尺度耦合的并行進(jìn)程合并方法及系統(tǒng),實(shí)現(xiàn)了計(jì)算方法在大規(guī)模并行計(jì)算中進(jìn)行不同進(jìn)程的數(shù)據(jù)合并,節(jié)約了計(jì)算資源,實(shí)現(xiàn)資源利用的最大化。

附圖說明

圖1為本發(fā)明實(shí)施例提供的一種基于多尺度耦合的并行進(jìn)程合并方法流程示意圖;

圖2為本發(fā)明實(shí)施例提供的一種基于多尺度耦合的并行進(jìn)程合并系統(tǒng)結(jié)構(gòu)示意圖;

圖3為圖1所示基于多尺度耦合的并行進(jìn)程合并流程中一個以MD與KMC的耦合計(jì)算為例的示意圖;

圖4為圖1所示基于多尺度耦合的并行進(jìn)程合并流程中另一個以MD與KMC的耦合計(jì)算為例的示意圖;

圖5為圖1所示基于多尺度耦合的并行進(jìn)程合并流程中,按照合并寬度對進(jìn)程進(jìn)行數(shù)據(jù)合并的過程示意圖;

圖6為圖1所示基于多尺度耦合的并行進(jìn)程合并流程中,按照合并寬度對相應(yīng)進(jìn)程數(shù)據(jù)進(jìn)行釋放和遷移傳輸?shù)恼w流程圖。

具體實(shí)施方式

下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案作進(jìn)一步的詳細(xì)描述。

本發(fā)明實(shí)施例提供的一種的基于多尺度耦合的并行進(jìn)程合并方法及系統(tǒng),實(shí)現(xiàn)了計(jì)算方法在大規(guī)模并行計(jì)算中進(jìn)行不同進(jìn)程的數(shù)據(jù)合并,節(jié)約了計(jì)算資源,實(shí)現(xiàn)資源利用的最大化。

圖1為本發(fā)明實(shí)施例提供的一種基于多尺度耦合的并行進(jìn)程合并方法流程示意圖。如圖1所示,該方法包括步驟101-103:

步驟101,分別計(jì)算統(tǒng)計(jì)需耦合計(jì)算的至少兩類計(jì)算方法所需的變量和所需的內(nèi)存空間,并確定需傳遞的數(shù)據(jù)的類型與大小。

具體地,根據(jù)材料多尺度耦合計(jì)算的不同計(jì)算方法的實(shí)際情況,進(jìn)行數(shù)據(jù)類型與大小的統(tǒng)計(jì)。

本實(shí)施例以Cu-Fe合金為材料樣本,以分子動力學(xué)模擬(MD)和動力學(xué)蒙特卡羅模擬(KMC)兩類計(jì)算方法為例。在MD和KMC方法程序中,每個原子所占內(nèi)存大小是確定的,由于MPI(Multi Point Interface)通信方式和緩沖結(jié)構(gòu)也是確定的,且Cu-Fe合金在固體狀態(tài)下是排布均勻的單晶結(jié)構(gòu),所以如果知道每個進(jìn)程上模擬的樣本塊的長,寬,高,就可以計(jì)算出它與相鄰進(jìn)程通信所需的緩沖開銷,緩沖開銷通過以下公式獲?。?/p>

memBuffers=2*a*(n*blockX*blockY+n*blockX*blockZ+blockY*blockZ)其中,a為單位接觸面積通信所需的內(nèi)存大小,n為合并寬度,blockX,blockY,blockZ分別為MD模擬物理塊在X軸,Y軸,Z軸上的長度,各進(jìn)程相同。據(jù)此在程序運(yùn)行前計(jì)算出合并寬度為n時每個KMC進(jìn)程所需的內(nèi)存空間:

mem_n=memAtoms(nTotalAtoms)+memBuffers+comVariables,其中nTotalAtoms為合并的n個進(jìn)程中的原子數(shù)之和,memAtoms(nTotalAtoms)為原子所占內(nèi)存,comVariables為公共變量所占內(nèi)存。

步驟102,判斷MD的n個進(jìn)程合并成KMC的1個進(jìn)程的合并寬度;以按行合并數(shù)量相同的相鄰的進(jìn)程塊為例,實(shí)現(xiàn)進(jìn)程合并寬度n的自動判斷。

(1)以X軸方向?yàn)闇?zhǔn),對Y軸和Z軸方向的行循環(huán),進(jìn)行進(jìn)程合并;

(2)初始化合并寬度:n=1;

(3)計(jì)算加入合并組numGroup的數(shù)據(jù)量大?。?/p>

若m%n=0時,x軸上每行的進(jìn)程按寬度n可分為m/n組。若m%n!=0時,x軸上每行的進(jìn)程按寬度n可分為m/n+1組,最后一組的合并進(jìn)程數(shù)小于n,所占總內(nèi)存小于前面任何一組,所以在計(jì)算時只計(jì)算前面合并進(jìn)程數(shù)為n的組的內(nèi)存即可。

①計(jì)算加入合并組numGroup的n個進(jìn)程內(nèi)原子存儲數(shù)據(jù)大?。?/p>

其中,numProc_Y表示進(jìn)程的Y軸坐標(biāo),numProc_Z表示進(jìn)程的Z軸坐標(biāo),procMD[n*numGroup+i][numProc_Y][numProc_Z]表示坐標(biāo)為([n*numGroup+i],[numProc_Y],[numProc_Z])的進(jìn)程號,nAtoms[procMD[n*numGroup+i][numProc_Y][numProc_Z]]表示第i個進(jìn)程的原子存儲數(shù)據(jù)大小,numGroup表示按X軸分組后的組別編號,i表示n個進(jìn)程內(nèi)的第i個進(jìn)程。

②計(jì)算加入合并組numGroup的n個進(jìn)程通信緩存數(shù)據(jù)大小:

memBuffers=2*a*(n*blockX*blockY+n*blockX*blockZ+blockY*blockZ)

③計(jì)算加入合并組numGroup的n個進(jìn)程數(shù)據(jù)總量大小

mem_n=memAtoms(nTotalAtoms)+memBuffers+comVariables;

(4)確認(rèn)合并寬度n的值:

①如果計(jì)算所得的內(nèi)存mem_n大于單個進(jìn)程的實(shí)際物理內(nèi)存phyMem,則這行最大合并寬度為當(dāng)前n減1。繼續(xù)對其他行進(jìn)行計(jì)算。

②如果計(jì)算所得的內(nèi)存mem_n小于或等于單個進(jìn)程的實(shí)際物理內(nèi)存phyMem,且組號numGroup為最大組號m/n時,進(jìn)程合并寬度為當(dāng)前的n,將n值n加1后繼續(xù)對該行進(jìn)行寬度為n+1的判斷;

(5)計(jì)算所有行的合并寬度n中的最小值,即為MD算法與KMC算法耦合的進(jìn)程合并寬度。

If n<min_n then

min_n=n

假設(shè)模擬區(qū)域塊在分子動力學(xué)模擬階段有m*m*m個進(jìn)程,即X、Y、Z軸三個方向上的進(jìn)程數(shù)均為m,MPI數(shù)據(jù)重分布的方案為以x軸方向?yàn)闇?zhǔn)將n個MD進(jìn)程合并為一個KMC進(jìn)程,則根據(jù)m是否能夠被n整除分為兩種情況,m能被n整除時,每個KMC進(jìn)程的模擬規(guī)模相同,若m不能被n整除,則有m%n個進(jìn)程的模擬規(guī)模會小于其他的KMC進(jìn)程。

圖3、圖4分別為圖1所示基于多尺度耦合的并行進(jìn)程合并流程中,以MD與KMC的耦合計(jì)算為例的示意圖,圖3中m=2,n=2,圖4中m=3,n=2。

步驟103,按照合并寬度對MD的n個進(jìn)程和KMC的1個進(jìn)程之間的數(shù)據(jù)進(jìn)行釋放和遷移傳輸。

在MD與KMC的大規(guī)模耦合計(jì)算中,為了最大限度地利用計(jì)算機(jī)資源,MD計(jì)算規(guī)模通常會設(shè)計(jì)成內(nèi)存使用達(dá)到每個進(jìn)程物理內(nèi)存允許的上限,在運(yùn)行過程中各進(jìn)程的內(nèi)存幾乎會被用完,因此選擇出在下一步KMC模擬中不需要的數(shù)據(jù),將其釋放為合并進(jìn)程騰出空間十分重要。先將MD中對KMC模擬過程中沒有影響的原子速度、力等變量空間釋放掉,騰出足夠的內(nèi)存空間用于缺陷處理。用Wigner-Seitz缺陷分析方法對MD計(jì)算結(jié)果的所有原子進(jìn)行缺陷處理,得到空位、間隙原子和正常原子的信息,同時也可以得到晶格點(diǎn)上原子的類型信息,存到數(shù)組TYPE中。其中,數(shù)組TYPE的數(shù)據(jù)就是KMC模擬計(jì)算所需的原子及其相關(guān)信息。缺陷處理結(jié)束后釋放掉處理過程中新申請的內(nèi)存的原子坐標(biāo)所占用的內(nèi)存,然后進(jìn)行進(jìn)程間數(shù)據(jù)的遷移。

對于數(shù)據(jù)遷移,首先必須確定數(shù)據(jù)接收進(jìn)程,即繼續(xù)進(jìn)行KMC模擬的進(jìn)程,以及數(shù)據(jù)發(fā)送進(jìn)程,在數(shù)據(jù)發(fā)送結(jié)束后將進(jìn)程殺死。合并的進(jìn)程在物理模型和計(jì)算機(jī)模型上并無區(qū)別,因此,認(rèn)為規(guī)定將合并的n個相鄰進(jìn)程中X坐標(biāo)最小的進(jìn)程作為接收進(jìn)程,其他進(jìn)程為發(fā)送進(jìn)程。對于接收進(jìn)程,一方面要接收發(fā)送進(jìn)程發(fā)來的數(shù)據(jù),另一方面,要進(jìn)行KMC模擬的初始化。由于Cu-Fe合金在固體狀態(tài)下是排布均勻的單晶結(jié)構(gòu),所以只需發(fā)送Cu和空位對應(yīng)的TYPE數(shù)組的信息即可,其他晶格點(diǎn)上默認(rèn)為鐵。保留MD模擬中給晶格點(diǎn)上原子類型數(shù)組、電子云密度數(shù)組以及嵌入能導(dǎo)數(shù)數(shù)組分配的內(nèi)存空間,作為KMC模擬中存儲晶格點(diǎn)原子類型以及二體斥能EV和嵌入能ER的的存儲空間,而模擬溫度,時間步長,總時間等變量則可以根據(jù)輸入重新賦值,繼續(xù)使用。

圖5為圖1所示基于多尺度耦合的并行進(jìn)程合并流程中,按照合并寬度對進(jìn)程進(jìn)行數(shù)據(jù)合并的過程示意圖,其中合并寬度n=2。

數(shù)據(jù)遷移流程如下:

(1)以X軸為基準(zhǔn)進(jìn)行進(jìn)程合并的數(shù)據(jù)遷移過程,根據(jù)合并寬度n計(jì)算沿X軸方向的MD進(jìn)程合并成numTolGroup個KMC進(jìn)程:

(2)在MD進(jìn)程中進(jìn)行數(shù)據(jù)處理,將KMC進(jìn)程中不需要的數(shù)據(jù)釋放掉:

①釋放力和速度變量;

②采用Wigner-Seitz缺陷分析方法進(jìn)行缺陷處理,更新格點(diǎn)原子類型數(shù)組TYPE;

(3)對于KMC接收進(jìn)程,釋放原子坐標(biāo)所占的內(nèi)存P(上一步缺陷處理用到了原子坐標(biāo)信息),清空電子云密度數(shù)組rho以及嵌入能導(dǎo)數(shù)數(shù)組df,用于在KMC模擬中存儲能量相關(guān)的變量ER、EV;

(4)數(shù)據(jù)遷移:發(fā)送進(jìn)程將存儲晶格點(diǎn)處原子類型的數(shù)組TYPE中表示類型為Cu和空位的部分發(fā)送給接收進(jìn)程;

(5)更新進(jìn)程拓?fù)湫畔ⅲ?/p>

(6)殺死進(jìn)程合并后剩下的空閑進(jìn)程;開始KMC模擬。

圖6為圖1所示基于多尺度耦合的并行進(jìn)程合并流程中,按照合并寬度對相應(yīng)進(jìn)程數(shù)據(jù)進(jìn)行釋放和遷移傳輸?shù)恼w流程圖。

本發(fā)明提供的一種的基于多尺度耦合的并行進(jìn)程合并方法,實(shí)現(xiàn)了計(jì)算方法在大規(guī)模并行計(jì)算中進(jìn)行不同進(jìn)程的數(shù)據(jù)合并,節(jié)約了計(jì)算資源,實(shí)現(xiàn)資源利用的最大化。

圖2為本發(fā)明實(shí)施例提供的一種基于多尺度耦合的并行進(jìn)程合并系統(tǒng)結(jié)構(gòu)示意圖。該并行進(jìn)程合并系統(tǒng)500包括第一計(jì)算模塊501、第二計(jì)算模塊502和傳輸模塊503。

第一計(jì)算模塊501,分別計(jì)算統(tǒng)計(jì)需耦合計(jì)算的至少兩類計(jì)算方法所需的變量和所需的內(nèi)存空間,并確定需傳遞的數(shù)據(jù)的類型與大?。?/p>

第二計(jì)算模塊502,判斷所述至少兩類計(jì)算方法中第一類計(jì)算方法的n個進(jìn)程合并成第二類計(jì)算方法的1個進(jìn)程的合并寬度;

傳輸模塊503,按照所述合并寬度對第一類計(jì)算方法的n個進(jìn)程和第二類計(jì)算方法的1個進(jìn)程之間的數(shù)據(jù)進(jìn)行釋放和遷移傳輸。

本發(fā)明實(shí)施例提供的一種的基于多尺度耦合的并行進(jìn)程合并系統(tǒng),實(shí)現(xiàn)了計(jì)算方法在大規(guī)模并行計(jì)算中進(jìn)行不同進(jìn)程的數(shù)據(jù)合并,節(jié)約了計(jì)算資源,實(shí)現(xiàn)資源利用的最大化。

以上的具體實(shí)施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
台安县| 汪清县| 焉耆| 嵊州市| 长宁县| 大洼县| 涪陵区| 凤阳县| 克什克腾旗| 东乌珠穆沁旗| 云南省| 银川市| 密云县| 介休市| 灵寿县| 马尔康县| 新竹市| 台前县| 霸州市| 长沙市| 洞头县| 正安县| 巴林右旗| 汤阴县| 黑龙江省| 会昌县| 五大连池市| 丰镇市| 广元市| 田东县| 遂平县| 托克托县| 桃园县| 昌都县| 昭平县| 四平市| 兰考县| 海宁市| 武强县| 鄯善县| 新泰市|