GPU計算:複雜多相流動分子動力學模擬
2023-07-24 21:58:45
[泡泡網顯卡頻道 2009年2月17日]分子動力學(molecular dynamics,MD)模擬是隨著計算機技術的發展而興起的一種科學計算方法,現已應用到廣泛的領域中,如醫藥、材料、能源、機電等。隨著納米、微機電和微化工等技術的興起,納微流動的MD模擬近年來也成為熱點。傳統連續流體力學難以處理和解釋這些尺度上的獨特性質與現象,而流動歸根結底是流體分子的集體行為,MD模擬能詳細跟蹤每個分子的運動,並通過分析速度、溫度等統計性質闡釋理論中的難點、發現新的機理,故日益受到重視。
● 挑戰
但是,計算能力一直是制約此研究發展的瓶頸。現在這方面很多成熟算法都基於傳統體系結構的中央處理器(CPU),但其發展已顯頹勢。圖形處理器(GPU)的計算能力現已遠高於CPU一到兩個量級。如何在MD流動模擬中利用GPU的強大能力已成為一個重要的現實課題。
● 解決方案
中國科學院過程工程研究所多相複雜系統國家重點實驗室進行了圖形處理器(GPU)上的分子動力學(MD)模擬。即利用配備了一片NVIDIA Tesla? C870的服務系統來運行NVIDIA CUDA?架構, 通過方腔流及顆粒-氣泡接觸等實例初步展示了此方式從微觀上模擬介觀行為的能力。經證實,在NVIDIA公司技術助力下,該計算過程速度是以往運用單核CPU計算的20到60倍,最高可達150 Gflops。
傳統GPU對非圖形應用支持有限,只能通過圖形API編程,內存帶寬較低且訪問限制多,從而制約了其性能發揮。NVIDIA CUDA的發布打破了傳統GPU的性能瓶頸,提供了新的軟硬體架構。本次模擬的多相體系中,CUDA把GPU直接視作數據並行計算設備而不再將計算映射到圖形操作上,以擴展性較好的區域分解和常用的消息傳遞接口(Message Passing Interface, MPI)協議實現各節點間GPU的並行計算,以類C語言的方式給開發者更大自由來實現GPU算法。CUDA還能結合OpenMP,MPI和PVM等其他並行方式在節點內和節點間繼續擴展計算能力,更好的發揮了GPU的強大性能,並將計算中的數據訪問效率提高了一個量級以上。Tesla C870的有效計算性能(指計算分子對相互作用時的浮點操作數)是以往所採用的單核CPU的20~30倍。若考察極端情況,即只測試耗時最長的分子間作用力計算,GPU更佔優勢, 約能發揮150 Gflops,佔其可利用計算峰值(346 Gflops)的40%多,而CPU能發揮2.4 Gflops,GPU的計算能力達到CPU的60倍之多!說明GPU很適合像多體問題。
● 影響
方腔流是流體動力學的一個經典問題,本次模擬將GPU應用於方腔流的MD模擬,使得模擬體系的規模有較大提高,在一定程度上達到了(亞)微米尺度,溝通了連續的流體力學和離散的分子動力學。而多相納微流動研究對納米、材料、生物、微機電與微化工系統等技術領域更有實用性,但也更有挑戰性,目前還沒有成熟的理論方法,其MD模擬需要更多的計算資源且實現更加複雜,因此GPU的應用顯得更有價值。另一方面, 利用CUDA技術和MPI協議,MD模擬可以實現某些物理實驗難以進行的極端情況,這是MD模擬非常值得關注的新方式。總體來說,GPU在MD模擬上的應用還有巨大的潛力。■