鮑建樟 豐鑫田 于建國,*
(1北京師范大學管理學院系統(tǒng)科學系,北京100875;2北京師范大學化學學院,北京100875)
GPU引發(fā)的計算化學革命
鮑建樟1豐鑫田2于建國2,*
(1北京師范大學管理學院系統(tǒng)科學系,北京100875;2北京師范大學化學學院,北京100875)
綜述了圖形處理器(GPU)在計算化學中的應用和進展.首先簡單介紹了GPU在科學計算中應用的發(fā)展,然后分別詳細講述了迄今幾個使用GPU和CUDA(compute unified device architecture,顯卡廠商Nvidia推出的計算平臺)開發(fā)工具設(shè)計的量子化學計算和分子動力學(MD)模擬的算法和程序,尤其對目前唯一完全使用GPU技術(shù)開發(fā)的量子化學計算軟件TeraChem做了完備的介紹,包括算法、實現(xiàn)的細節(jié)和程序目前的功能.此外,本文還對GPU在計算化學上將會發(fā)揮的作用做出了極為樂觀的展望.
GPU;CUDA;計算化學;分子動力學;TeraChem
計算化學是基于計算科學的原理來解決化學問題的一個化學分支學科.計算科學和技術(shù)的任何進步,都會迅速應用于計算化學,為計算化學帶來長足的進步.而敏銳的計算化學家們,也時刻關(guān)注著計算科學的每一個新進展,切盼這些進展能對使用計算機從微觀上了解化學和生命現(xiàn)象帶來突破和契機.無疑,自2007年起GPU在計算化學上的應用和導致的一些具有革命意義的進展(且該浪潮的勢頭還正方興未艾)對任何與計算化學有關(guān)的學科的科學工作者,都是應該密切關(guān)注和深入了解的.概要介紹GPU用于科學計算的基本技術(shù)和原理,窮極搜羅至今有關(guān)的成果,條分縷析地歸類分析,為計算化學家和關(guān)注并需要計算化學成果的非計算化學家提供一個引導性的材料,使他們能把握前進的脈搏,而爭取迅速迎頭趕上,并在其中爭得一席之地,是寫這篇綜述的初衷.
在這篇綜述中,第二節(jié)將簡單介紹GPU以及它在數(shù)值計算中應用發(fā)展的幾個階段及加速在GPU上的計算軟件開發(fā)的工具;第三節(jié)將逐一介紹迄今使用GPU改進量子化學計算算法和程序的努力和一個極有前景的完全基于GPU的量子化學計算軟件TeraChem;第四節(jié)介紹使用GPU對MD算法的改進和迄今能在GPU上運行的MD程序.最后簡單總結(jié)并展望基于GPU的計算化學算法和程序的輝煌前景.
價格合理的GPU(graphics processing units,圖形處理器)最先是為能在計算機游戲中生動真切顯示三維圖形而設(shè)計的計算機硬件.為了更好地顯示三維(3D)圖形,GPU需要對每個要顯示的畫面進行大量的浮點運算.GPU最先的設(shè)計者們完全沒有意識到,他們在每一個GPU中安排的數(shù)百個計算單元具有能夠進行數(shù)量可觀的并行運算的特征,使得GPU在今天成了科學計算的寵兒.相比而言,一直在計算機中擔負計算使命的每一個CPU(central processing unit,中央處理器)到今天也最多只能有數(shù)個運算單元(多核).GPU的設(shè)計特性使得巨大數(shù)目的并行事件同時進入GPU的RAM(random-access memory,隨機存取存儲器),即相同操作能在GPU的內(nèi)存不同部分執(zhí)行.這屬于SIMD(single instruction,multiple data,單指令多數(shù)據(jù))類型.典型的GPU包含許多分列成組的計算單元,每組共享能快速進入的內(nèi)存和一個指令單位.這些高度密集的計算單元需要更大的cache和控制單元.GPU在數(shù)值計算中表現(xiàn)出的優(yōu)異性能與已經(jīng)趨于平緩發(fā)展的CPU相比展現(xiàn)出了令人耳目一新的表現(xiàn)(見圖1,數(shù)據(jù)1收集到2008年6月).而之后不到三年的時間(到2011年3月),Nvidia的GeForce GTX 590的GPU的浮點運算峰值和內(nèi)存帶寬就又沖到了2488.3 GFlop·s-1和2×163.87 GB·s-1.2
GPU結(jié)構(gòu)的本身具備進入科學計算的基本需求.最早將GPU用在數(shù)值計算中的企圖可以追溯到20年前.3盡管之后各種努力和嘗試不絕如縷,4,5但很長時間以來一直沒有突破性的進展,原因是缺少科學計算編程的有效工具.當時一般是用特定的匯編語言或圖形取向的應用編程接口(API,application programming interface),如OpenGL或DirectX等編程,工作量之巨大讓人望而生畏.值得一提的工作有最早的Yang等6使用OpenGL作為載體編制出程序,在GPU上進行了分子動力學的模擬計算;之后有Anderson等7在GPU上進行量子蒙特卡羅(QMC)計算的嘗試.
圖1 GPU與CPU的浮點運算峰值和內(nèi)存帶寬的比較Fig.1 Comparisons of peak GFlop and memory bandwidth of GPU and CPUThe data come from NVIDIAwebsite.1GT200=GeForce GTX 280,G92=GeForce 9800 GTX,G80=GeForce 8800 GTX,G71=GeForce 7900 GTX, G70=GeForce 7800 GTX,NV40=GeForce 6800 Ultra,NV35=GeForce FX 5950 Ultra,NV30=GeForce FX 5800
由于GPU硬件快速發(fā)展的促動和科學計算高速化的迫切需求,在GPU上用于科學計算簡易快捷的編程工具應運而生.它們是ATI Stream Technology8和Nvidia的CUDA(compute unified device architecture).9Stream計算機編程范式(paradigm)最先是ATI公司為在多個計算單元或多種計算硬件,如CPU和GPU間容易進行平行計算設(shè)計的,不需特別規(guī)定不同計算單元間的交流和傳遞.之后ATI公司在2006年被AMD公司收并,直到2010年后期,ATI品牌徹底被AMD取代.CUDA是一個類似于C語言的高級、直觀的編程語言,并能被C語句調(diào)用. NVIDIA公司最近還推出了Parallel Nsight,9使CUDA能在微軟公司最為普及的軟件開發(fā)平臺Visual Studio上使用.這惠及了數(shù)百萬的軟件開發(fā)工作者.可以毫不夸張地說,CUDA給GPU在科學計算上應用的飛速發(fā)展插上了翅膀.一時間諸多的與數(shù)值計算有關(guān)的科學家趨之若鶩,這已經(jīng)在改變著科學計算的面貌了.
現(xiàn)有數(shù)值計算的程序編碼已是浩如煙海,無論如何方便的在GPU上的編程工具,如CUDA,仍無法重復所有已有的編碼和算法.若有簡便的工具將現(xiàn)有的數(shù)值計算的程序轉(zhuǎn)換到GPU上,將善莫大焉.在這個方向上的嘗試和進展包括能在GPU上計算的量子化學和固體物理中常用的一些算法中的子程序庫,如進行傅里葉變換的CUFFT10和線性代數(shù)庫CUBLAS11和MAGMA.12
一開始影響GPU在科學計算上普及使用的另一障礙是早期GPU較低的數(shù)值精度,隨著NVIDIA公司的支持32位浮點運算精度的G80系列GPU卡的推出和64位的GeForce 8800 GTX GPU卡的推出,用于科學計算的精度問題得到了徹底的解決.盡管在64位浮點運算精度下,運算速度會有所損失.
量子化學計算的基本方法,從頭算(ab initio)和密度泛函理論(DFT)的最主要計算工作,是求得雙電子排斥積分(也包括DFT中的交換-相關(guān)積分的數(shù)值求取)和生成Fock矩陣以及矩陣的對角化.
Yasuda13第一個認識到可使用GPU來提高計算電子排斥積分(ERI)的速度.他使用GeForce 8800 GTX GPU卡,發(fā)展出了使用GPU計算DFT的KS矩陣的Coulomb積分的算法,但僅適用于s和p基函數(shù).這個算法在Taxol和Valinomycin的小基組和LSDA DFT計算里,使用GPU計算Coulomb勢,僅需CPU常規(guī)計算時間的1/3.盡管使用的GPU僅支持單精度浮點數(shù)運算,但仍然有可以接受的精度. Yasuda的算法是在Gaussian 03程序14上完成的.
GPU對積分的計算只能包括s和p基函數(shù)是遠遠不夠的.將GPU上的積分計算擴展到d及更高角量子數(shù)的基函數(shù)的困難在于目前最大的單個GPU也無法容納這些高角量子數(shù)的計算殼層.如對于一個(ff|ff)雙電子積分的殼層,在中間計算時共需要5376個浮點數(shù),它們要做多次的乘法運算,最終需約104個浮點數(shù).對于雙精度,這相應于123008 bytes,遠遠超出了目前最大單片GPU的容量.有人在等待著很快有更大的GPU上市,但Asadchev等15另辟蹊徑,近來提出了一個使用CUDA能計算到g型基函數(shù)的算法.他們將計算的中間結(jié)果存放在裝置的內(nèi)存,而不是GPU中,并將這些殼層塊的積分重新排序,滿足這些積分的頻繁調(diào)用.這樣做帶來的問題是為了適應所有積分類型的有效排列的方式,原來在CPU下使用的大量程序需要重寫.他們采用了由一個個模塊自動生成的方式來解決這個問題.使用GTX275和Tesla T10 GPU卡,他們與GAMESS16比較了雙電子排斥積分的運算速度. CPU能達到1 GFlop·s-1(每秒鐘進行1 giga浮點運算),而GPU在單精度和雙精度運算時能分別達到50和25 GFlop·s-1.
對DFTGGA中的XC(交換-相關(guān))勢的數(shù)值計算,仍是Yasuda17首先提出了在GPU上計算的算法.他采用的策略是在僅將XC較費時的步驟交由GPU,其余仍由CPU處理.使用NVIDIA的GeForce 8800 GTX卡,與2.8 GHz的Intel Pentium 4相比,該步計算的加速能達到40倍.
Aspuru-Guzik等18,19將開發(fā)基于GPU的量子化學算法的注意力放在了包括相關(guān)能校正的RI-MP2 (RI:resolution-of-the identity)方法上.除了對于含過渡金屬的體系,MP2計算的平衡幾何構(gòu)型優(yōu)于廣為使用的DFT.MP2計算中最為耗時的是原子軌道基的積分向分子軌道基的變換.這一般是體系基函數(shù)數(shù)目N的5次方(O(N5)).引入RI積分近似可減少計算時間而又沒有明顯的精度損失.Aspuru-Guzik等分析RI-MP2計算各個步驟對計算機時間的需求,認識到RI-MP2計算中主要的時間消耗是在從半變換的三指標積分變換為分子軌道積分時的矩陣相乘.他們使用CUBLAS16的函數(shù)在GPU上執(zhí)行矩陣相乘的運算(將CUBLAS的函數(shù)引入量子化學計算這還是首次).據(jù)他們自己的測試,在單精度下,計算速度能達到原來使用CPU的4.3倍.18使用NVIDIA Tesla C1060 GPU和4 GB的內(nèi)存,他們測試了有168個原子的分子Valinomycin,在單精度、混合精度和雙精度下分別能比CPU提速13.8、10.0和7.8倍,在雙精度下,誤差接近于零.他們的計算是植根于另一廣為使用的商品化量子化學計算程序Q-Chem.20
在此還應提及一個不被化學家熟悉的、使用Daubechies波,而不是Gaussian型的基函數(shù)的程序包BigDFT.21BigDFT使用CUDA在GPU上編程,達到了極高的并行效率,使用GPU的版本能比CPU的提速達6倍.
量子化學計算程序Firefly22的前身是著名的量子化學程序GAMESS16的變種PC GAMESS.近來Firefly在它的MP4(SDTQ)計算中使用了GPU,對于Cl-(HF)5分子使用6-311+G(2d,2p)基組進行單點計算,在使用四個GPU(2 GTX295+2 C1060)時,計算速度提高了近10倍.23
通用的量子化學程序包Q-Chem20的一個突出特點是具有運算速度非??斓腄FT計算功能.近來Q-Chem的開發(fā)者們Gan等24也將GPU用于進一步提高DFT計算速度.結(jié)合已有的可用于DFT一些步驟的GPU算法和Q-Chem在DFT計算上的改進,提出一個方案(task based programming,object-oriented design,OPENMP for multithreading,MPI for cross node communications,即基于作業(yè)編程、目標取向設(shè)計、用OPENMP作多線程和用MPI處理節(jié)點間的交通).作者自己的測試計算對Taxol分子(C47H51NO14),使用一片C1060 GPU,計算速度提高了24倍,若使用4片GPU,速度提高達到了102倍.
對將GPU使用到量子化學計算極為關(guān)注和付出努力的還有美國Iowa州立大學的Gordon教授. Gordon教授的研究小組是GAMESS程序16的維護者,并不斷開發(fā)和發(fā)展.最先對GPU計算精度的不足曾影響了Gordon教授對之的投入,隨著雙精度的GPU卡的出現(xiàn),Gordon教授和GAMESS研發(fā)小組變成了積極的參與者.Gordon教授和他的研發(fā)小組正在重寫GAMESS中的程序,使之能在GPU上高效使用,相信很快就有這樣的GAMESS版本推出.25
以上提到的近幾年提出的使用GPU提高量子化學計算速度的算法中,除了BigDFT,21其余都是利用現(xiàn)有軟件包,改善其中部分算法,在某一特定計算步驟,使計算速度得到提高.而剛于2010年推出的TeraChem程序則完全使用CUDA概念,重寫了GPU上的量化計算的基本程序.26TeraChem是由美國Stanford大學的Ufimtsev和Martinez編寫完成的,由美國PetaChem公司于2010年推出商業(yè)化版本.27由于他們在GPU的量子化學程序的先驅(qū)性的工作和突出貢獻,Martinez教授被Gordon稱為美國量子化學家的GPU的領(lǐng)頭人.25
Ufimtsev和Martinez28提出的計算雙電子排斥積分基于McMurchie-Davidson框架,檢驗了三種分配GPU/CPU工作和處理任務分塊的模式(1B1CI、1T1CI和1T1PI),先進行由H原子組成的體系的(ss|ss)型積分的運算,然后推廣到包括由p函數(shù)組成的基的排斥積分.他們發(fā)現(xiàn)若從Gaussian基的雙電子排斥積分直接進入Fock矩陣,而不是如傳統(tǒng)的將Gaussian軌道基的排斥積分收縮到Slater軌道(STO),在GPU下能有極高的效率.對于由64個H組成的體系,使用6-311G和三種模式計算排斥積分,分別耗費7.086、0.675和0.428 s,加上用CPU的預計算的0.009 s和GPU-CPU轉(zhuǎn)換的0.883 s,最快的1T1PI模式共需1.320 s.而使用GAMESS在單CPU下則需170.8 s.Ufimtsev和Martinez29隨后報道了完全使用GPU進行Hartree-Fock計算的方法.基于以前提出的1T1PI處理雙電子排斥積分的方法28,他們提出了Hartree-Fock的J矩陣和K矩陣在GPU下依據(jù)大小分塊處理的算法,還研究了多GPU的并行化處理:每個GPU處理自己的J矩陣子塊,計算K矩陣時每個GPU處理K矩陣的不同的行.使用三個GPU卡(GTX280)做檢驗,能達到一個GPU卡的2.0-2.8的效率.他們測試了從24個原子到453個原子組成的分子的Hartree-Fock單點能量計算.使用3-21G和6-31G基組以及一個GPU卡(GeForce 280 GTX),在雙精度下,與GAMESS相比,速度能提高40到600多倍,而總能量的差別可忽略不計.
Ufimtsev和Martinez系列文章的第三篇26是關(guān)于能量解析梯度計算的GPU處理,包括Coulomb和交換部分計算的處理.加上多GPU卡的并行計算的處理,該方法可用于Hartree-Fock能量和DFT能量的解析梯度的計算.使用GPU程序和單個GPU卡(GeForce 295 GTX),與在4核2.66 GHz CPU上運行的GAMESS程序相比,從小到大的分子,GPU仍然可有數(shù)倍到超過百倍的速度提高.
這樣,他們提出的在GPU上運行的量子化學計算的算法,涵蓋了基本的從頭算/DFT的全部三個耗時步驟(雙電子積分、Hartree-Fock/Kohn-Shan矩陣處理和能量的解析梯度).基于此,Martinez推出了他們的TeraChem程序.262010年春推出的為1.05版,能進行閉殼層的Hartree-Fock和DFT的單點能量計算,基于解析梯度的幾何構(gòu)型極小化和過渡態(tài)優(yōu)化的計算,以及基于以上計算(能量和解析梯度)的動力學模擬(MD)和簡單的QM/MM計算.使用TeraChem,很容易檢驗和實現(xiàn)上述他們的三篇論文的結(jié)果.最近(2011年4月)推出的v1.45版已能進行包括d軌道和含過渡金屬原子體系的HF和DFT計算,并能達到與sp軌道差不多的速度提高.具體算法的改進和實現(xiàn)還未見有詳細報道.
TeraChem更為不凡,需引起密切關(guān)注的原因是這是第一個完全基于GPU,從零開始編制的量子化學計算程序.本文引述的在Ufimtsev和Martinez的工作之前或之后的關(guān)于GPU的量子化學計算的算法的文章,雖都基于某一特定量子化學程序包實現(xiàn),但至今還都沒有能進入公開發(fā)行的程序包中,有些或許只能永遠停留在紙面上.而TeraChem一進入人們的視野,就以完備的商品軟件的姿態(tài)出現(xiàn).據(jù)PetaChem網(wǎng)站披露,TeraChem在2010年春天一推出,短短半年就有超過4000份的試用版本發(fā)出,展現(xiàn)出蓬勃的生命力.
量子蒙特卡羅(QMC)是求解與時間無關(guān)的薛定諤方程的精確方法之一,30并且QMC很容易并行化.Anderson等7在2007年就提出了在GPU上加速Q(mào)MC計算的方案.使用CUDA核優(yōu)化緩存使用,在GPU上進行需求很大的并行計算.對于8-32個原子的體系,比CPU上的執(zhí)行,速度能有5倍的提高. Meredith等31在單精度的GPU上用量子簇近似,使用規(guī)整晶格上的二維Hubbard近似研究超導在臨界溫度下的混亂效應,在GPU上使用CUBLAS庫執(zhí)行矩陣乘法,得到與CPU上的雙精度可比的結(jié)果.
MD計算對生物分子的模擬自McCammon等對酶的計算為肇基,32當時的計算水平是500個原子,模擬的時間10 ps.之后飛速發(fā)展,到了今天,模擬的生物體系包括數(shù)百萬個原子,模擬時間能持續(xù)到微秒都已成常規(guī).而科學家對生命現(xiàn)象的深入了解仍在向計算化學家不斷提出更高的要求.如對蛋白質(zhì)折疊的MD模擬研究,折疊行為約需毫秒來完成,如以納秒為步長做模擬,且每步計算花費一天計,這樣的模擬就需執(zhí)行一百萬天,即差不多3000年.這確實是對計算化學家提出了嚴峻的挑戰(zhàn).雖然有人花費巨資搭建豪華計算機系統(tǒng),如日本的總耗資超過一千五百萬美元的MDGRAPE-3系統(tǒng),33,34這是使用專門設(shè)計的硬件加速搜尋表以加速直接空間非鍵的計算.但這樣的耗費巨資并為某一特定問題專門設(shè)計的硬件完全無法做廣泛的推廣,且不說耗資驚人了.而GPU適時的出現(xiàn)為MD對生物的模擬計算帶來了曙光.
由于在GPU下編程的困難,早期試圖在GPU上提高MD計算速度的努力有許多是走入迷途的,報導的結(jié)果也是使人信疑參半.至今被普遍接受的GPU上MD算法的成功改進仍屬本文開始提及的Yang等6的工作,尤其值得贊許的是該工作是在CUDA推出之前,直接使用OpenGL編程,在GPU上實現(xiàn)需驚人的工作量,并達到了10倍以上速度的提高.雖然他們的算法相當簡捷,在模擬過程中僅包含Lennard-Jones相互作用和建立一個鄰接目錄,而缺乏對生物體系模擬的許多計算步驟,但這個先驅(qū)性的工作仍有力地證實了GPU能在MD模擬上發(fā)揮重要作用.
早期使用GPU改進MD運算速度的嘗試大都局限于使用簡化的模型,或者只針對于特定的問題做處理,而不是著眼于對真正MD的全面改進.Liu等35是第一個使用CUDA來對MD的計算進行改進的.他們僅在GPU上計算簡化的范德華勢,而避免了對凝聚態(tài)體系MD模擬的復雜的乘積運算.Stone等36在他們的文章里仔細討論了一系列用于分子模擬的算法,提出了第一個直接空間范德華勢和靜電勢在GPU上合并處理的方法,但該方法并不包括任何實際的MD計算,而僅僅是在被模擬體系臨近庫侖勢的時間平均的計算中使用GPU,并引入到MD程序包NAMD37中,誕生了NAMD的GPU加速的新版.
之后還有一些使用GPU對MD算法的局部改進,38,39直到Anderson等40將共價項的貢獻與使用GPU計算的范德瓦爾和簡諧鍵勢項加入到他們的HOOMD程序包41中,用于研究非離子液體.可以認為,GPU版的HOOMD朝向真正完整的GPU的MD程序前進了一大步.
真正能稱之為使用GPU的MD程序產(chǎn)品是到2009/2010年才出現(xiàn)的.至今只有三個MD程序包可認為基本滿足,它們分別是Harvey等42的ACEMD、Friedrichs等43的OpenMM和Philips等37的NAMD.
ACEMD可謂是第一個支持全部GPU加速功能的處理凝聚相的MD程序包,可處理周期性邊界和短程、長程的靜電作用.使用GPU加速后,有很明顯的速度提高.OpenMM是一個程序庫,起先僅是對于小的和中等大小的體系使用非鍵項的間接求和方法來計算溶劑的廣義Born模型,之后Eastman和Pande44對之改進,顯性計算進行溶劑的MD模擬.最新推出(2011年3月11日)的OpenMM版是v3.0.著名MD程序包GROMACS45新近的GPU版將OpenMM納入其中,可在GPU上大大提高MD計算的速度.NAMD的v2.7b2版也添加了GPU加速的明確進行溶劑化計算的功能,在對一個由25095個原子組成的生物體系的模擬計算,速度提高到了8.6倍.NAMD最新的版本是v2.8b1,仍是以CPU計算為主,在多節(jié)點間進行MD計算,而將之置于GPU的環(huán)境,使用單片或多片GPU來提高CPU的單個節(jié)點內(nèi)的計算效率以達到提高MD計算速度的目的.
AMBER程序可謂是MD計算機程序家族中最為著名的一員,46由一些使用AMBER力場47進行與MD有關(guān)計算的程序包組成.最近AMBER程序家族的PMEMD程序在顯性溶劑PME(particle mesh Ewald)和廣義Born模型(GB,generalized Born)的處理中使用Nvidia的GPU,并因之推出了AMBER11版,48但使用GPU后的速度提高和計算精度還都有待于檢驗.
最近推出的另一MD程序HOOMD-BLUE 0.9.241也聲稱支持GPU的運算.算法的作者聲稱他們的整個MD計算都在GPU上進行,單片GPU運算的速度相當于30個微處理器.40
盡管有諸多的對MD在GPU上應用的算法的創(chuàng)立和改進,和相應的能在GPU上運行的MD程序的推出,其中某些還聲稱是完全使用了在GPU上基于CUDA開發(fā)的新算法,但相對于GPU的量子化學計算程序能對速度有50-100倍的提高,GPU上的MD程序的速度提高還不盡如人意(最高速度提高的倍數(shù)大約為10,但據(jù)我們驗證,除特殊情況,基本無法達到這個速率),這是由MD計算的本質(zhì)決定的.盡管今天的CPU,甚至GPU的計算速度已足夠快,但硬件間數(shù)據(jù)傳遞的速度仍是瓶頸,而MD計算卻是非常依賴和需要這些傳輸.GPU運算速度的提高無助于這些傳輸,甚至加重了節(jié)點間數(shù)據(jù)傳輸?shù)膲毫?這就是為什么至今GPU上的MD程序僅限于單個GPU(OpenMM和AMBER)或單個節(jié)點內(nèi)的多個GPU(ACEMD).僅NAMD試圖在多節(jié)點上應用GPU改進MD的計算速度,試圖模擬非常大的體系,而不是優(yōu)化單節(jié)點內(nèi)的運行,這需要數(shù)量眾多的GPU卡,而僅有差強人意的速度提高,且“性價比”還相當?shù)?
近年由CUDA帶動的GPU在科學計算上的蓬勃應用和發(fā)展,不可能不進入計算化學領(lǐng)域.自2010年以來,接連有GPU在計算化學(包括量子化學計算和MD模擬)的綜述文章發(fā)表,如G?tz等49題為“Quantum Chemistry on GPU”的綜述,和Xu等50對GPU在生物分子MD模擬的進展的綜述(本文的一些材料間接引自這兩篇綜述),最近美國Chemical&Engineering News上的一篇題為“GPU革命(The GPU Revolution)”的短文也對GPU將對計算化學的貢獻和前景給出了極為樂觀的評價和期許.25
縱觀由三年來多方努力和如雨后春筍般的在GPU上的量子化學計算和MD模擬算法和程序的呈現(xiàn),僅有Ufimtsev和Martinez辛勤創(chuàng)立的Tera-Chem軟件是完全從零的基礎(chǔ)上、完全為GPU計算設(shè)計和實現(xiàn),卻也達到了計算速度的可喜提高,而其它量子化學程序和差不多所有的MD程序都還有各種各樣的缺憾和不足.TeraChem或許會成為量子化學計算的一個新里程碑.如同四十年前Gaussian 70和九十年代初量子化學軟件的商品化大潮,呈現(xiàn)以二十年為周期的飛躍.
同時,Nvidia會不斷推出容量更大、速度更快的GPU,而價格也會愈來愈低,CUDA也會不斷擴充新功能,并愈來愈完善,使得在GPU上編制科學計算程序成為常規(guī).而AMD的ATI Stream Technology和相應的硬件或許在很近的將來會成為Nvidia的GPU卡和CUDA的有力競爭者,而且GPU在科學計算上的應用也將出現(xiàn)百花齊放的繁盛局面.這些都使我們相信,我們處在一個計算化學新時代來臨的前夜.
(1)NVIDIACUDA.Compute Unified DeviceArchitecture Programming Guide Version 3.0.http://www.nvidia.com/object/ cuda_develop.html(accessed March 6,2010).
(2) Comparison of Nvidia Graphics Processing Units.http://en. wikipedia.org/wiki/Comparison_of_Nvidia_graphics_ processing_units(accessed March 6,2010).
(3) Lengyel,J.;Reichert,M.;Donald,B.R.;Greenberg,D.P. Comput.Graph.1990,24,327.
(4) Bohn,C.A.Joint Conference on Intelligent Systems 1999(JCIS? 98)1998,2,64.
(5) Hoff,K.E.,II.;Culver,T.;Keyser,J.;Ming,L.;Manocha,D. Fast Computation of Generalized Voronoi Diagrams Using Graphics hardware.In Proceeding of SIGGRAPH 99,Danvers, August 8-13,1999;Assison-Wssley Publishing Company, 1999,277-286.
(6)Yang,J.;Wang,Y.;Chen,Y.J.Comput.Phys.2007,221,799.
(7)Anderson,A.G.;Goddard,W.A.,III.;Schroder,P.Comput. Phys.Commun.2007,177,265.
(8)ATI Stream Technology,http://www.amd.com/US/PRODUCTS/ TECHNOLOGIES/STREAM-TECHNOLOGY/Pages/ stream-technology.aspx(AccessedApril 13,2011).
(9) CUDA:Santa Clara,CA.http://www.nvidia.com/object/ cuda_home_new.html(accessedApril 13,2011).
(10) NVIDIA:Santa Clara,CA,CUFFT Library.http://developer. download.nvidia.com/compute/cuda/2_3/toolkit/docs/ CUFFT_Library_2.3.pdf(accessed March 6,2010).
(11) NVIDIA:Santa Clara,CA,CUBLAS Library 2.0.http:// developer.download.nvidia.com/compute/cuda/2_0/docs/ CUBLAS_Library_2.0.pdf(accessed March 6,2010).
(12) Innovative Computing Laboratory,University of Tennessee, MatrixAlgebra on GPU and MulticoreArchitectures.http://icl. cs.utk.edu/magma(accessed March 6,2010).
(13)Yasuda,K.J.Comput.Chem.2008,29,334.
(14) Frisch,M.J.;Trucks,G.W.;Schlegel,H.B.;et al.Gaussian 03, Revision B.01;Gaussian Inc.:Pittsburgh,PA,2003.
(15)Asadchev,A.;Allada,V.;Felder,J.;Bode,B.M.;Gordon,M.S.; Windus,T.L.J.Chem.Theory Comput.2010,6(3),696.
(16) (a)Schmidt,M.W.;Baldridge,K.K.;Boatz,J.A.;Elbert,S.T.; Gordon,M.S.;Jensen,J.H.;Koseki,S.;Matsunaga,N.; Nguyen,K.A.;Su,S.;Windus,T.L.;Dupuis,M.;Montgomery, J.A.J.Comput.Chem.1993,14,1347. (b)Gordon,M.S.;Schmidt,M.W.Advances in Electronic Structure Theory:In Theory and Applications of Computational Chemistry:the First Forty Years;Dykstra,C.E.,Frenking,G., Kim,K.S.,Scuseria,G.E.,Eds.;Elsevier:Amsterdam,2005; p 1167.
(17)Yasuda,K.J.Chem.Theory Comput.2008,4,1230.
(18)Kermes,S.;Olivares-Amaya,R.;Vogt,L.;Shao,Y.; Amador-Bedolla,C.;Aspuru-Guzik,A.J.Phys.Chem.A 2008, 112,2049.
(19) Olivares-Amaya,R.;Watson,M.A.;Edgar,R.G.;Vogt,L.; Shao,Y.;Aspuru-Guzik,A.J.Chem.Theory Comput.2010,6, 135.
(20) Shao,Y.H.;Fusti-Molnar,L.;Jung,Y.S.et al.Phys.Chem. Chem.Phys.2006,8,3172.
(21) Genovese,L.;Ospici,M.;Deutsch,T.;Mehaut,J.F.;Neelov,A.; Goedecker,S.J.Chem.Phys.2009,131,34103.
(22) Granovsky,A.A.Firefly version 7.1.G.http://classic.chem.msu. su/gran/firefly/index.html(accessedApril 4,2011).
(23) http://classic.chem.msu.su/gran/gamess/cuding.html(accessed April 4,2011).
(24) Gan,Z.;Shao,Y.;Kong,J.;Olivares-Amaya,R.;Aspuru-Guzik, A.http://www.nvidia.com/content/GTC/documents/ 1050_GTC09.pdf(accessedApril 4,2011).
(25) Wolf,L.Chemical and Engineering News 2010,88,27.
(26) Ufimtsev,I.S.;Martinez,T.J.J.Chem.Theory Comput.2009, 5,2619.
(27)TeraChem.http://www.petachem.com(accessed March 6,2010).
(28) Ufimtsev,I.S.;Martinez,T.J.J.Chem.Theory Comput.2008, 4,222.
(29) Ufimtsev,I.S.;Martinez,T.J.J.Chem.Theory Comput.2009, 5,1004.
(30) Ceperley,D.;Alder,B.Quantum Monte Carlo.Science 1986, 231,555.
(31) Meredith,J.S.;Alvarez,G.;Maier,T.A.;Schulthess,T.C.; Vette,J.S.Parallel Comput.2009,35,151.
(32)McCammon,J.A.;Gelin,B.R.;Karplus,M.Nature 1977,267, 585
(33) Susukita,R.;Ebisuzaki,T.;Elmegreen,B.G.;Furusawa,H.; Kato,K.;Kawai,A.;Kobayashi,Y.;Koishi,T.;McNiven,G. D.;Narumi,T.;Yasuoka,K.Comput.Phys.Commun.2003, 155,115.
(34) Narumi,T.;Ohno,Y.;Noriyuk,F.;Okimoto,N.;Suenaga,A.; Yanai,R.;Taiji,M.In From Computational Biophysics to Systems Biology:MDGRAPE-3;Meinke,J.,Zimmermann,O., Mohanty,S.,Hansmann,U.H.E.Eds.;J.von Neumann Institute for Computing:Jülich,2006;p 29.
(35) Liu,W.;Schmidt,B.;Voss,G.;Müller-Wittig,W.In High Performance Computing-HiPC 2007:Lecture Notes in Computer Science;Aluru,S.,Parashar,M.,Badrinath,R., Prasanna,V.K.Eds.;Springer,Berlin/Heidelberg,2007; Vol.4873,p 185.
(36) Stone,J.E.;Phillips,J.C.;Freddolino,P.L.;Hardy,D.J.; Trabuco,L.G.;Schulten,K.J.Comput.Chem.2007,28,2618.
(37) Phillips,J.C.;Stone,J.E.;Schulten,K.Adapting a Message-Driven ParallelApplication to GPUAccelerated Clusters.In SC?08:Proceedings of the 2008 ACM/IEEE conference on Super Computing,1-9,IEEE Press,Piscataway, NJ,USA,2008.
(38) van Meel,J.A.;Arnold,A.;Frenkel,D.;Portegies Zwart,S.F.; Belleman,R.G.Mol.Simulat.2008,34,259.
(39) Rapaport,D.C.Comput.Phys.Commun.2011,182,926.
(40)Anderson,J.A.;Lorenz,C.D.;Travesset,A.J.Comput.Phys. 2008,227,5342.
(41)HOOMD:General Purpose Molecular Dynamics on Multiple GPUs Implemented Using CUDAJoshuaA.Anderson Path to Petascale:Adapting GEO/CHEM/ASTROApplications for Accelerators andAccelerator Clusters,April 2009.http://www. ncsa.uiuc.edu/Conferences/accelerators/agenda.html(accessed April 4,2011).
(42) Harvey,M.J.;Giupponi,G.;De Fabritiis,G.J.Chem.Theory Comput.2009,5,1632.
(43) Friedrichs,M.S.;Eastman,P.;Vaidyanathan,V.;Houston,M.; Le Grand,S.;Beberg,A.L.;Ensign,D.L.;Bruns,C.M.; Pande,V.S.J.Comput.Chem.2009,30,864.
(44) Eastman,P.;Pande,V.S.J.Comput.Chem.2010,31,1268.
(45)GROMACS http://www.gromacs.org(accessedApril 4,2011).
(46) Pearlman,D.A.;Case,D.A.;Caldwell,J.W.;Ross,W.S.; Cheatham,T.E.,III.;DeBolt,S.,Ferguson,D.;Seibel,G.; Kollman,P.Comp.Phys.Commun.2005,91,1.
(47) Cornell,W.D.;Cieplak,P.;Bayly,C.I.;Gould,I.R.;Merz,K. M.,Jr.;Ferguson,D.M.;Spellmeyer,D.C.;Fox,T.;Caldwell, J.W.;Kollman,P.A.J.Am.Chem.Soc.1995,117,5179.
(48) Case,D.A.;Darden,T.A.;Cheatham,T.E.,III.;Simmerling,C. L.;Wang,J.;Duke,R.E.;Luo,R.;Walker,R.C.;Zhang,W.; Merz,K.M.;Roberts,B.;Wang,B.;Hayik,S.;Roitberg,A.; Seabra,G.;Kolossváry,I.;Wong,K.F.;Paesani,F.;Vanicek,J.; Liu,J.;Wu,X.;Brozell,S.R.;Steinbrecher,T.;Gohlke,H.;Cai, Q.;Ye,X.;Wang,J.;Hsieh,M.J.;Cui,G.;Roe,D.R.; Mathews,D.H.;Seetin,M.G.;Sagui,C.;Babin,V.;Luchko, T.;Gusarov,S.;Kovalenko,A.;Kollman,P.A.AMBER 11; University of California:San Francisco.
(49) G?tz,A.W.;W?lfle,T.;Walker,R.C.Annual Reports in Computational Chemistry;Elsevier:Amsterdam,2010;Vol.6, p 21.
(50) Xu,D.;Williamson,M.J.;Walker,R.C.Annual Reports in Computational Chemistry;Elsevier:Amsterdam,2010;Vol.6, p 1
April 15,2011;Revised:June 9,2011;Published on Web:June 24,2011.
GPU Triggered Revolution in Computational Chemistry
BAO Jian-Zhang1FENG Xin-Tian2YU Jian-Guo2,*
(1Department of Systems Science,School of Management,Beijing Normal University,Beijing 100875,P.R.China;2College of Chemistry,Beijing Normal University,Beijing 100875,P.R.China)
Over the last 3 years,the use of graphics processing units(GPU)in general purpose computing has been increasing because of the development of GPU hardware and programming tools such as CUDA(compute unified device architecture).Here,we summarize the progress in algorithms and the corresponding software with regard to computational chemistry using GPU including quantum chemistry and molecular dynamics simulations in detail.We introduce and explore the newly developed TeraChem program,which is unique quantum chemical software and we discuss the algorithms, implementations,and functionality of the program.Finally,we give an optimistic outlook for the use of GPU in computational chemistry.
GPU;CUDA;Computational chemistry;Molecular dynamics;TeraChem
?Corresponding author.Email:jianguo_yu@bnu.edu.cn;Tel:+86-10-58802051.
The project was supported by the National Natural Science Foundation of China(20733002,20873008,21073014).
國家自然科學基金(20733002,20873008,21073014)資助項目
O641