摘要:本文基于傳統的分子動力學模擬方法和高性能計算平臺的資源情況,提出了用并行構件技術解決分子動力學模擬軟件開發的方法,使用高級語言編寫分子動力學模擬軟件的并行構件,提高了模擬軟件的開發效率和運行性能。
關鍵詞:并行構件;并行計算;分子動力學模擬;性能優化
中圖分類號:TP319 文獻標識碼:A 文章編號:1007-9416(2018)01-0185-02
1 分子動力學模擬簡介
為了在原子級別對物質微觀結構進行研究,往往需要使用計算機進行分子動力學模擬[1]。然而,傳統的分子動力學模擬方法,往往涉及到大量的原子之間作用力的交互,而且模擬的步驟也十分復雜,這就給計算機進行的分子動力學模擬帶來了較大的計算工作。但是,目前已有的分子動力學模擬軟件[1]進行模擬的對象具有特定的針對性。面對這種情況,如何能在提高分子動力學模擬軟件的可用性和求解的精度之間找到恰當的平衡,既能夠使研究者能夠簡單方便的使用計算機軟件進行分子動力學模擬,同時也能夠針對不同的模擬體系和要研究的性質和現象,選用不同的計算機模擬方法,提高模擬的精確度,得到最準確的模擬結果,成為影響使用計算機進行分子動力學模擬技術發展的重要問題。
2 分子動力學模擬中應用構件技術的優勢
本文作者針對使用計算機進行分子動力學模擬的軟件系統一般都由多種計算模型,比如使用數據并行模型對要模擬的粒子進行分組,或使用任務并行模型對要模擬的空間進行劃分,串行計算粒子受力情況和位移的情況兩個模塊,提出了新的多計算模型,多粒度的并行分子動力學模擬軟件的軟件體系結構。建立了分子動力學模擬軟件的并行構件體系結構規范,支持使用高級語言編寫分子動力學模擬軟件的并行構件,方便用戶根據不同的需要選用不同的并行構件進行簡單的組裝,實現自己所需要的分子動力學模擬軟件,減輕分子動力學模擬軟件編寫人員的編程負擔。在此基礎上,針對異構的并行構件執行的硬件平臺,可根據并行構件本身的計算模型和粒度,合理地部署不同的并行構件到不同的硬件資源上執行,進一步提高分子動力學模擬并行構件程序的運行性能。
3 計算模型分析與運行平臺資源管理
和普通串行構件技術一樣,并行構件技術最大的優勢就是將一定的計算功能包含在一個模塊當中[2],模塊的使用者并不需了解這個功能模塊的內部細節,而只通過構件對外提供的接口來連接不同的構件,實現自己所需要的軟件功能。這種組合方式提高了并行構件的復用性,用戶需要哪個計算功能,不需要自己使用編程語言編程實現,只要選用已經制作好的提供該功能的并行構件即可,提供了軟件的生產率,減輕了軟件編程人員的負擔。同時由于同一功能可以有不同的具體實現,這些實現細節被包含在不同的并行構件內部,從外部來看,這些并行構件提供的是相同的接口,實現的是同一個功能,為了更好地利用這些并行構件,本文作者設計了并行構件的自描述功能,包括對并行構件使用的計算模型和計算粒度的描述,對實現同一功能所使用的算法的描述,以及并行構件所使用的編程語言等等,在這些自描述信息的指導下,用戶可以更有針對性地選擇實現自己所需要的功能,同時和其他并行構件有著較簡單高效的連接機制,同時在特定的硬件平臺上有更高性能的并行構件實現。同時,由于不同的并行構件可能采用了不同的計算模型和計算粒度,它們之間的連接情況往往比較復雜,比如一個采用了三個進程進行計算的并行構件要和一個使用兩個進程的并行構件進行連接時,必須要使用特定的連接機制,比如連接子等對這兩個并行構件之間的數據交互進行轉換,在有些資料里這種做法被稱為“M×N”轉換。本文作者對分子動力學模擬軟件的并行構件所使用的連接子進行了研究,對于不同的分子動力學模擬軟件的并行構件,應該使用什么樣的連接機制才能夠在滿足用戶的功能需求的基礎上,進一步提高分子動力學模擬并行構件程序的執行性能。由于分子動力學模擬軟件本身的結構特點,考慮以下一些因素,需要模擬的粒子本身的物理特點,所選用的力場特點,邊界范圍和初始條件。而由于并行構件內部的具體實現特點,需要考慮以下因素,并行構件內部所使用的計算模型,計算粒度和具體的實現算法等。為此,本文作者研究針對分子動力學模擬的科學計算系統的實際需求,將計算模型,并行構件模型和分子動力學模擬軟件的自身特點相結合,實現了不同的分子動力學模擬軟件的并行構件之間的交互,尤其是不同的編程語言,不同的計算模型或不同的計算粒度的并行構件之間的交互機制,并在此基礎上,實現了不同的分子動力學模擬并行構件的生成,連接和調用機制,實現了一個分子動力學模擬程序的并行構件運行框架,進一步完善并行構件之間的交互機制。本文作者針對常用分子動力學模擬程序的功能模塊由多種計算模型和計算粒度組成的特點,提出適用于分子動力學模擬的并行構件體系結構,建立了適合于分子動力學模擬的并行構件規范,設計實現了適合分子動力學模擬的并行構件運行框架,提出對這類并行構件的描述語言,提供對使用高級編程語言編寫這類并行構件的支持。在此基礎上,本文作者考察了提高并行分子動力學模擬軟件開發效率的新方法,包括:并行構件接口的描述和表達,并行構件自描述信息的的表示,計算模型和部署平臺硬件資源的關系[3],并行構件的管理和運行,構件自描述信息和硬件平臺計算資源自適應匹配,并行構件之間的通信,并行構件的運行框架,分子動力學模擬并行構件程序的建模,性能估算,并行構件程序的測試等。在此基礎上,開發了能夠支持分子動力學模擬并行構件程序的運行框架和建模工具,結合分子動力學模擬軟件的并行構件化過程,研究面向偏微分方程求解的并行構件技術,提高了分子動力學模擬軟件系統的開發效率。
4 結語
提高開發大規模并行軟件的開發效率能給石油,航天等眾多關系國計民生的重要科研領域提供巨大的幫助。同時由于并行構件具有較高的復用性,能夠提高這些并行軟件的可靠性,提供較好的可擴展性支持,同時也便于對這些軟件進行維護和更新。從軟件開發的實際情況來看,一方面,大規模并行計算軟件需要對多物理量進行耦合,涉及到數量巨大的模塊之間的交互,導致這些軟件的開發比較困難,往往一個應用程序就需要數年的時間。本文提出的方法,加速了分子動力學模擬軟件的開發效率,提高了這些軟件的運行性能,為相關領域的科學研究提供了支持。
參考文獻
[1]江蓉君,羅健輝,白瑞兵,等.多元體系油水界面上常見表面活性劑行為的分動力學模擬[J].高等學?;瘜W學報,2017,10:1804-1812.
[2]彭云峰,魏勝利.擴展OpenMP支持CCA并行構件及其性能優化[J].小型微型計算機系統,2014,35:2034-2038.
[3]潘佳藝,王芳,楊靜怡,等.異構Hadoop集群下的負載自適應反饋調度策略[J].計算機工程與科學,2017,3:413-423.