微軟高性能計算軟件應用之道
談到高性能計算機,或者說是超級計算機,相信大家都會想到機房里面的大家伙,做一些非常高深的科研課題,模擬一些新產(chǎn)品的設計,不過今天我們要談的不是硬件的機器,而是上面跑的軟件,包括操作系統(tǒng)、管理軟件、開發(fā)工具和應用軟件,今天我們非常榮幸邀請到了在這個領域里面有著21年從業(yè)經(jīng)驗的專家——微軟中國研發(fā)集團高性能計算首席架構師徐明強博士。
用高性能計算機模擬殘酷的現(xiàn)實
主持人:徐博士您在這個行業(yè)里面一干就是20年,我想聽聽您對高性能計算的理解?
徐明強:我先談一談高性能計算愿景是什么樣子,然后談一下我這20年所見、所聞,如何來成就這個愿景的。
愿景我覺得就是要讓任何人、任何機構都可以隨時隨地的對現(xiàn)實進行模擬和建模,然后來實現(xiàn)他們的潛能?,F(xiàn)實對許多人往往是非常殘酷的,對癌癥病人來說,他晚上脫下的鞋,第二天不知道是否可以穿上,對酒后開車的人來說,安全性是非常重要的,而高性能計算可以幫助人們隨時隨地精確的模擬現(xiàn)實,認識現(xiàn)實,使得現(xiàn)實為己所用,為己造福。
這里講一個故事,就是在20多年前,中國有一位寄生蟲學家,他為了研究寄生蟲在人身上的生命周期,做出了犧牲,當時他沒有任何病人可供研究,所以他在自己身上植入了寄生蟲,雖然他一天一天獲得知識,但也一天一天地消瘦下來。我知道了這個故事之后非常感動,我覺得科學工作者為了人類的健康付出這么大的代價,這對我們做高性能計算工作的人來說,這是多么大的一個挑戰(zhàn)。我們有這樣的緊迫感,我們必須努力的去工作、去探索,使我們可以為科學工作者提供更便捷、更可用、更方便的工具,使得他們能夠模擬他們所研究的現(xiàn)實。
主持人:我記得有這么一句話,說高性能計算模擬是繼理論研究、實驗研究之后第三個進行科學研究的方法,在藥物設計、汽車設計、飛機設計甚至是核爆炸的模擬里面,高性能計算都起到非常重要的作用。
徐明強:是這樣子的。我感覺有一只看不見的手,把高性能計算這項技術從高端的、先進的、發(fā)達國家的實驗室里,推向了普通大眾,推向工業(yè)界。
比如在一開始的時候,20多年前,10Gflops的計算機,是要耗資四千萬美金,而今天不用三千美金就可以買到同樣性能的計算機,所以說高性能計算機的可購買性、可支付性非常強了;還有20多年前必須是通過CRAY這樣廠商制造的專業(yè)芯片,才可以有這樣的性能,今天英特爾、AMD通用芯片也可以實現(xiàn)這樣的性能,使得可購買的數(shù)量也變大了;第三從應用方面看,一開始都是用在先進國家的一些科學前沿的基礎研究上面,現(xiàn)在都普及到了普通通用產(chǎn)品,象汽車、飛機、醫(yī)藥、金融風險分析等。因此,從可應用性之廣、可支付性之高、可獲數(shù)量之大、可應用性之廣,都可以看到高性能計算正在普及。
高性能計算應用面臨的最大挑戰(zhàn):易用性
主持人:在高性能計算應用普及的過程當中,您認為現(xiàn)在面臨的最大挑戰(zhàn)是什么?
徐明強:我們對客戶做過一個調查,其中一個問題就是說你的部門在高性能計算應用當中所遇到的最大的挑戰(zhàn)到底是什么?有42%的人回答說很難聘到合適的開發(fā)管理人才。因為其中有一個原因,現(xiàn)在大部分高性能計算是基于LINUX系統(tǒng),而管理LINUX系統(tǒng)和會懂LINUX系統(tǒng)開發(fā)的人員都是比較缺乏的。還有30%的人說并行編程模式難,調試也難。有四分之一的人說到數(shù)據(jù)管理是一個很大的問題。
這里我想舉一個例子,就是美國寶潔公司IT管理員曾經(jīng)跟我說,高性能計算對他們來說至關重要,但是高性能計算也使他們耗資巨大、開銷巨大,因為使用的都是LINUX系統(tǒng),所以最后他們的系統(tǒng)管理員都變成系統(tǒng)集成商了。比如他們使用非常多的應用,不同的應用需要不同的LINUX內核版本,有的用Redhat,有的用Suse,Infiniband網(wǎng)絡設備驅動也因為操作系統(tǒng)內核不同而變化,所以這個管理員所要測試的工作量是非常龐大的,當他看到微軟進入這個市場的時候他非常興奮,他說,終于有一個廠商可以給我提供操作系統(tǒng)、給我提供網(wǎng)絡設備的驅動認證,使我可以安心的使用系統(tǒng),因為我知道,當我使用的網(wǎng)絡是通過微軟認證的,那么它就一定會具有穩(wěn)定性。 #p#page_title#e#
主持人:也就是說微軟希望能夠給用戶提供一個整體的解決方案。
徐明強:是的,微軟的策略中心思想就是要提高應用開發(fā)者和管理人員的工作效率。
開發(fā)人員的工作效率差是因為編程模式復雜,因為工具比較落后、缺乏,很多開發(fā)人員的體會是當他從工作站移到集群開發(fā)的時候,以前他依賴的一些調試、功能都已經(jīng)不復存在,微軟所做的就是要讓他在集群上開發(fā),如同在客戶端上開發(fā)一樣容易,一樣高效率。那么對于用戶來說,最好是和他的應用有一個無縫連接,讓用戶根本不知道后面是在使用一個集群。對于管理者來說,只要是任何通過微軟認證的一個Windows的管理員都可以管理集群,這樣就解決了一個聘用人才、管理人才難的矛盾。
主持人:確實是,畢竟使用高性能計算機的人本身可能不是計算機方面的專家,很多是物理專家、化學專家或者是醫(yī)藥專家,他們對計算機并不是很了解,您剛才談到微軟這個策略就是能夠更好的去提高管理效率,提高他們的工作效率,讓他們更好、更容易的使用這個工具。
徐明強:是的。
微軟高性能計算產(chǎn)品:管理、開發(fā)與調度
主持人:那么在微軟的產(chǎn)品里面具體是怎么體現(xiàn)的,您能不能給我們談一下微軟都有哪些產(chǎn)品來幫助他們實現(xiàn)這個目的?
徐明強:微軟高性能計算產(chǎn)品包括三個部分,第一是幫助系統(tǒng)人員能夠有效管理,我們有一個資源管理器,第二是幫助程序員開發(fā)并行計算,我們有一套開發(fā)編程模式和運行系統(tǒng),第三是幫助用戶可以更有效的提交作業(yè)、監(jiān)控作業(yè)、管理作業(yè),我們有一個作業(yè)調度器。
從管理器來說,我們提供一個整套的解決方案,使得管理人員可以非常便捷的從一點就可以部署整個集群的操作系統(tǒng)和應用,可以讓他一目了然地監(jiān)控成百上千個結點的負載情況,而且我們給他一些內置的、可配置的故障排除診斷程序,可以讓他做各種測試,可以讓他能夠發(fā)現(xiàn)故障所在,最后我們可以讓他將整個集群系統(tǒng),微軟的HPC Server系統(tǒng)和企業(yè)級的管理系統(tǒng)實現(xiàn)有效的集成。
對于開發(fā)人員來說,我們提供了MPI和面向服務的編程模式,這樣可以讓編程人員很有效的來編寫傳統(tǒng)的高性能計算的應用,也可以編寫新興的松耦合應用。我們還提供Visual Studio的項目模塊,使得用戶可以更方便、便捷的來建立這些應用項目,也提供一些調試工具,讓他用自己的工作站就可以來調試并行程序,為他們提供了很大的方便。
有一個投行的IT管理人員,當他看到我們這個面向服務的調試工具以后,他說,自從我們的應用從客戶端轉到了集群以后,開發(fā)人員的工作效率就大大降低,因為當故障發(fā)生的時候,沒有人知道到底是怎么回事,因為沒有一個調試工具可以讓他進入程序內部,發(fā)現(xiàn)程序的故障情況。
主持人:請您幫我們回顧一下微軟高性能計算產(chǎn)品經(jīng)歷了一個怎樣的發(fā)展歷程?
徐明強:我們這個團隊是2004年建立的,用了兩年時間,2006年發(fā)布了第一版,這個版本無論是從管理系統(tǒng)、開發(fā)系統(tǒng)和用戶界面的支持上,還是初級階段,比如管理只包括了一些部署的支持和一些簡單監(jiān)控的支持,作業(yè)管理器也只有一些非常簡單的作業(yè)調度策略,從開發(fā)系統(tǒng)來說我們只是MPI,所以我們第一版本面向的是一些傳統(tǒng)的高性能計算用戶,使用MPI來開發(fā)系統(tǒng)。
到了第二版本,我們從管理作業(yè)調度器和開發(fā)系統(tǒng)方面,都有了很多新增的功能,比如在管理上,除了部署和監(jiān)控,我們還提供了非常有效的故障診斷程序,還可以幫助管理者深層使用報表,使他對這個系統(tǒng)的使用狀況有非常清晰的了解,對于作業(yè)調度器我們還增加了一些部門級和企業(yè)級的作業(yè)調度策略。
就我個人而言,最興奮的是在編程模式,除了MPI的編程模式,我們還引入了面向服務的編程服務模式和運行系統(tǒng),使得很多新興產(chǎn)業(yè),比如金融業(yè)、保險業(yè)都可以使用面向服務的這種編程模式。用戶的反饋是,以前用作業(yè)調度系統(tǒng),因為一些參數(shù)掃描的作業(yè),他們會花很多的編程時間,而到了面向服務的系統(tǒng)以后,他們只要編程一些服務的DLL放到集群上,而他們的開發(fā)人員只要用對象和方法的調用就可以直接編寫并行程序,這對他們的程序員來說非常易于上手,易于完成項目。 #p#page_title#e#
主持人:微軟高性能計算產(chǎn)品在市場上的反饋怎么樣?
徐明強:從市場上來看,我們第一版主要是側重制造業(yè)、石油還有生命科學這些領域,到了第二版以后我們就拓寬了,包括金融業(yè)、保險業(yè)還有政府部門。市場反映各有不同,在金融業(yè),傳統(tǒng)上編寫應用時使用Windows的幾率比較多,因為他們大部分應用是客戶自已開發(fā)的;對于制造業(yè)來說,很多應用由第三方獨立軟件開發(fā)商提供,所以既有LINUX平臺,也有Windows平臺。比較來看,金融業(yè)對微軟的采納率是非常高的,因為應用傳統(tǒng)上就是在Windows平臺跑,保險業(yè)也是,所以我們看到最早的一些用戶都是金融保險機構,得到了非常好的反饋。當然我們在制造業(yè)也有不少的客戶,而且得到了很寶貴的反饋。所以我們相信,我們和用戶一起和獨立開發(fā)商和硬件廠商一起合作,就可以營造出來一個適合各行各業(yè)的高性能計算平臺。
主持人:我特別感興趣的是,微軟中國研發(fā)團隊在這個過程當中起到了什么樣的作用,你們參與了哪些項目,能否給我們分享一下。
徐明強:在開發(fā)第一版高性能計算服務器的時候,上海研發(fā)部門就參與了開發(fā)項目,當時第一版主要是做外部的一些用戶界面程序,到了第二版和第三版的時候,就開始做服務器內核的開發(fā),尤其是面向服務的編程模式和運行系統(tǒng),所以從這點來看,上海這個團隊在短短這五年里頭,無論是在全球開發(fā)和測試,還是異地協(xié)調以及項目管理和團隊建設上,它都積累了寶貴的經(jīng)驗,而且有長足的進步。這就使得總部有這樣的信心,說上海的開發(fā)團隊不僅可以開發(fā)用戶界面,而且可以勝任內核的開發(fā),不光是單一功能的開發(fā),而且可以勝任管理功能、編程功能和運行時功能的開發(fā)。
多核與GPU異構系統(tǒng)的軟件挑戰(zhàn)
主持人:談到并行計算,還是比較難的,會用MPI編程序的人不多,微軟是不是做很多事情,讓并行編程更加容易,讓大規(guī)模并行計算機更加容易用。
徐明強:是的,我們微軟內部有一個“并行計算平臺”(PCP),這個組和我們HPC Sever組共同的愿景就是能夠使得開發(fā)人員很簡單、很高效的開發(fā)出適合于在多核機器、在單機和在多機上都可以運行的應用。
舉幾個例子來說,PCP組開發(fā)出來的產(chǎn)品,適合于計算密集和數(shù)據(jù)密集應用,比如有一個TPL就是幫助程序員更快速地開發(fā)多線程并行程序。程序員的反饋說,這個確實提高了他們的效率,而且不用他們去解決很多很復雜的同步,避免做并行計算時很常見的一些錯誤。另外在數(shù)據(jù)并行上,微軟也有一個工具叫LINQ,這是許多.net程序員非常熟悉的工具,那么在多核機上我們有個PLINQ,使得多核的機器上也可以并行處理數(shù)據(jù)流,給廣大數(shù)據(jù)密集應用的程序者帶來了福音。
主持人:除了X86多核系統(tǒng),這兩年有個新的趨勢就是CPU+GPU混合架構模式的出現(xiàn),我想請你談一談這種異構系統(tǒng)的并行軟件編程、作業(yè)調度方面,帶來什么樣的挑戰(zhàn)和機遇,微軟如何應對?
徐明強:我先談談機遇,GPU呈現(xiàn)了一種唯物辯證法,最早高性能計算都是向量機,后來被英特爾、AMD的X86、X64芯片所取代,現(xiàn)在向量機又借GPU回來了,GPU就是一個向量機。微軟PCP組有一位專家是從CRAY公司過來的,他預期在將來的十幾年內,無論是計算機科學領域,將會有近20%的論文都是集中在GPGPU的研究上。這也給很多軟件開發(fā)商、系統(tǒng)集成商都帶來了很大的機遇。
當然,任何時候你出現(xiàn)異構,挑戰(zhàn)也是顯而易見的。GPU在今后幾年的發(fā)展,我們會看到市場上很多多樣的結構,2006年一位專家曾經(jīng)說了這么一句話,科學計算在1975年到95年之間擁有一個非常穩(wěn)定的CRAY架構平臺,后來隨著不斷的異構架構的發(fā)明,那么在今天的科學計算世界,在短期內,無論是獨立軟件開發(fā)商,還是用戶自己開發(fā)的應用,都缺乏一個簡明和統(tǒng)一的穩(wěn)定的編程模式和平臺。這就是微軟所要面對的挑戰(zhàn),但這也不是微軟第一次面對這樣的挑戰(zhàn),早在WindowsNT開發(fā)的時候,當時也面對過要支持不同的芯片,到底要是RISC芯片還是要支持X86芯片。 #p#page_title#e#
今天微軟的策略仍然不變,就是要為程序員、管理員提供非??捎谩⒁子玫墓ぞ?。工具的功能可能會演變,但是微軟平臺是穩(wěn)固的。所以,從編程上來說,我們的目標是要最大努力去保護獨立開發(fā)商以及客戶應用開發(fā)商的投入,而作業(yè)調度要讓用戶最大的限度啟動GPU所能帶來的提速效益,在管理上使得管理者能夠最好監(jiān)控GPU的使用情況。
主持人:剛才您談了這么多,我想微軟最希望的是保護用戶在軟件方面的投資。
徐明強:是的,因為微軟的成功完完全全是取決于軟件開發(fā)商的成功。微軟在歷史上就對這方面非常重視,比如微軟平臺上有許多共享的軟件,都是以二進制方法去傳播的,我們在每一個版本更新的時候,都非常重視以往的應用能否繼續(xù)運行。在我們高性能計算組,有一個測試部門,就是專門對所有和我們合作的開發(fā)商的軟件進行測試,目標就是要讓這些應用能夠不做任何修改就可以直接在新的版本上運行。
中外高性能計算應用的差距
主持人:談到應用,我注意到這樣一個現(xiàn)象,一個是千萬億次計算機“天河一號”的發(fā)布,另一個是上海超算百萬億次計算機缺少大應用,很多都是小規(guī)模的軟件在跑。這和國外的情況不太一樣。對于這種“大機器,小應用”的狀況,您是怎么看的?
徐明強:我看差距有兩方面,首先從大的應用來說,目前中國還沒有多少應用能夠讓這種千萬億次機器長久不閑置地運行,這和我們的國情有關。畢竟發(fā)達國家有許多計算應用都是在科學研究的前沿,需要很大的計算量,尤其是對于最新的多層次、多學科的仿真模擬應用,有玩笑說,這些應用跑起來,可以輕松地把當前最快的計算機當做午飯吃,還沒有說晚飯該怎么吃呢?
第二個差距是在于普及性。像西方發(fā)達國家,不光是高端的應用多,在低端,在各行業(yè)高性能計算應用也是非常普及的。去年有一個教數(shù)學分析的華裔教授跟我說,雖然處在經(jīng)濟危機中,但他的很多博士生非常容易就找到工作。因為制造行業(yè)需要這些人去幫助設計,小到軸承的受力分析,這樣的人才他們都需要。所以我想,這也為我們這樣一個制造業(yè)大國展現(xiàn)了非常大的發(fā)展空間。
我想造成差距的原因,除了我們的國情,也需要時間積累。即便是在西方,普及也不是一蹴而就的,比如在90年代初,噴霧式飛機制造商用集群工作站來做CFD模擬,到了90年代中期,一些芯片制造商還有電子制造工業(yè)開始使用集群來驗證他們的邏輯設計,到了90年代末,生命科學、制藥商用來做蛋白質分析,用來做基因排序,那么到新世紀,我們看到金融、投行、保險業(yè)開始使用集群做風險分析,所以它的普及有這樣一個過程。那么中國是什么樣一個情況呢,我們還需要拭目以待,但是我們微軟正在非常努力的和政府、學術界及工業(yè)界一起協(xié)同合作,要盡早推進高性能計算在中國的普及。
展望未來
主持人:最后請教您一個問題,微軟對于未來高性能計算是怎么看的,下一版的產(chǎn)品大概會在哪些方面作出一些改進?
徐明強:因為多核的出現(xiàn),今天任何一個平臺,即使是一個工作站,都會成為一個比較強大的高性能計算機。微軟的目標就是要制造出一個統(tǒng)一的編程模式,和配套的運行時系統(tǒng)、管理系統(tǒng)、監(jiān)控系統(tǒng)、開發(fā)工具,使得開發(fā)人員能夠非常高效率的開發(fā)應用,使這些應用不光能在多核的單機上運行,而且也可以在多機的集群上運行,甚至可以到云里頭運行,甚至可以說讓集群和云混起來運行,使得用戶可以非常透明的使用后臺的各種資源,使管理者可以有效的管理工作站、集群,甚至云里頭運行的應用??傊褪且粋€透明的,而且是一個非常統(tǒng)一的編程模式、管理模式和這樣一個平臺。歡迎大家訪問我們在Technet上的中文博客,更多了解Windows HPC Server:http://blogs.technet.com/chinahpc