桌面上的計算化學(xué)
計算化學(xué) (Computational Chemistry) 在最近十年中可以說是發(fā)展的最快的化學(xué)研究領(lǐng)域之一。究竟什么是計算化學(xué)呢?由于其目前在各種化學(xué)研究中廣泛的應(yīng)用,我們并不容易給它一個很明確的定義。簡單的來說,計算化學(xué)是根據(jù)基本的物理化學(xué)理論(通常是量子化學(xué))以大量的數(shù)值運算方式來探討化學(xué)系統(tǒng)的性質(zhì)。最常見到的例子是以量子化學(xué)計算來解釋實驗上各種化學(xué)現(xiàn)象,幫助化學(xué)家以較具體的概念來了解、分析觀察到的結(jié)果。除此之外,對于未知或不易觀測的化學(xué)系統(tǒng),計算化學(xué)還常扮演著預(yù)測的角色,提供進一步研究的方向。另外,計算化學(xué)也常被用來驗證、測試、修正、或發(fā)展較高層次的化學(xué)理論。同時,更為準(zhǔn)確或有效率計算方法的開發(fā)創(chuàng)新也是計算化學(xué)領(lǐng)域中非常重要的一部分。
計算化學(xué)其實是一門有著悠久歷史的研究領(lǐng)域,自一九二零年代量子力學(xué)理論建立以來,許多科學(xué)家曾嘗試以各種數(shù)值計算方法來深入了解原子與分子之各種化學(xué)性質(zhì)。然而在數(shù)值計算機廣泛使用之前,此類的計算由于其復(fù)雜性而只能應(yīng)用在簡單的系統(tǒng)與高度簡化的理論模型之中。在十多年前筆者求學(xué)之時,計算化學(xué)仍是一門須具有高度量子力學(xué)與數(shù)值分析素養(yǎng)的人從事的研究,而且由于其龐大的計算量,絕大部分的計算工作需依靠昂貴的大型計算機主機或高階工作站來進行。
計算化學(xué)的普及
然而,此情況在九十年代中期開始有了重大的改變。由于使用在個人計算機上的處理器(Pentium, Pentium Pro)以及外圍設(shè)備(如高速內(nèi)存及硬盤)的大幅進步,個人計算機的運算速度已經(jīng)直逼一些傳統(tǒng)的工作站;再加上個人計算機系統(tǒng)無需負擔(dān)傳統(tǒng)多人多任務(wù)系統(tǒng)中復(fù)雜的作業(yè),使得個人計算機逐漸開始成為從事量子化學(xué)計算的一種經(jīng)濟而有效率的工具。然而,早期為個人計算機操作系統(tǒng)所發(fā)展的計算化學(xué)軟件非常有限,因為數(shù)十年來大部分的科學(xué)應(yīng)用軟件都是在Unix操作系統(tǒng)下所開發(fā)出來的,但當(dāng)時在個人計算機上的Unix操作系統(tǒng)都非常昂貴且不易安裝與使用。就在此時,逐漸成熟的Linux操作系統(tǒng)開始被廣泛的使用在個人計算機之上。Linux 是由一位芬蘭人Torvald Linus所開發(fā)出來的在個人計算機上執(zhí)行的Unix操作系統(tǒng)。在經(jīng)過數(shù)年全世界無數(shù)人的協(xié)助發(fā)展下 ,在九十年代末期Linux已成為一功能齊全的網(wǎng)絡(luò)多人多任務(wù)操作系統(tǒng)。Linux最吸引人 的地方在其穩(wěn)定性且不需要昂貴的計算機配備,而且更重要的是它基本上是免費的。比 如說,大家對目前普遍使用的操作系統(tǒng)當(dāng)機的情況并不陌生,但Linux工作站通常可以正常運作幾個月而不出現(xiàn)任何問題;此外,一般個人計算機上使用的操作系統(tǒng)、網(wǎng)絡(luò)、網(wǎng)頁、郵件、檔案、X-Window等服務(wù)器軟件動輒需要上萬元,但這些在Linux操作系統(tǒng)中幾乎都可免費取得。因此,搭配Linux操作系統(tǒng)的個人計算機現(xiàn)在已成為量子化學(xué)計算的一種很好的選擇。當(dāng)然,如本刊中另一篇文章所介紹的,近幾年來許多可在Windows操作系 統(tǒng)下運作的計算化學(xué)軟件也陸續(xù)出現(xiàn),功能也不斷的增強,使得個人計算機成為當(dāng)今計 算化學(xué)領(lǐng)域中非常重要的工具。
計算化學(xué)普及的另外一個原因是圖形接口的發(fā)展與使用。傳統(tǒng)上計算工作的輸入與輸出都是以文字方式來表示,不但輸入耗時易錯,許多計算結(jié)果的解讀也非常不易。近年來圖形接口的使用大大的簡化了這些過程,使得稍具計算化學(xué)知識的人都能夠輕易的設(shè)計復(fù)雜的理論計算,并且能夠以簡單直接的視覺效果來分析計算所得的結(jié)果?,F(xiàn)在的研究生可能很難想象以往我們成天坐在文字終端機前一個一個字的將大分子的Z-matrix敲入 的生活。
計算化學(xué)未來的發(fā)展
在硬件上,由于計算機科技進步的速度非???,因此不易預(yù)測長遠的未來計算化學(xué)的發(fā)展。比如說,十八年前,當(dāng)Apple II 帶起個人計算機旋風(fēng)時,所用的處理器僅是頻率1MHz 的8位Motorola 6502,內(nèi)存只有48-64 kB,資料常只能存在錄音帶中,不到100 kB的軟盤是一種奢侈品。十五年前,第一代的IBM PC XT是使用4.77MHz的Intel 8088處理器,內(nèi)存"高達"640 kB。當(dāng)時恐怕沒有人能想象如今最新一代的個人計算機可配有超過1GHz 的Pentium III、Pentium 4、或Athlon等32位處理器,內(nèi)存可達1GB以上,而超過30GB的高速硬盤也已非常普遍。最近,Intel又推出了64位的Itanium處理器,而且支持此處理器的Red Hat Linux 7.1也已發(fā)行,藉由更有效率的計算與數(shù)據(jù)處理能力與對海量存儲器與檔案系統(tǒng)的支持,這將可大幅提升PC上的科學(xué)運算能力。十五年來個人計算機在功能上有超過1000倍的提升!而未來十五年的發(fā)展又是如何呢?依照專家的估計,由于物理定律的限制,類似現(xiàn)有的處理器架構(gòu)在功能上大概只有十倍的成長空間。短期來 看,平行處理的技術(shù)可大幅提升運算的效率;長遠而言,或許光學(xué)計算機甚至于量子計算機將會提供現(xiàn)今無法想象的計算速率。
然而我個人認為計算化學(xué)要有真正突破性的發(fā)展,除了硬件的進步外,理論上研發(fā)似乎更為重要。目前對于大分子的計算限于理論的復(fù)雜性只能使用分子力學(xué)或半經(jīng)驗法;而且就算計算機功能上能有1000倍的提升,距離準(zhǔn)確的量子仿真仍有一段距離。目前的理論方法,僅能對大約小于十個原子的系統(tǒng)達到化學(xué)誤差(1-2 kcal/mol)內(nèi)的準(zhǔn)確度;而且這些準(zhǔn)確的計算方法的計算量大約是跟系統(tǒng)大小的七次方成正比。因此,計算機計算功能的提升通常并無法將可準(zhǔn)確仿真的系統(tǒng)加大多少。一般認為要能以計算化學(xué)準(zhǔn)確仿真各種生物及材料系統(tǒng),理論化學(xué)家需要研發(fā)出計算量僅與系統(tǒng)大小的平方甚至一次方成正比的準(zhǔn)確量子化學(xué)方法。
以Linux操作系統(tǒng)從事計算化學(xué)的實例筆者最近二年來將研究用的計算平臺逐漸由高速計算機中心及高價位的工作站轉(zhuǎn)移到使用Red Hat Linux操作系統(tǒng)的PC上,我們建議使用6.1以上的版本以及2.2.16以上之kernel。
本實驗室最常用的計算軟件為Gaussian 98以及Gaussrate 8.2。以下就以Gaussian98在PC上的安裝與使用為各位做一介紹。在過去Gaussian 94的版本中有提供在Linux上以f2c將Gaussian原始碼編譯的shell script,但在Gaussian 98的版本中我們則需要使用由Portland Group Inc. (http://www.pgroup.com/) 所發(fā)行的FORTRAN 編譯器 pgf7 7。此軟件可由網(wǎng)絡(luò)上直接下載購買,十分方便。 若您的單位已有Gaussian 98 source code的site license,則您可直接由負責(zé)人處取得,否則需先與Gaussian公司接洽,簽署一些License Agreement,手續(xù)較為麻煩。當(dāng)這二個軟件都安裝完成后,理論上就可進行Gaussi-an 98的編譯工作;但Gaussian公司建議采用最佳化過之BLAS 鏈接庫 (目前建 議之版本為ppro1.2f),這可經(jīng)由網(wǎng)站 (http://www.cs.utk.edu/~ghenry/distrib/) 登記下載;并且由Gaussian公司 (http://www.gaussian.com/g98_req.htm) 下載blas-f2 c.a 鏈接庫一起擺入/usr/local/lib 目錄之中。接下來便可執(zhí)行Gaussian 98的安裝程序 (g98/bsd 目錄下之 bldg98)。Pgf77 的編譯速度非常驚人,絕不遜于工作站及大型主機上之編譯器;若一切順利,大約20-30分鐘后Gaussian 98程序就已準(zhǔn)備就緒。我們建議此時至少執(zhí)行一些測試工作(test jobs, 如test 1, 28, 94, 155, 194, 296, 302 等)以確定可以得到正確的計算結(jié)果。
Gaussian 98支持多處理器,我們強烈建議您的計算機使用雙CPU的主機板,并且確定Linux 系統(tǒng)上是使用SMP版本的kernel。
使用雙CPU另外要注意的是Linux 系統(tǒng)中內(nèi)定的內(nèi)存共享值太小,我們建議將其改為系統(tǒng)主存儲器的80%左右,這只需要將希望共享的內(nèi)存量鍵入 /proc/sys/kernel/shmmax 檔案即可,在Gaussian 98中使用雙CPU的方法為在輸入檔開頭加入 %NProc=2 的指令。雖然前面提到說目前PC已可作為計算化學(xué)的工具,但如Gaussian等軟件通常處理的計算量及資料量都非常龐大,為達到良好的效率,硬件上的配備需較一般PC高出很多。在內(nèi)存上,512MB 的SDRAM 應(yīng)是基本配備,由于最近內(nèi)存價格的滑落,1GB 的內(nèi)存應(yīng)該是很好的選擇。硬盤配備也是影響運算速率的一個重要因素,因為在Gaussian的運算過程中常需寫入及讀取大量的資料 (scratch file),高速硬盤的重要性不亞于內(nèi)存。我們建議使用Ultra SCSI 160 的接口配合18GB以上的硬盤空間。新版的Red Hat Linux 支持software RAID系統(tǒng)。兩臺以上的SCSI硬盤在RAID 0的架構(gòu)下可額外增加一些IO的速度。 另外由于32位系統(tǒng)的限制,PC上之scratch 檔的大小不可超過2GB。 對于較大的計算工作常需要借著%RWF 指令產(chǎn)生多個scratch 檔案。此外,為避免停電造成系統(tǒng)的破壞,UPS也是不可少的配備。右圖為使用Gaussian 98在不同速度的計算機上(單CPU)測試的結(jié)果。測試的分子為Benzene。測試的項目為結(jié)構(gòu)最佳化、QCISD(T)單點能量、以及振動頻率 的計算。這四種CPU分別是過去四年來Intel推出的代表性處理器。雖然P4在許多商用軟件上表現(xiàn)并不特別出色,但在我們的一系列測試中,P4的運算能力似乎遠較PIII來的強。我們正期待多重P4處理器以及Itanium 64位處理器的計算機上市,因為這將會把桌面上的計算化學(xué)帶入一個新的高速領(lǐng)域。
結(jié)語
公元1998年的諾貝爾化學(xué)獎頒給對計算化學(xué)有卓越貢獻的Walter Kohn 及 John Pople。這是對計算化學(xué)領(lǐng)域的一大肯定,也顯示了計算化學(xué)在現(xiàn)當(dāng)今化學(xué)研究中的重要性。數(shù)十年來,藉由計算化學(xué)的研究使得我們大幅增加了對許多化學(xué)現(xiàn)象的了解。隨著計算能力的大幅增加,在將來的化學(xué)研究中計算化學(xué)將扮演更加重要的角色。比如說以往計算化學(xué)所研究的系統(tǒng)主要局限在氣態(tài)中的中小型分子,但近來國際上一些主要化學(xué)期刊中已陸續(xù)出現(xiàn)準(zhǔn)確仿真大型生化系統(tǒng)的計算化學(xué)研究。計算化學(xué)不僅已成為一個重要的化學(xué)學(xué)門,它更已經(jīng)是國際間化學(xué)基礎(chǔ)研究的必備工具。國內(nèi)在這方面的起步較晚但研究人才不算少,然而受到重視的程度仍有待加強,并且應(yīng)該在大學(xué)及研究所化學(xué)的課程中開始加入計算化學(xué)的基礎(chǔ)訓(xùn)練,以培養(yǎng)具有分子仿真及計算化學(xué)理論能力的新一代化學(xué)專業(yè)人才。