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