文/本刊記者 王左利
HPC如何跨越人才困局
文/本刊記者 王左利
現(xiàn)實的情況是,應用學科與計算機之間語言不通需要翻譯,但找到這樣的翻譯簡直要“眾里尋他千百度”,應用不能以最優(yōu)的算法表達出來,也就無法把計算機的能量全盤發(fā)揮。于是學科對高性能計算應用的重視就不夠。如此陷入一個運轉不良的循環(huán)。
“美國橡樹嶺國家實驗室使用30,000核以下的應用占50%,30,000核到45,000核的應用占32%,45,000核以上的應用占18%。而根據(jù)上海超算中心的統(tǒng)計,在該中心運行的作業(yè)中16核以下的應用占了60%,16~160個核的應用占39%,160個核以上只有1%。這說明了什么問題?說明我們的應用水平跟人家沒法比?!庇玫腃PU越少表明解決問題的規(guī)模越小、復雜性越低?!斑@個現(xiàn)象在一定程度上反映了我們的多數(shù)研究只是追蹤性研究,我們缺乏將實際問題歸納為具有一定復雜度的物理模型的能力。”南京大學教授周會群說,這實質是人才的對比。
確實,提及中國高性能計算所面臨的最大挑戰(zhàn),所有接受采訪的學者、專家、產(chǎn)業(yè)界人士幾乎眾口一詞:人才。
“盡管計算機系的畢業(yè)生遍地開花,但是高性能計算領域的畢業(yè)生鳳毛麟角,大概1000個計算機系的畢業(yè)生中,只有2、3個與高性能計算有一定關系?!敝袊茖W院計算機網(wǎng)絡信息中心遲學斌研究員對本刊記者說。
一方面是供給的不足,另一方面是可供選擇的學生能力有所欠缺?!拔覀儸F(xiàn)在所招的新人員中,有碩士研究生,也有博士研究生,一般來說,不能直接上手,需要相當長一段時間的培訓才能上崗?!边t學斌說。很多計算機系畢業(yè)的學生居然不會熟練用C或FORTRAN編程,這讓他覺得很不可思議,但這就是存在的事實。
一些公司在招聘新員工時發(fā)現(xiàn),目前關于海量數(shù)據(jù)算法的相關課程在國內的大學沒有得到應有重視。哪怕是在一些名校計算機專業(yè)畢業(yè)的本科學生都幾乎沒有接觸過這方面的基礎理論。“而有沒有基礎理論的學習可能是在處理海量數(shù)據(jù)時看到和看不到結果的區(qū)別?!?/p>
供給少的本質原因在于高性能計算是一個門檻非常高,需求弱的領域。
首先,多核的產(chǎn)生改變了原有軟件的評判標準。新的算法必須注重把核的效能充分發(fā)揮,這需要熟悉并行化編程的人才。
其次,高性能計算需要有能利用大型科學軟件來解決大型、復雜的科學和工程問題的應用型人才,也就是交叉學科人才。
“高性能計算界內,往往編程非常復雜,需要花費很大精力學習,但是如果不能在高性能領域就業(yè),有些復雜的課程可能一輩子都無法派上用場?!毕嚓P人士表示,學習成本過高,就業(yè)風險大,導致人才的稀缺。
那么,誰來做高性能計算人才的孵化器?大學首先義不容辭。
畢業(yè)于南京大學地球科學系的77級學生周會群教授說,三十多年前在國家恢復高考制度之際,他幸運地得到了南京大學跨學科的特殊培養(yǎng)。在老校長匡亞明的關心和地球科學系的支持下,他被轉入數(shù)學系學習計算數(shù)學。爾后又分別在地球化學和地球物理兩個專業(yè)獲得碩士和博士學位。也正是因為這種交叉學科的背景,才使他能夠游刃有余地用物理、化學的理論和計算科學的手段研究地球科學問題。他曾這樣解釋他為什么具備如此豐富的計算機知識:超級計算機就是我的實驗儀器,為了最快、最好地得到實驗結果我必須對儀器有充分和透徹的了解,這樣才能改進算法、改善程序。
像他這樣的人,為數(shù)不多。現(xiàn)實的情況是,應用學科人才與計算機人才之間存在知識壁壘,這在一定程度上阻礙了超級計算機作為一種科學實驗和科學探索工具在各個學科領域的應用,也使軟件人才無法在諸多科研領域有用武之地。
“國外高性能計算與我們很不同的是,一是會有來自應用領域特別是生產(chǎn)性行業(yè)的需求驅動,這促進了各學科的人很愿意使用計算技術來解決創(chuàng)新過程中遇到的問題。二是在很多大的研究機構里,會有一些機制把各種學科的人匯聚在一起,針對同一問題從不同角度研究超大規(guī)模計算技術和方法,從而做到盡最大努力把計算機的能力發(fā)揮到極致?!睆埼渖こ處熣f。
相關人士表示,要促進高性能計算的發(fā)展,首先,必須對當前的課程結構進行改革。重視計算機基礎教育。周會群認為,熟悉并行程序設計的工程師稀缺,是因為大學開設的關于并行計算的課程很少,教得好的老師也很少。許多教師沒有實踐經(jīng)驗,重理論、輕實際。自己不寫程序,學生也大多不會寫,這樣的教學沒有實際意義。
但是更重要的是,要引入交叉學科。相關人士表示,高性能計算機的應用目標往往是解決綜合性、系統(tǒng)性的復雜問題,涉及多個領域。開發(fā)一個好的高性能計算應用需要熟悉應用和計算的“多面手”型人才,需要不同學科、不同技術背景的人員的密切合作。而目前的專業(yè)劃分難以培養(yǎng)出此類人才。不同學科的科技人員之間的交流和合作機制又不健全,造成懂高性能計算機的人不懂應用,了解應用的人又不知道如何用計算機。
關于交叉學科的事情一提再提,但是并沒有得到本質的改善。
中國科學院石鐘慈院士對高性能計算非常重視,他表示,由于多學科分割,建立新的學位點不可能,可以考慮從原來的物理、力學、數(shù)學吸引人過來,學位還是原來的?!敖徊鎸W科哪里都不認,但事情必須做,我們要培養(yǎng)學生朝這個方面發(fā)展,讓國家給招生指標,培訓好后按原來的專業(yè)分發(fā)文憑?!?/p>
中國科學院賀賢土院士則從國家層面上進行理解,“建立一支隊伍(培養(yǎng)學生),形成一股力量(星星之火),會對中國影響很大。如果對科學的計算停留在少數(shù)幾個部門,中國經(jīng)濟的發(fā)展之路會很艱苦。”而石鐘慈提出了更具體的建議,“ 對計算數(shù)學來說,計算太少,理論太多,9 7 3理論太多,應用計算太少,計算數(shù)學轉為計算科學,數(shù)學二級學科的地位轉變成交叉學科,我非常支持?!?/p>
“我們今天發(fā)明了汽車就要同時去發(fā)明它的方向盤,才能夠教新一代的學生如何去駕馭并行計算、云計算?!惫雀枨癈EO李開復曾說,產(chǎn)業(yè)界有使命成為人才成長的助推劑。
Google開發(fā)了一個叫做MapReduce的C++的面向大規(guī)模數(shù)據(jù)處理的新模式。極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統(tǒng)上。目前Google已經(jīng)把這個課程放到了高校合作計劃當中。
Intel與浙江大學、清華大學、北京大學、復旦大學、上海交通大學成立聯(lián)合實驗室,根據(jù)對并行計算與多核技術涉及的知識點分析,設計了并行計算與多核程序設計課程體系。為學生將來從事體系結構領域、系統(tǒng)軟件領域以及相關領域的工作或者高水平研究打好扎實的基礎。
IBM啟動了IBM“云”學院計劃,為來自教育行業(yè)的教師、研究員和IT人員提供一個全球范圍內的論壇平臺,用以進行云計算研究、技能開發(fā)和實踐分享。有包括北京工業(yè)大學在內的全球17家教育機構成為首批加入“云學院”計劃的學校。
一些新的合適形式還在展開。相關人士表示,對于人才這件事,高校和產(chǎn)業(yè)界應該形成同盟促進其發(fā)展。高性能計算公司應當承擔起自己的責任,不要僅僅負責機器的制造與銷售。可以在公司中建立研發(fā)部門,吸納優(yōu)秀人才,并以適當?shù)姆绞綆椭咝?,合作培養(yǎng)高素質人才。這樣做,才能打通高性能計算人才從高校到業(yè)界的通路,而最終的受益者則是整個高性能計算社區(qū)。
此外,在復雜軟件開發(fā)方面,專家認為,需要培養(yǎng)開源精神。高性能計算領域中有很多優(yōu)秀的開源軟件,它們都是由一個優(yōu)秀的研究開發(fā)小組創(chuàng)始,然后吸引全球相關領域的科學家、研究生一起合作,使軟件日臻完善。開源是一種非常重要的軟件開發(fā)合作模式。但是目前看來,在中國建立這樣的環(huán)境是非常迫切的。
超級計算機就是我的實驗儀器,為了最快、最好地得到實驗結果我必須對儀器有充分和透徹的了解,這樣才能改進算法、改善程序。
——南京大學周會群教授