盛樂標(biāo)
摘? 要: 高性能計算在眾多領(lǐng)域的廣泛應(yīng)用,使得開展高性能計算教學(xué)變得更加迫切,但目前國內(nèi)對非計算機專業(yè)的高性能計算課程教學(xué)沒有太多的經(jīng)驗。在考慮學(xué)生和科研工作實際需求的基礎(chǔ)上,結(jié)合教學(xué)實踐經(jīng)驗,摸索出一套合理的高性能計算課程教學(xué)內(nèi)容及教學(xué)方法。課程內(nèi)容包含了Linux基礎(chǔ)知識、OpenMP/MPI編程、異構(gòu)編程等,通過具體的計算示例,介紹高性能計算在不同學(xué)科中的應(yīng)用,以提高學(xué)生的學(xué)習(xí)興趣,鍛煉學(xué)生解決實際問題的能力。
關(guān)鍵詞: 高性能計算; 教學(xué)方法; 教學(xué)實踐; 課程內(nèi)容
中圖分類號:G642? ? ? ? ? 文獻標(biāo)志碼:A? ? ? 文章編號:1006-8228(2019)07-56-03
Abstract: The wide application of high performance computing make it needful to give a related course. However, there is not much experience in the teaching of high performance computing courses for the non-computer specialties in China. By considering the basic need of the students and the scientific research, a rational content setting and teaching method of high performance computing course is proposed based on the teaching experience. The course content includes Linux basics, OpenMP/MPI programming, heterogeneous programming, etc. Through the specific calculation examples, the applications of high-performance computing in different disciplines are introduced to improve students' interest in learning and to train students' ability to solve practical problems.
Key words: high performance computing; teaching method; teaching practice; course content
0 引言
高性能計算已被公認(rèn)為是繼理論科學(xué)和實驗科學(xué)之后的第三大科學(xué)研究方法,它在促進國民經(jīng)濟發(fā)展、國防建設(shè)和科技進步方面具有重要的戰(zhàn)略地位。高性能計算的水平已經(jīng)成為衡量一個國家綜合實力的重要標(biāo)志之一[1]。從傳統(tǒng)學(xué)科到新興學(xué)科眾多領(lǐng)域,對高性能計算都有著強烈的需求。一方面,國內(nèi)多家高校和研究機構(gòu)都建設(shè)了大型的高性能計算平臺,一些課題組也紛紛采購規(guī)模不等的計算機集群;然而卻很少有高校針對高性能計算開設(shè)專門的課程。所以在本科高年級階段和研究生階段開設(shè)高性能計算課程就顯得非常必要。該課程的開設(shè)能促進學(xué)生科研水平提升,也有助于培養(yǎng)學(xué)生高性能計算集群使用技能和掌握高性能計算程序編寫技巧。
高性能計算是一門綜合性學(xué)科,包括硬件系統(tǒng)、軟件研制、建模、算法等一系列內(nèi)容,是一個知識密集的創(chuàng)新研究領(lǐng)域。針對非計算機專業(yè)的高性能計算課程是一門新的課程,沒有太多經(jīng)驗可供借鑒[2]。該課程既不是單純的計算方法課,也不是Linux操作系統(tǒng)課程或者編程課,若要面面俱到地將高性能計算所涉及的內(nèi)容都作為課程教學(xué),那將占用大量課時,與我們引領(lǐng)學(xué)生快速掌握高性能計算基本知識的初衷背道而馳。因此,只有結(jié)合實際情況,有針對性地設(shè)置教學(xué)內(nèi)容,才能使學(xué)生用最少的時間掌握最有用的高性能計算知識。南京大學(xué)是較早開展高性能計算教學(xué)的高校,通過近幾年教學(xué)經(jīng)驗的總結(jié),我們探索出了一個相對穩(wěn)定的高性能計算課程的教學(xué)模式和教學(xué)內(nèi)容結(jié)構(gòu),在實際講授過程中取得了不錯的效果。
1 高性能計算課程的內(nèi)容設(shè)置
由于高性能計算課程的授課對象主要是即將或者已經(jīng)開始進行科學(xué)計算相關(guān)工作的學(xué)生,因此課程的內(nèi)容設(shè)置必須能滿足他們的科研工作需要,并且具有更多的實用性。在這樣的前提下,我們就需要合理增加與科研工作相關(guān)的作業(yè)調(diào)度系統(tǒng)、并行編程等方面的內(nèi)容,而相應(yīng)減少操作系統(tǒng)原理、集群管理等方面的內(nèi)容。表1列出了我們所總結(jié)出來的比較合理的“高性能計算”課程課時安排。這些課程內(nèi)容不僅有提高學(xué)生學(xué)習(xí)興趣的高性能計算發(fā)展歷史介紹,也包括了基礎(chǔ)的Linux知識和并行編程知識,還包括了高性能計算在不同學(xué)科中的具體應(yīng)用示例,并結(jié)合最近比較熱門的人工智能相關(guān)知識,從多個方面幫助學(xué)生盡快掌握高性能計算知識。下面將分四個方面分別介紹該課程所安排的具體內(nèi)容。
1.1 Linux基礎(chǔ)知識
高性能計算機集群一般運行的都是Linux操作系統(tǒng)。不了解Linux的基本知識,往往要被高性能計算拒之門外,不懂Linux就相當(dāng)于在微軟Windows操作系統(tǒng)中使用畫圖程序但不知道如何使用鼠標(biāo)一樣。因此,在學(xué)習(xí)其他技能之前,學(xué)生必須掌握一定的Linux基礎(chǔ)知識[3-6]。在介紹完高性能計算的發(fā)展歷史和計算機集群架構(gòu)后,本課程將首先介紹用戶管理、進程管理、常用網(wǎng)絡(luò)命令、系統(tǒng)監(jiān)控命令等基本Linux操作命令,并穿插講解進程、線程、地址空間等編寫并行程序時會接觸的內(nèi)容。
Linux系統(tǒng)上的文件系統(tǒng)與Windows系統(tǒng)上有著很大的區(qū)別。學(xué)生還需掌握Linux的樹型目錄結(jié)構(gòu),了解系統(tǒng)特定文件目錄的位置和作用,以及對文件、目錄的權(quán)限管理等。大型的高性能計算機集群一般都使用并行文件系統(tǒng),我們也應(yīng)對Linux的并行文件系統(tǒng)作簡單的介紹。