亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        并行廣義本征值求解器GenELPA*

        2018-01-16 01:42:57孫廣中
        計(jì)算機(jī)與生活 2018年1期
        關(guān)鍵詞:本征廣義向量

        沈 瑜,孫廣中

        1.中國科學(xué)技術(shù)大學(xué) 超級(jí)計(jì)算中心,合肥 230026

        2.中國科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230026

        1 前言

        在很多需要數(shù)值計(jì)算的領(lǐng)域,如何高效求解大型矩陣的本征值和本征向量是常見的問題。例如在電子結(jié)構(gòu)理論中,人們常常要把求解的Kohn-Sham方程轉(zhuǎn)換為矩陣形式,然后求出本征值[1]。很多時(shí)候系統(tǒng)需要通過多次自洽迭代達(dá)到穩(wěn)態(tài),而在每次迭代中都需要求解該方程,尤其在幾百個(gè)原子以上的較大尺度下,該方程的求解成為最耗費(fèi)時(shí)間的步驟[2],因此如何求解Kohn-Sham方程成為影響計(jì)算速度的關(guān)鍵因素之一。

        一般情況下,Kohn-Sham方程是一個(gè)廣義本征值方程,具有如下形式:

        其中,A和B為已知的N×N的矩陣;c是N×N的本征向量矩陣;λ是以本征值為對(duì)角元的矩陣。很多情況下,A和B都是對(duì)稱矩陣(如果為實(shí)數(shù)矩陣)或者厄米矩陣(如果為復(fù)數(shù)矩陣),同時(shí)B還是正定且非奇異矩陣。這種情況下,可以把廣義本征值方程轉(zhuǎn)化為一般本征值方程,然后進(jìn)行求解。

        本征值的求解是數(shù)值計(jì)算的一個(gè)基本問題,直接對(duì)所有本征值和本征向量進(jìn)行代數(shù)求解的計(jì)算復(fù)雜度為O(N3),在需求解矩陣規(guī)模增長時(shí),所需要的計(jì)算能力增長得非???。但如果問題有一定特殊性,例如只需要一小部分本征值和本征向量,或者本征函數(shù)有一些約束條件等,可以采用迭代等方法來降低計(jì)算復(fù)雜度[3]。在某些情況下,甚至可以繞過求解本征值的步驟,從而使得問題復(fù)雜度降低到O(N)[4]。另一方面,也可以采用大規(guī)模并行的方法來加速本征值的計(jì)算。尤其是近些年超級(jí)計(jì)算機(jī)的飛速發(fā)展,不僅頂級(jí)超級(jí)計(jì)算機(jī)的規(guī)模迅速擴(kuò)大,而且千核乃至萬核級(jí)服務(wù)器也日趨普及(http://www.top500.org)。目前,有很多工作是研究大規(guī)模并行本征值求解,例如ScaLAPACK(scalable linear algebra package)[5]、PLAPACK(parallel linear algebra package)[6-7]、eigen_s和eigen_sx[8]、Elemental[9]、EleMRRR[10]等。同時(shí),基于眾核的 PLASMA(parallel linear algebra for scalable multicore architectures)和基于GPU的MAGMA(matrix algebra for GPU and multicore architectures)也隨著近年來異構(gòu)計(jì)算的發(fā)展而開發(fā)出來[11-14]。

        2011年德國馬克斯普朗克學(xué)會(huì)的科學(xué)家們?yōu)榱私鉀Q在FHI-aims全電子結(jié)構(gòu)軟件中的針對(duì)上千個(gè)原子體系中需要求解的大規(guī)模對(duì)稱和厄米矩陣的本征值問題,發(fā)展了面向P級(jí)應(yīng)用的本征值求解庫(eigenvalue solver for petaflop-applications,ELPA)[15]。ELPA具有相對(duì)傳統(tǒng)ScaLAPACK更好的計(jì)算速度和并行效率,除了在FHI-aims[16]里得了應(yīng)用,也為很多專業(yè)軟件采用,例如針對(duì)納米尺度材料模擬軟件OpenMX(open source package for material explorer)[17]、量子化學(xué)和固體物理軟件CP2K[18]等。

        本文將介紹一種自行開發(fā)的基于ELPA的廣義本征值求解器GenELPA,該求解器以開源形式公開發(fā)布(https://git.ustclug.org/yshen/GenELPA_C),它實(shí)現(xiàn)了轉(zhuǎn)換廣義本征值方程為一般本征值方程的方法,然后調(diào)用ELPA進(jìn)行計(jì)算。為了方便使用,采用了類似ScaLAPACK的接口和自動(dòng)選擇最佳轉(zhuǎn)化的方法,并提供了轉(zhuǎn)化和求解分步調(diào)用的函數(shù)。本文將該求解器應(yīng)用到由中國科學(xué)技術(shù)大學(xué)量子信息重點(diǎn)實(shí)驗(yàn)室開發(fā)的第一性原理軟件ABACUS[19](atomic-orbital based ab-initio computation at USTC,http://abacus.ustc.edu.cn)中,獲得了理想的效果。

        2 原理

        求解廣義本征值問題可以先將廣義本征值方程轉(zhuǎn)化為一般本征值方程,然后求解轉(zhuǎn)化后的一般本征值問題。第一種轉(zhuǎn)化方法是將B矩陣做Cholesky分解為上三角矩陣或者下三角矩陣,這里以上三角矩陣為例:

        其中,U為上三角矩陣;UT是它的轉(zhuǎn)置矩陣。

        然后令:

        那么方程(1)就變?yōu)闃?biāo)準(zhǔn)本征值問題:

        方程(5)可以通過ELPA來求解,如果需要本征向量的話,可以通過下式求得:

        第二種方法是將B對(duì)角化后,求得B-1/2。即先用ELPA求解關(guān)于B的本征值方程,得到本征值和本征向量e={ei,i=1,2,…}和q={qij,i,j=1,2,…},然后有:

        其中,B-1/2ij為矩陣B-1/2的矩陣元;qik和qkj為本征向量矩陣q的矩陣元;ek為第k個(gè)本征值。令:

        則方程(1)可轉(zhuǎn)變?yōu)橐话惚菊髦敌问剑?/p>

        同樣,上式可以通過ELPA來求解,如果需要本征向量的話,可以通過下式求得:

        3 功能與使用

        GenELPA主要功能是自動(dòng)進(jìn)行上述過程,用戶只需要輸入矩陣A和B以及進(jìn)程的相關(guān)信息,就可以直接調(diào)用GenELPA進(jìn)行計(jì)算。用戶可自行選擇轉(zhuǎn)化方法以及是否計(jì)算本征向量。

        在實(shí)際的電子結(jié)構(gòu)計(jì)算中,有時(shí)候在進(jìn)行迭代計(jì)算時(shí),B矩陣保持不變而A矩陣會(huì)隨著迭代的進(jìn)行而不斷更新,因此有必要將B矩陣的分解和求解最終結(jié)果分開,以避免重復(fù)計(jì)算。在GenELPA中,對(duì)這兩步計(jì)算可以單獨(dú)調(diào)用函數(shù)進(jìn)行計(jì)算:第一步將B矩陣做Cholesky分解為上三角矩陣U,然后計(jì)算U-1,或者將B矩陣對(duì)角化后計(jì)算B-1/2;第二步再利用分解后得到的U-1或者B-1/2和A矩陣計(jì)算本征值和本征向量(如果需要的話)。

        在第一步中,由于ELPA提供的Cholesky分解函數(shù)在某些較小的系統(tǒng)下可能會(huì)不穩(wěn)定(https://doxygen.cp2k.org/d9/d87/classcp_fm_diag.html#a89cb3ce325957a111071b0d2200bbf17),還提供了使用Sca-LAPACK中的分解函數(shù)作為替代選擇。因此加上對(duì)矩陣B進(jìn)行對(duì)角化的方法,總共有3種方法對(duì)矩陣B進(jìn)行分解。在GenELPA中,使用者可以指定使用某種方法,也可以由程序自動(dòng)選擇。

        GenELPA中的函數(shù)采用類似ScaLAPACK的命名規(guī)則:第一個(gè)字母如果是p,表明是個(gè)并行的函數(shù);第二個(gè)字母表示處理的數(shù)據(jù)類型,d為雙精度實(shí)數(shù),z為雙精度復(fù)數(shù)。ELPA本身也有兩個(gè)求解引擎“ELPA1”和“ELPA2”,因此需要調(diào)用ELPA的函數(shù)也有兩個(gè)不同的版本,分別對(duì)應(yīng)“ELPA1”和“ELPA2”,其函數(shù)名分別用1和2結(jié)尾區(qū)別。

        表1是目前GenELPA提供的函數(shù)。GenELPA的輸入?yún)?shù)類似于ScaLAPACK,此外還加入了在整個(gè)程序中只需要一次初始化的一些參數(shù),以避免重復(fù)計(jì)算。本文以pdSolveGenEigen1為例說明輸入?yún)?shù)。

        其中,各個(gè)參數(shù)意義詳見表2。

        使用GenELPA時(shí),有以下需要說明的地方:

        (1)ELPA底層為FORTRAN語言編寫,因此二維數(shù)組(a、b、q、work)中的數(shù)據(jù)在內(nèi)存中的存儲(chǔ)需要按FORTRAN語言使用的列主序方式存儲(chǔ)。至于進(jìn)程矩陣,則不限定采用行主序或者列主序。

        Table 1 Function list of GenELPA表1GenELPA函數(shù)列表

        Table 2 Parameter list of pdSolveGenEigen1表2 pdSolveGenEigen1參數(shù)列表

        (2)程序運(yùn)行中,數(shù)組a、b會(huì)被用作中間變量,因此程序結(jié)束后,變量a、b的值會(huì)被改變。如果希望保留輸入數(shù)組,請(qǐng)事先將輸入數(shù)組復(fù)制一份。

        (3)除非必要,否則method方法最好選擇0作為默認(rèn)參數(shù)。當(dāng)使用參數(shù)0時(shí),在程序結(jié)束后method會(huì)返回實(shí)際使用的方法序號(hào)。

        (4)程序目前尚在開發(fā)中,會(huì)盡快采用ELPA2進(jìn)行計(jì)算和處理復(fù)數(shù)方程的部分補(bǔ)齊,同時(shí)會(huì)進(jìn)一步對(duì)性能調(diào)試優(yōu)化。

        4 性能測(cè)試

        本文使用了20 000×20 000大小的矩陣進(jìn)行了實(shí)際測(cè)試,測(cè)量了不同方法所需要的矩陣分解時(shí)間、本征值計(jì)算時(shí)間和總計(jì)算時(shí)間。使用的測(cè)試平臺(tái)是中國科學(xué)技術(shù)大學(xué)超級(jí)計(jì)算中心的TC4600集群[20],該集群的每個(gè)計(jì)算節(jié)點(diǎn)有24個(gè)CPU核心,因此測(cè)試使用的CPU核心數(shù)為24的整數(shù)倍,即48、96、192、384和768個(gè)。

        Fig.1 Time to calculate all eigenvalues圖1 計(jì)算所有本征值的時(shí)間

        Fig.2 Time to calculate half of all eigenvalues圖2 計(jì)算一半本征值的時(shí)間

        圖1和圖2分別是計(jì)算全部(20 000)和一半(10 000)本征值的時(shí)間統(tǒng)計(jì),橫軸為使用的CPU核心數(shù),縱軸為時(shí)間。其中圖(a)是3種方法所用整體時(shí)間的對(duì)比,黑色方塊線為方法1,紅色圓圈線為方法2,綠色三角線為方法3??梢钥闯鲈谑褂肅PU核心數(shù)較少時(shí)方法1和方法2的速度幾乎一樣,而使用CPU核心數(shù)較多時(shí),方法2要稍快一些。至于方法3,所需時(shí)間一直要比其他兩種方法長很多。圖(b)~(d)分別是方法1到方法3的分步驟時(shí)間統(tǒng)計(jì),其中黑色方塊線為右側(cè)矩陣分解時(shí)間,紅色圓圈線為計(jì)算本征值時(shí)間,綠色三角線為總時(shí)間。由于方法3通過對(duì)角化右側(cè)矩陣進(jìn)行分解時(shí)需要計(jì)算右側(cè)矩陣的本征值,方法3的矩陣分解時(shí)間要接近計(jì)算本征值的時(shí)間。而方法1和方法2的矩陣分解使用Cholesky方法,所需時(shí)間要遠(yuǎn)遠(yuǎn)小于計(jì)算本征值的時(shí)間。

        測(cè)試結(jié)果表明:首先,使用Cholesky分解比對(duì)角化能夠更快地將矩陣B分解;其次,在使用CPU核心數(shù)較少時(shí),采用ScaLAPACK和ELPA提供的Cholesky分解方法耗時(shí)幾乎一樣。

        需要說明的是,該測(cè)試程序還沒有得到充分優(yōu)化,因此在大規(guī)模并行效率上還不如ELPA本身的效率,后續(xù)工作中將進(jìn)一步對(duì)其優(yōu)化。

        將此求解器應(yīng)用到第一性原理軟件ABACUS,并使用一個(gè)由2 048個(gè)硅原子(Si)組成的晶體進(jìn)行了初步測(cè)試(圖3),該體系在每一個(gè)電子步的迭代中需要計(jì)算一次26 000×26 000大小的廣義本征值方程。同樣在TC4600系統(tǒng)中,采用96個(gè)CPU核心進(jìn)行了測(cè)試。作為對(duì)比,ABACUS原始使用的求解器是由中科院網(wǎng)絡(luò)信息中心開發(fā)的HPSEPS(high performance symmetric eigenproblem software)軟件包[21]。測(cè)試結(jié)果表明,采用GenELPA進(jìn)行計(jì)算后,本征值求解部分計(jì)算時(shí)間由4 300 s減少到2 000 s,程序整體運(yùn)行時(shí)間由4 800 s減少到2 500 s,程序性能取得了顯著提高,如圖4所示。

        Fig.3 Asample containing 2 048 silicon atoms圖3 包含2 048個(gè)硅原子的測(cè)試算例

        Fig.4 Comparison of computing time圖4 計(jì)算時(shí)間對(duì)比

        5 總結(jié)

        本文基于具有良好的計(jì)算速度和并行效率的本征值求解器ELPA編寫了廣義本征值求解器GenELPA,該求解器為用戶提供了3種將廣義本征值問題轉(zhuǎn)化為一般本征值問題的方法,簡化了使用方式,避免了在求解某些問題時(shí)ELPA中可能存在的問題;實(shí)際測(cè)試表明該求解器還具有較好的計(jì)算速度和并行效率。針對(duì)電子結(jié)構(gòu)計(jì)算等需要大規(guī)模并行求解廣義本征值的問題,能夠有效地簡化難度,提高效率。

        致謝本工作得到了中國科學(xué)技術(shù)大學(xué)中科院量子信息重點(diǎn)實(shí)驗(yàn)室的何力新教授、任新國教授和劉曉輝博士在應(yīng)用集成和實(shí)例測(cè)試中的幫助。

        [1]Martin R M.Electronic structure:basic theory and practical methods[M].New York:Cambridge University Press,2004.

        [2]Li Pengfei,Liu Xiaohui,Chen Mohan,et al.Large-scale ab initio simulations based on systematically improvable atomic basis[J].Computational Materials Science,2016,112(44):503-517.

        [3]Golub G H,van der Vorst H A.Eigenvalue computation in the 20th century[J].Journal of Computational and Applied Mathematics,2000,123(1):35-65.

        [4]Goedecker S.Linear scaling electronic structure methods[J].Reviews of Modern Physics,1999,71(4):1085-1123.

        [5]Blackford L S,Choi J,Cleary A,et al.ScaLAPACK users'guide[M].Philadelphia:SIAM,1997.

        [6]Alpatov P,Baker G,Edwards C,et al.PLAPACK:parallel linear algebra package design overview[C]//Proceedings of the 1997 ACM/IEEE Conference on Supercomputing,San Jose,Nov 15-21,1997.New York:ACM,1997:1-16.

        [7]Baker G,Gunnels J,Morrow G,et al.PLAPACK:high performance through high-level abstraction[C]//Proceedings of the 1998 International Conference on Parallel Processing,Minneapolis,Aug 10-14,1998.Washington:IEEE Computer Society,1998:414-422.

        [8]Imamura T,Yamada S,Machida M.Development of a highperformance eigensolver on a peta-scale next-generation supercomputer system[C]//Proceedings of the 2010 International Conference on Supercomputing in Nuclear Applications and Monte Carlo,Tokyo,Oct 17-21,2010.Tokyo:Atomic Energy Society of Japan,2011:643-650.

        [9]Poulson J,Marker B,van de Geijn R A,et al.Elemental:a new framework for distributed memory dense matrix computations[J].ACM Transactions on Mathematical Software,2013,39(2):13.

        [10]Petschow M,Peise E,Bientinesi P.High-performance solvers for dense hermitian eigenproblems[J].SIAM Journal on Scientific Computing,2013,35(1):C1-C22.

        [11]Haidar A,Solcà R,Gates M,et al.Leading edge hybrid multi-GPU algorithms for generalized eigenproblems in electronic structure calculations[C]//LNCS 7905:Proceedings of the 28th International Supercomputing Conference,Leipzig,Jun 16-20,2013.Berlin,Heidelberg:Springer,2013:67-80.

        [12]Agullo E,Demmel J,Dongarra J,et al.Numerical linear algebra on emerging architectures:the PLASMA and MAGMA projects[J].Journal of Physics:Conference Series,2009,180:012037.

        [13]Dongarra J J,Tomov S.Matrix algebra for GPU and multicore architectures(MAGMA)for large petascale systems[R].Knoxville:University of Tennessee,2014.

        [14]Buttari A,Dongarra J,Kurzak J,et al.The impact of multicore on math software[C]//LNCS 4699:Proceedings of the 8th International Workshop on Applied Parallel Computing:State of the Art in Scientific Computing,Ume?,Jun 18-21,2006.Berlin,Heidelberg:Springer,2007:1-10.

        [15]Marek A,Blum V,Johanni R,et al.The ELPA library:scalable parallel eigenvalue solutions for electronic structure theory and computational science[J].Journal of Physics:Condensed Matter,2014,26(21):213201.

        [16]Blum V,Gehrke R,Hanke F,et al.Ab initio molecular simulations with numeric atom-centered orbitals[J].Computer Physics Communications,2009,180(11):2175-2196.

        [17]Ozaki T.Variationally optimized atomic orbitals for largescale electronic structures[J].Physical Review B,2003,67(15):155108.

        [18]Hutter J,Iannuzzi M,Schiffmann F,et al.CP2K:atomistic simulations of condensed matter systems[J].Wiley Interdisciplinary Reviews:Computational Molecular Science,2014,4(1):15-25.

        [19]Liu Xiaohui,Chen Mohan,Li Pengfei,et al.Introduction to first-principles simulation package ABACUS based on systematically improvable atomic orbitals[J].Acta Physica Sinica,2015,64(18):187104.

        [20]Li Huimin.User manual of Sugon TC4600 100TFLOPS supercomputing system[EB/OL].(2016-06-15).http://scc.ustc.edu.cn/zlsc/tc4600/tc4600-userguide.pdf.

        [21]Zhao Yonghua,Chi Xuebin,Wang Wu.HPSEPS software and parallel computing performance on thousand cores[J].e-Sciense Technology&Application,2010,1(4):20-28.

        附中文參考文獻(xiàn):

        [19]劉曉輝,陳默涵,李鵬飛,等.基于數(shù)值原子軌道基組的第一性原理計(jì)算軟件ABACUS[J].物理學(xué)報(bào),2015,64(18):187104.

        [20]李會(huì)民.曙光TC4600百萬億次超級(jí)計(jì)算系統(tǒng)使用指南[EB/OL].(2016-06-15).http://scc.ustc.edu.cn/zlsc/tc4600/tc4600-userguide.pdf.

        [21]趙永華,遲學(xué)斌,王武.HPSEPS軟件包及其在千核上的并行計(jì)算性能[J].科研信息化技術(shù)與應(yīng)用,2010,1(4):20-28.

        猜你喜歡
        本征廣義向量
        基于本征正交分解的水平軸風(fēng)力機(jī)非定常尾跡特性分析
        Rn中的廣義逆Bonnesen型不等式
        向量的分解
        聚焦“向量與三角”創(chuàng)新題
        KP和mKP可積系列的平方本征對(duì)稱和Miura變換
        從廣義心腎不交論治慢性心力衰竭
        本征平方函數(shù)在變指數(shù)Herz及Herz-Hardy空間上的有界性
        有限群的廣義交換度
        向量垂直在解析幾何中的應(yīng)用
        向量五種“變身” 玩轉(zhuǎn)圓錐曲線
        婷婷丁香五月亚洲| 国产激情一区二区三区在线蜜臀| 国产小屁孩cao大人免费视频| 成人影院免费观看在线播放视频| 国产亚洲精品90在线视频| 国产高颜值女主播在线| 国产乱码精品一区二区三区四川人 | 国产真实乱人偷精品人妻| 91精品国产综合久久青草| 东京热加勒比国产精品| 粉嫩小泬无遮挡久久久久久| 精品国内在视频线2019| 无码精品日韩中文字幕| 久久亚洲AV成人一二三区| 一区二区视频资源在线观看| 黄污在线观看一区二区三区三州| 亚洲综合激情五月丁香六月| 99热这里只有精品3| 国产一区二区三区蜜桃av| 男女裸体做爰视频高清| 美女内射毛片在线看免费人动物| 亚洲av中文无码乱人伦在线r▽| 免费一级国产大片| 亚洲丝袜美腿精品视频| 无码一区二区三区中文字幕| 人人爽人人爱| 亚洲an日韩专区在线| 一区二区亚洲熟女偷拍| 色偷偷偷在线视频播放| 久久久久国产精品免费免费搜索 | 国产偷国产偷亚洲清高| 日韩偷拍视频一区二区三区| 国内自拍偷国视频系列 | 日本av一区二区三区在线 | 亚洲色偷偷色噜噜狠狠99| 国产高跟丝袜在线诱惑| 日本精品中文字幕人妻| 国产一级一级内射视频| 国产亚洲精品aaaa片小说| 91啦视频在线观看| 一本色道加勒比精品一区二区|