本發(fā)明屬于分子動力學領域,尤其涉及一種眾核架構處理器的原子tersoff勢模擬方法及系統(tǒng)。
背景技術:
1、本部分的陳述僅僅是提供了與本發(fā)明相關的背景技術信息,不必然構成在先技術。
2、分子動力學模擬(md)效率的需求不斷增加。以lammps(large-scale?atomic/molecular?massively?parallel?simulator)分子動力學模擬軟件為例,可模擬半導體的tersoff勢以及模擬軟材料和介觀粒子的相關勢場等。根據tersoff勢的原理公式可知,tersoff勢函數的計算非常復雜,且在實踐中,tersoff勢模擬過程也非常耗時:在一臺頂級的臺式機處理器上,對于一個擁有512000個原子系統(tǒng)的tersoff勢,每天只能模擬0.4ns。
3、雖然,lammps使用鄰接表可以消除較遠原子之間不必要的相互作用,但對于一些具有許多超越數學函數的復雜相互作用如tersoff勢,計算仍然較為密集,這樣仍無法滿足分子動力學模擬效率的需求。
技術實現思路
1、為了解決上述背景技術中存在的技術問題,本發(fā)明提供一種眾核架構處理器的原子tersoff勢模擬方法及系統(tǒng),其通過對眾核架構處理器的硬件特性對原子tersoff勢模擬進行深入分析和優(yōu)化,可顯著提升分子動力學模擬軟件中的tersoff勢的計算性能,為材料科學領域的分子動力學模擬提供更高效的計算平臺。
2、為了實現上述目的,本發(fā)明采用如下技術方案:
3、本發(fā)明的第一個方面提供一種眾核架構處理器的原子tersoff勢模擬方法。
4、一種眾核架構處理器的原子tersoff勢模擬方法,其包括:
5、開辟各個線程的副本以代替原子鎖,預先處理各個線程所對應的i原子的標簽并與鄰接表重構綁定;
6、初始化大小為n*n的數組,以存儲n個i原子的n個短鄰居原子;
7、遍歷n個i原子,使用指令集從鄰接表中篩選出i原子的短鄰居原子,并填充初始化的數組;
8、轉置填充后的數組,轉置后的數組的第j行代表n個i原子的第j個短鄰居,以進行n個i原子的tersoff勢引力計算;
9、當n個i原子短鄰居的受力計算完成后,向量化更新當前n個i原子的受力,直至所有i原子受力計算完成,規(guī)約各個線程的副本受力并結束計算,釋放所有副本空間;其中,n為眾核架構處理器中的一個向量單元可處理的32位整數類型元素的個數;j為不小于1且不大于n的正整數。
10、本發(fā)明的第二個方面提供一種眾核架構處理器的原子tersoff勢模擬系統(tǒng)。
11、一種眾核架構處理器的原子tersoff勢模擬系統(tǒng),其包括:
12、標簽處理模塊,其用于開辟各個線程的副本以代替原子鎖,預先處理各個線程所對應的i原子的標簽并與鄰接表重構綁定;
13、數組初始化模塊,其用于初始化大小為n*n的數組,以存儲n個i原子的n個短鄰居原子;
14、數組填充模塊,其用于遍歷n個i原子,使用指令集從鄰接表中篩選出i原子的短鄰居原子,并填充初始化的數組;
15、引力計算模塊,其用于轉置填充后的數組,轉置后的數組的第j行代表n個i原子的第j個短鄰居,以進行n個i原子的tersoff勢引力計算;
16、副本規(guī)約模塊,其用于當n個i原子短鄰居的受力計算完成后,向量化更新當前n個i原子的受力,直至所有i原子受力計算完成,規(guī)約各個線程的副本受力并結束計算,釋放所有副本空間;其中,n為眾核架構處理器中的一個向量單元可處理的32位整數類型元素的個數;j為不小于1且不大于n的正整數。
17、本發(fā)明的第三個方面提供一種計算機程序產品。
18、一種計算機程序產品,包括計算機程序/指令,該計算機程序/指令被處理器執(zhí)行時實現所述眾核架構處理器的原子tersoff勢模擬方法中的步驟。
19、本發(fā)明的第四個方面提供一種眾核架構處理器。
20、一種眾核架構處理器,包括存儲器、處理器本體及存儲在存儲器上并可在處理器本體上運行的計算機程序,所述處理器本體執(zhí)行所述程序時實現如上述所述的眾核架構處理器的原子tersoff勢模擬方法中的步驟。
21、與現有技術相比,本發(fā)明的有益效果是:
22、本發(fā)明通過開辟各個線程的副本以代替原子鎖,結合眾核架構處理器的硬件多線程特性,預先處理各個線程所對應的原子標簽并與鄰接表重構綁定,對各個線程的多個原子進行tersoff勢引力計算,最后在所有相同標簽的原子受力計算完成后,規(guī)約各個線程的副本受力并結束計算,釋放所有副本空間,顯著提升了分子動力學模擬軟件中的tersoff勢的計算性能,滿足了分子動力學模擬效率的需求。
23、本發(fā)明附加方面的優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
1.一種眾核架構處理器的原子tersoff勢模擬方法,其特征在于,包括:
2.如權利要求1所述的眾核架構處理器的原子tersoff勢模擬方法,其特征在于,每次重新構建鄰接表等于0時,判斷原子是否屬性相同;對相同屬性的原子標記標簽,后續(xù)只計算標記標簽的原子。
3.如權利要求1所述的眾核架構處理器的原子tersoff勢模擬方法,其特征在于,在n個i原子的tersoff勢引力計算的過程中,向量化循環(huán)更新n個i原子的受力。
4.如權利要求3所述的眾核架構處理器的原子tersoff勢模擬方法,其特征在于,使用設定函數生成新的數值向量統(tǒng)計原子在當前向量中出現的次數。
5.如權利要求1所述的眾核架構處理器的原子tersoff勢模擬方法,其特征在于,在累加受力計算時使用double精度,整體能量直接累加計算時使用float精度。
6.如權利要求1所述的眾核架構處理器的原子tersoff勢模擬方法,其特征在于,將副本空間釋放和重新分配與鄰接表重構相關聯。
7.如權利要求1所述的眾核架構處理器的原子tersoff勢模擬方法,其特征在于,在i原子循環(huán)層面使用多線程并行策略,每個線程采用動態(tài)i原子數量的受力計算,以確保線程負載均衡,每個線程計算對應原子受力并更新副本。
8.一種眾核架構處理器的原子tersoff勢模擬系統(tǒng),其特征在于,包括:
9.一種計算機程序產品,包括計算機程序/指令,其特征在于,該計算機程序/指令被處理器執(zhí)行時實現如權利要求1-7中任一項所述的眾核架構處理器的原子tersoff勢模擬方法中的步驟。
10.一種眾核架構處理器,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述程序時實現如權利要求1-7中任一項所述的眾核架構處理器的原子tersoff勢模擬方法中的步驟。