王玉柱 張玉清 季曉慧 管建和 夏軍寶
摘要:本文從新工科背景下高性能計算導論課程建設的目標出發(fā),陳述了該課程在國內的教學現(xiàn)狀。在此基礎上,結合自身的教學實踐闡述了課程的設計和實踐教學的探索,分析了教學實踐的效果,強調了動手實踐在課程教學中的重要性。
關鍵詞:高性能計算;實踐教學;教學改革
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2019)25-0097-02
2017年12月,國務院辦公廳《關于深化產教融合的若干意見》提出:“適應新一輪科技革命和產業(yè)變革及新經濟發(fā)展,促進學科專業(yè)交叉融合,加快推進新工科建設”。2018年3月,教育部公布了兩大類612項新工科研究與實踐項目,我國新工科建設的行動已經全面展開[1]。2018年,中國地質大學(北京)信息工程學院負責了兩項新工科研究與實踐項目。在新工科背景下,我院計算機科學與技術教研室開展了計算機科學與技術專業(yè)課程的教學改革與實踐。
近年來,我國高性能計算技術快速發(fā)展,作為科學研究的重要手段,高性能計算已經滲透到科學研究和社會生活的各個方面。在多核計算和大數(shù)據時代,作為計算機科學與技術專業(yè)的學生迫切需要掌握高性能計算的理論、方法和技術,了解高性能計算與其他學科的交叉應用,以適應社會對新工科人才不斷增長的需求。因此,我教研室進行了新大綱改革,為計算機科學與技術專業(yè)本科生開設了高性能計算導論課程。
一、高性能計算課程的現(xiàn)狀
1998年,教育部高等學校計算機科學與技術教學指導委員會將“并行計算”課程定位在高等學校計算機專業(yè)高年級本科生或研究生以及面向計算學科的非計算機專業(yè)的研究生層次上。設置該課程的宗旨是為了我國培養(yǎng)面向21世紀的厚基礎、寬口徑、強能力、高素質,具有時代性多樣化人才的需要[1]。為了培養(yǎng)計算機專業(yè)本科生并行與分布式計算思維與系統(tǒng)能力,國內知名高校已開始面向本科生開設高性能計算相關的課程。比如,清華大學開設了“高性能計算導論”,北京大學開設了“多核編程”,浙江大學開設了“多核計算”、“網格計算和分布式系統(tǒng)”、“并行計算機體系結構和編程”,中國科學技術大學開設了“并行計算”,華中科技大學開設了“并行編程原理與實踐”[2]。
雖然一些名校開設了與高性能計算相關的課程,但是大部分高校仍然沒有開設相關課程,在高性能計算的基礎知識教育方面存在明顯不足,主要原因包括:(1)高性能計算支撐環(huán)境費用昂貴,相關教學研究人員比較匱乏;(2)高性能計算是一門理論與實踐相結合的綜合性課程,涉及的先修知識又較為廣泛,由于學生已經習慣于串行計算的思維和編程模式,對于具有綜合性和復雜性的高性能計算知識結構和內容不容易掌握,以致教學質量不盡如人意。針對教學中面臨的突出問題,高校需要加大對高性能計算環(huán)境的投入,教師需要設計合理的教學實踐內容才能激發(fā)學生的學習興趣,促進學生對知識的吸收理解。
二、課程設計
(一)教學內容
在中國地質大學(北京),高性能計算導論課程為計算機科學與技術專業(yè)大三學生的專業(yè)核心課程,每年在秋季學期授課。根據本課程教學的特點,采用“講授+實踐”相結合的方式。該課程重點為學生講授高性能計算的基本概念、并行計算機體系結構、消息傳遞編程接口MPI和共享編程模型OpenMP。關于該門課程的教學內容,我們設計為六個章節(jié)。第一章:計算的演化發(fā)展。主要講授早期的計算模式、并行/分布式計算、網格計算和云計算。第二章:高性能計算基礎。主要講授高性能計算的基本概念、并行計算性能評估、并行計算機體系結構和存儲結構。第三章:并行程序設計。主要講授并行程序開發(fā)方法、并行程序設計模型和循環(huán)程序并行化的一般方法。第四章:Linux系統(tǒng)和并行環(huán)境。主要講授Linux系統(tǒng)的使用、Linux并行計算平臺搭建及應用。第五章:MPI并行編程。主要講授與MPI相關的基本概念、MPI基本函數(shù)、自定義數(shù)據類型和聚合通信。第六章:OpenMP并行編程。主要講授OpenMP編程制導語句、OpenMP庫函數(shù)和OpenMP計算實例。
(二)教學計劃
高性能計算導論課程共有48學時,其中理論課32學時,實驗課16學時。該課程的課時安排如下表所示。下表中1—6部分屬于理論知識教學,7—10部分屬于實踐知識教學。
三、課程實踐教學的探索
高性能計算導論課程是一門實踐性很強的課程,除了講授基礎的理論知識外,還需要設計相關的實驗內容,以便鞏固和加深學生對并行計算機體系結構、并行編程模型和并行軟件設計與實現(xiàn)的整體理解。
從上表中可以看出,該課程設置了16個學時的實驗內容,具體包括四個實驗:Linux系統(tǒng)的安裝與使用實驗、并行環(huán)境的安裝與使用實驗、MPI并行程序的設計與編寫、OpenMP并行程序的設計與編寫。關于實驗環(huán)境,我們?yōu)閷W生提供了一個Linux集群,供學生做實驗使用,但原則上我們要求學生在公共實驗室的計算機上獨立安裝Linux系統(tǒng)和并行計算環(huán)境,并且這四個實驗要求學生獨立完成,實驗的具體內容如下:(1)實驗一要求掌握Linux系統(tǒng)的安裝和Linux基本命令的使用,學會在Linux系統(tǒng)下編譯和運行C或C++程序。(2)實驗二要求掌握并行計算環(huán)境的搭建與使用,具體是安裝MPICH,構建MPI編程環(huán)境。(3)實驗三要求掌握基于MPI的并行編程方法,具體是編寫課件第五章PPT中的案例,使用SPMD編程模式編寫一個求解π的MPI程序。(4)實驗四要求掌握基于OpenMP的并行編程方法,具體是編寫課件第六章PPT中的案例,編寫求解π的OpenMP程序,編寫求解π的MPI+OpenMP程序。其中,需要編寫4個版本求解π的OpenMP程序,分別是:并行域并行求解、使用for循環(huán)制導計算、使用帶reduction子句的for循環(huán)制導計算、通過private子句和critical制導計算。
該課程實踐教學的考核要求是每位學生需要提交實驗報告一份,并且在實驗報告中需要包含程序代碼、運行結果的截圖、實驗結果分析以及對高性能計算的理解與體會。
四、考核方式及教學效果分析
本課程的學生成績由平時成績、實驗成績和期末成績三部分組成,其中平時成績占10%、實驗成績占30%、期末成績占60%,成績以百分制記。平時成績由出勤、課堂表現(xiàn)和平時作業(yè)等綜合評定。實驗成績更注重考查學生動手編程的能力。通過考核結果分析,我們得出以下結論:(1)該課程的教學達到了教學目標。(2)60%以上的學生成績?yōu)閮?yōu)良,說明課程和實驗內容的設計整體是合理的。(3)大概13%的學生只是達到了及格水平,仍然有一部分學生對高性能計算理論的枯燥性有一定的抵觸。因此,在今后的教學中,我們將進一步凸顯高性能計算的重要性,加大理論與案例相結合的力度,提高學生學習該課程的積極性,爭取獲得更好的教學效果。
五、結語
本課程通過合理的教學和實踐內容設計,理論與實踐相結合的教學方式,以及多種形式的教學方法和考核手段,達到了良好的教學效果,同時,高性能計算技術本身也在不斷地發(fā)展,因此在以后的教學過程中我們將不斷充實新的教學內容,始終保持高性能計算課程內容的前沿性、先進性,從而高質量地完成高性能計算的教學任務。
參考文獻:
[1]陳國良,孫廣中,徐云,吳俊敏.并行計算課程的教學方法[J].中國大學教育,2004,(2):35-37.
[2]陸楓,金海.將并行計算納入本科教育 深化計算機學科創(chuàng)新人才培養(yǎng)[J].高等工程教育研究,2016,(6):108-112.