吳建平 汪祥 楊錦輝 銀福康 彭軍
摘? 要:并行計算技術(shù)課程是在大氣海洋環(huán)境數(shù)值模擬對大規(guī)??茖W(xué)與工程計算的需求越來越大的背景下開設(shè)的,但自開設(shè)以來,還存在教學(xué)內(nèi)容過多、各知識點(diǎn)之間邏輯關(guān)系不十分清晰與講授順序不太合理等問題。該文基于對教學(xué)內(nèi)容先按知識點(diǎn)進(jìn)行劃分,再基于教學(xué)目標(biāo)牽引,利用圖論技術(shù)進(jìn)行知識點(diǎn)間依賴關(guān)系分析的方法,對教學(xué)內(nèi)容進(jìn)行精簡與模塊重新組織,以改進(jìn)教學(xué)內(nèi)容的針對性與知識點(diǎn)間的順暢性,提升教學(xué)質(zhì)量與學(xué)生學(xué)習(xí)效果。
關(guān)鍵詞:并行計算;教學(xué)內(nèi)容;模塊化;依賴關(guān)系;圖論
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)志碼:A? ? ? ? ? 文章編號:2096-000X(2023)17-0095-04
Abstract: The course of Parallel Computing Technology is set up under the background of the increasing demand for large-scale scientific and engineering calculation by numerical simulation of atmospheric and marine environment. However, since its establishment, there are still many problems, such as too many teaching contents, unclear logical relationship between knowledge points and unreasonable teaching sequence. Based on the division of teaching contents according to knowledge points, and then based on the direction of teaching objectives, the graph theory technology is used to analyze the dependence between knowledge points. The teaching content is simplified and reorganized to improve the focalization of teaching content and the rationality of the order of knowledge points, and to improve the teaching quality and students' learning effect.
Keywords: Parallel Computing; course content; modularization; dependency; Graph theory
大氣海洋環(huán)境數(shù)值模擬是采用偏微分方程組對大氣海洋狀態(tài)演變規(guī)律進(jìn)行數(shù)學(xué)建模,并采用數(shù)值方法進(jìn)行求解,從初始狀態(tài)進(jìn)行未來狀態(tài)預(yù)測的一種客觀與定量預(yù)測方法,已越來越成為天氣預(yù)報與海洋環(huán)境預(yù)報的主流方法。該方法不僅涉及到狀態(tài)在時間維度上的演變,而且涉及到方程組在三維空間中的離散,形成離散網(wǎng)格,并在眾多網(wǎng)格點(diǎn)或網(wǎng)格中心上進(jìn)行計算,導(dǎo)致計算量巨大問題,而業(yè)務(wù)數(shù)值預(yù)報又對實(shí)時性要求很高,因此,采用高性能計算機(jī)進(jìn)行并行數(shù)值模擬成為必然選擇。歐洲中期天氣預(yù)報中心、美國國家環(huán)境預(yù)報中心、英國氣象局、法國氣象局、德國氣象局、日本氣象廳與加拿大環(huán)境部等在內(nèi)的眾多先進(jìn)數(shù)值預(yù)報中心,都采用了非常先進(jìn)的高性能計算機(jī)與高計算效率的數(shù)值預(yù)報系統(tǒng),來進(jìn)行業(yè)務(wù)數(shù)值預(yù)報。
作為我國專門從事大氣海洋環(huán)境數(shù)值預(yù)報技術(shù)研究與系統(tǒng)研制的單位之一,國防科技大學(xué)從20世紀(jì)80年代起即開始進(jìn)行數(shù)值預(yù)報系統(tǒng)研發(fā),并深刻認(rèn)識到并行計算技術(shù)在數(shù)值預(yù)報實(shí)時性問題中的重要地位并進(jìn)行了長期的技術(shù)積累。但自2017年學(xué)校進(jìn)行重新組建并重組氣象海洋學(xué)院以來,一方面是隨著模式分辨率的不斷提升與模式本身復(fù)雜性的不斷提高,并行計算技術(shù)在數(shù)值預(yù)報中的重要性有增無減。另一方面,既沒有專門針對數(shù)值預(yù)報并行計算的本科生課程,也尚未在學(xué)校層面開設(shè)并行計算技術(shù)方面的公共課程。正是在該背景之下,在進(jìn)行大氣科學(xué)專業(yè)課程體系重新設(shè)計時,規(guī)劃了并行計算技術(shù)課程,制訂了相應(yīng)的教學(xué)計劃,并自2018級本科生起開始實(shí)施,旨在使學(xué)員掌握基本的并行計算技術(shù),為利用數(shù)值預(yù)報進(jìn)行氣象海洋環(huán)境保障提供理論基礎(chǔ)和技術(shù)支撐。
在進(jìn)行課程內(nèi)容設(shè)計時,一個很自然的想法是對相關(guān)課程進(jìn)行模塊化設(shè)計。模塊化教學(xué)思想首先由德國與美國高校提出,但主要用于課程體系按模塊來進(jìn)行構(gòu)建[1],旨在將理論教學(xué)與生產(chǎn)實(shí)踐有機(jī)融合,針對不同培養(yǎng)目的開展教學(xué)活動,以培養(yǎng)能夠具備社會實(shí)際需要的應(yīng)用復(fù)合型人才[2]。國內(nèi)在采用模塊化對課程教學(xué)內(nèi)容進(jìn)行設(shè)計方面也進(jìn)行了不少研究。余國江[3]針對高校轉(zhuǎn)型的需要,分析了其核心問題即課程轉(zhuǎn)型的緊迫性、模塊化課程的特點(diǎn)及其在轉(zhuǎn)型中的作用,并從宏觀、中觀、微觀三個層次進(jìn)行了模塊構(gòu)建途徑研究。屈婉玲等[4]對離散數(shù)學(xué)課程教學(xué)內(nèi)容按知識單元進(jìn)行模塊化設(shè)置,以根據(jù)培養(yǎng)目標(biāo)進(jìn)行教學(xué)內(nèi)容的靈活組織。魏英[5]在深入分析大學(xué)計算機(jī)基礎(chǔ)課程教學(xué)所存在問題的基礎(chǔ)上,根據(jù)各部分內(nèi)容相對獨(dú)立的特點(diǎn),對分層模塊化教學(xué)模式進(jìn)行了研究。蘭長林等[6]采取課程內(nèi)容模塊化和教師講授、專題報告研究型教學(xué)模塊化相結(jié)合的方式,開展了模塊化教學(xué)方法研究。這些對模塊化教學(xué)的研究,主要側(cè)重于對課程內(nèi)容的模塊化組織,而對模塊間所涉知識點(diǎn)的相互關(guān)系考慮較少。
對知識點(diǎn)或模塊間關(guān)系的研究上,王燕等[7]針對網(wǎng)絡(luò)課程,提出了利用概念圖進(jìn)行教學(xué)內(nèi)容的建構(gòu)與組織的方法,以避免教學(xué)內(nèi)容出現(xiàn)概念孤立化與知識碎片化的問題,其圍繞不同主題按樹形結(jié)構(gòu)進(jìn)行知識組織,并通過相關(guān)主題、節(jié)點(diǎn)的展開與鏈接,論述了擴(kuò)充學(xué)習(xí)、加深學(xué)習(xí)與補(bǔ)救學(xué)習(xí)的概念。陳雅[8]以認(rèn)知彈性理論為指導(dǎo),采用知識結(jié)構(gòu)圖與超文本技術(shù)相結(jié)合編排教學(xué)內(nèi)容的序列與鏈接,探討了網(wǎng)絡(luò)課程教學(xué)內(nèi)容的組織與呈現(xiàn),其分析了將課程名稱作為根節(jié)點(diǎn)的知識點(diǎn)間有向無環(huán)樹形結(jié)構(gòu)組織形式,以及基于知識點(diǎn)間從屬與先決關(guān)系的排序結(jié)構(gòu)。唐明[9]將教學(xué)內(nèi)容具體化為知識點(diǎn)集合,并對知識點(diǎn)采用串行遞推關(guān)系與并行遞推關(guān)系進(jìn)行層次關(guān)系建模分析。這些研究涉及到了知識點(diǎn)間的相關(guān)關(guān)系,并部分提到采用樹形與網(wǎng)絡(luò)等方式進(jìn)行知識組織的思想,但很少涉及如何進(jìn)行具體組織的問題。
本文針對并行計算技術(shù)課程教學(xué)內(nèi)容,在目前已有知識點(diǎn)按模塊進(jìn)行組織的基礎(chǔ)上,針對教學(xué)內(nèi)容過多、各知識點(diǎn)間講授先后順序不太合理等問題,在對教學(xué)內(nèi)容按知識點(diǎn)進(jìn)行劃分的基礎(chǔ)上,利用圖論技術(shù)進(jìn)行知識點(diǎn)間依賴關(guān)系分析,再基于教學(xué)目標(biāo)牽引對教學(xué)內(nèi)容進(jìn)行精簡,并對各教學(xué)模塊內(nèi)容進(jìn)行重組,以改進(jìn)對課程教學(xué)內(nèi)容的設(shè)置。
一? 教學(xué)內(nèi)容基于圖論的模塊化優(yōu)化設(shè)計
目前,并行計算技術(shù)課程的教學(xué)內(nèi)容組織為兩大部分共6個模塊,其中第一部分主要側(cè)重于理論知識,包括并行計算基本概念、并行計算所涉軟硬件基礎(chǔ)、并行計算基本原理與方法3個模塊;第二部分側(cè)重于實(shí)踐,包括并行計算環(huán)境基礎(chǔ)、OpenMP并行編程基礎(chǔ)、MPI并行編程基礎(chǔ)3個模塊。
第一部分的知識中,并行計算基本概念模塊包括并行計算的意義、并行計算思維、并行處理的三要素、問題規(guī)模、并行度、任務(wù)分解、數(shù)據(jù)相關(guān)性、機(jī)器規(guī)模、任務(wù)調(diào)度、負(fù)載平衡、并行執(zhí)行時間、并行開銷、加速比、并行效率、同步、死鎖、Amdahl定律和Gustafson定律等知識點(diǎn);并行計算所涉軟硬件基礎(chǔ)模塊包括并行計算存儲結(jié)構(gòu)、并行計算互連結(jié)構(gòu)、并行計算模型和并行計算軟件基礎(chǔ)等知識點(diǎn);并行計算基本原理與方法模塊包括數(shù)據(jù)并行設(shè)計模式、任務(wù)分解概述、輸出數(shù)據(jù)劃分技術(shù)、輸入數(shù)據(jù)劃分技術(shù)、任務(wù)調(diào)度概述、塊分布調(diào)度方法、循環(huán)塊分布調(diào)度方法、分布存儲并行計算原理、SPMD與MPMD、問題規(guī)模的影響、并行度的影響、通信次數(shù)的影響、計算通信重疊的影響、共享存儲并行計算原理、指導(dǎo)語句數(shù)的影響和訪存沖突的影響等知識點(diǎn)。
第二部分的知識中,并行計算環(huán)境基礎(chǔ)包括Redhat Linux基礎(chǔ)環(huán)境、gcc編譯器及其安裝、OpenMP并行計算環(huán)境驗證、MPI并行計算環(huán)境配置和MPI并行計算環(huán)境驗證等知識點(diǎn);OpenMP并行編程基礎(chǔ)包括OpenMP簡介、動態(tài)域與靜態(tài)域、OpenMP編譯指導(dǎo)語句格式、OpenMP中的條件編譯、OpenMP中的parallel語句、OpenMP中的for指導(dǎo)語句、OpenMP中的同步指導(dǎo)語句、OpenMP中的函數(shù)和OpenMP中的環(huán)境變量等知識點(diǎn);MPI并行編程基礎(chǔ)包括MPI簡介、MPI程序的一般結(jié)構(gòu)、MPI中的6個基本函數(shù)、MPI中的點(diǎn)對點(diǎn)通信、MPI中的數(shù)據(jù)類型、MPI中聚合通信操作、Jacobi迭代的并行計算和WRF模式的并行計算等知識點(diǎn)。
現(xiàn)在對并行計算技術(shù)課程所有知識點(diǎn)之間的依賴關(guān)系進(jìn)行建模,當(dāng)知識點(diǎn)A的講授需要以先講授知識點(diǎn)B為前提時,稱知識點(diǎn)A依賴于知識點(diǎn)B。例如,“并行開銷”依賴于“并行計算思維”“并行執(zhí)行時間”“機(jī)器規(guī)?!薄柏?fù)載平衡”與“同步”。這樣,每個知識點(diǎn)可能依賴于其他的知識點(diǎn)。由于進(jìn)行上述知識點(diǎn)的劃分時,知識點(diǎn)已經(jīng)足夠細(xì)到彼此之間不會出現(xiàn)相互依賴,即如果知識點(diǎn)A依賴于知識點(diǎn)B,則知識點(diǎn)B不可能反過來再依賴于知識點(diǎn)A,因此,如果知識點(diǎn)A依賴于知識點(diǎn)B,就引一條從知識點(diǎn)A到知識點(diǎn)B的邊,則所有知識點(diǎn)之間的依賴關(guān)系給出的是一個有向無回路圖[10]。
在按上述方式進(jìn)行建模時,所得到的有向無回路圖G中可能由于依賴關(guān)系較復(fù)雜,導(dǎo)致邊數(shù)很多,而使得有向無回路圖顯得相當(dāng)雜亂,不便進(jìn)行后續(xù)分析。另一方面,我們在進(jìn)行知識點(diǎn)講授時,只需要知道知識點(diǎn)之間有依賴路徑即可,而并無必要考慮每個知識點(diǎn)依賴的所有其他知識點(diǎn)。換句話說,如果圖中存在從知識點(diǎn)A到知識點(diǎn)B的一條有向路徑,則意味著已經(jīng)得知知識點(diǎn)A需要在知識點(diǎn)B講授完之后才能進(jìn)行講授,因此,此時知識點(diǎn)A到知識點(diǎn)B之間的有向邊完全沒有必要給出。假設(shè)知識點(diǎn)個數(shù)為n,如果將圖G對應(yīng)到一個邏輯矩陣M,并對知識點(diǎn)進(jìn)行標(biāo)號,第k個知識點(diǎn)對應(yīng)于圖G中的結(jié)點(diǎn)k,第i個知識點(diǎn)依賴于第j個知識點(diǎn)則mij取值為真,否則取值為假,則可以通過依次計算M1、M2直到Mn并檢查每2個知識點(diǎn)間是否出現(xiàn)路徑,并在出現(xiàn)路徑時直接刪除其間可能存在的有向邊。
在如上處理后,并行計算技術(shù)課程各知識點(diǎn)之間的依賴關(guān)系進(jìn)行了大幅簡化,具體如圖1所示。從圖1清晰可見,知識點(diǎn)講授時應(yīng)嚴(yán)格遵循的先后順序。例如,在講授“同步”之前,先要講授“數(shù)據(jù)相關(guān)性”,而在此之前,又要先講授“任務(wù)分解”,而在講授“任務(wù)分解”之前,又必須先講授“問題規(guī)模”與“并行計算思維”。此外,如果課時有限,從圖1中可以清晰地發(fā)現(xiàn)哪些知識點(diǎn)不會被其他知識點(diǎn)所依賴,在這些知識點(diǎn)對教學(xué)目標(biāo)的實(shí)現(xiàn)不太重要時,即完全可以直接刪除以進(jìn)行內(nèi)容的精簡。對并行計算技術(shù)課程,教學(xué)目標(biāo)主要是使學(xué)員掌握基本的并行計算技術(shù),為利用數(shù)值預(yù)報進(jìn)行氣象海洋環(huán)境保障提供理論基礎(chǔ)和技術(shù)支撐,而具體編程實(shí)踐實(shí)際上是永無止境的,只要引學(xué)生入門即可。鑒于總課時數(shù)只有24學(xué)時,且從前幾年的實(shí)際經(jīng)驗看,目前課程內(nèi)容過多,確需壓減課堂內(nèi)容,為此,結(jié)合圖1,顯然易見,可以壓減其中“Amdahl定律”“Gustafson定律”“并行計算模型”“動態(tài)域與靜態(tài)域”“OpenMP編譯指導(dǎo)語句格式”“OpenMP中的條件編譯”“OpenMP中的同步指導(dǎo)語句”“OpenMP中的函數(shù)”“MPI中的數(shù)據(jù)類型”和“MPI中聚合通信操作”等知識點(diǎn)。
此外,通過圖1所示的有向無回路圖,還可以檢查目前各模塊中知識點(diǎn)設(shè)置的合理性,即可以檢查在進(jìn)行課程內(nèi)容教學(xué)實(shí)施時,知識點(diǎn)之間的依賴關(guān)系是否能夠得到滿足。顯然,目前大部分知識點(diǎn)在模塊中的歸屬是合理的,但“OpenMP簡介”原來安排在“MPI并行編程基礎(chǔ)”模塊進(jìn)行介紹,實(shí)際上在“并行計算環(huán)境基礎(chǔ)”模塊的“OpenMP并行計算環(huán)境驗證”知識點(diǎn)之前應(yīng)該講授,否則,將造成模塊之間的相互依賴關(guān)系,引起教學(xué)實(shí)施上的不順暢。“MPI簡介”也具有類似問題。因此,“OpenMP簡介”與“MPI簡介”這2個知識點(diǎn)應(yīng)分別從“OpenMP并行編程基礎(chǔ)”“MPI并行編程基礎(chǔ)”移到“并行計算環(huán)境基礎(chǔ)”模塊中,使得“并行計算環(huán)境基礎(chǔ)”模塊的知識點(diǎn)依次包括“Redhat Linux基礎(chǔ)環(huán)境”“OpenMP簡介”“gcc編譯器及其安裝”“OpenMP并行計算環(huán)境驗證”“MPI簡介”“MPI并行計算環(huán)境配置”和“MPI并行計算環(huán)境驗證”。此外,在每個模塊內(nèi),知識點(diǎn)之間也應(yīng)遵循圖1所給出的嚴(yán)格順序關(guān)系,例如,對“并行計算基本概念”模塊中知識點(diǎn)進(jìn)行講授時,部分需要進(jìn)行先后順序的重新安排。在綜合考慮內(nèi)容精簡與知識點(diǎn)的重新組織后,優(yōu)化前后各模塊中知識點(diǎn)的教學(xué)實(shí)施順序見表1,其中,無論對兩模塊還是兩知識點(diǎn),列于前者應(yīng)該先行進(jìn)行教學(xué)實(shí)施。
二? 結(jié)束語
并行計算技術(shù)課程雖然在開設(shè)時,已經(jīng)按模塊化方式進(jìn)行了教學(xué)計劃的詳細(xì)設(shè)計,但在教學(xué)實(shí)施過程中發(fā)現(xiàn)還存在教學(xué)內(nèi)容過多、各知識點(diǎn)之間邏輯關(guān)系不十分清晰、講授順序不太合理等問題,本文通過對知識點(diǎn)依賴關(guān)系采用有向無回路圖進(jìn)行建模,采用從圖中去除對教學(xué)目標(biāo)影響小且不被依賴的知識點(diǎn)來縮減教學(xué)內(nèi)容、基于圖中知識點(diǎn)間依賴關(guān)系對模塊間與模塊內(nèi)知識點(diǎn)進(jìn)行重組的方法,對教學(xué)內(nèi)容的精簡與重組進(jìn)行了優(yōu)化設(shè)計。
參考文獻(xiàn):
[1] 米潔,黃民.基于模塊化知識體系的創(chuàng)新實(shí)踐能力培養(yǎng)教學(xué)改革[J].中國大學(xué)教學(xué),2014(9):37-40.
[2] 于婷婷.“互聯(lián)網(wǎng)+”視域下高校模塊化教學(xué)探究[J].中國成人教育,2018(4):89-91.
[3] 余國江.課程模塊化:地方本科院校課程轉(zhuǎn)型的路徑探索[J].中國高教研究,2014(11):99-102.
[4] 屈婉玲,王元元,傅彥,等.“離散數(shù)學(xué)”課程教學(xué)實(shí)施方案[J].中國大學(xué)教學(xué),2011(1):39-41.
[5] 魏英.大學(xué)計算機(jī)基礎(chǔ)分層模塊化教學(xué)改革研究與實(shí)踐[J].西北工業(yè)大學(xué)學(xué)報(社會科學(xué)版),2012,32(3):105-106.
[6] 蘭長林,趙江濤,崔瑩,等.“模塊化”教學(xué)法在《原子核物理學(xué)》課程中的探索與應(yīng)用[J].教育教學(xué)論壇,2019(18):215-216.
[7] 王燕,周艷潔.基于概念圖的網(wǎng)絡(luò)課程教學(xué)內(nèi)容的組織探究[J].軟件導(dǎo)刊(教育技術(shù)),2014,13(12):5-7.
[8] 陳雅.基于認(rèn)知彈性理論的網(wǎng)絡(luò)課程教學(xué)內(nèi)容的組織[J].中國成人教育,2014(13):141-143.
[9] 唐明.面向復(fù)雜工程問題的高校課堂教學(xué)內(nèi)容組織方法淺論[J].教育現(xiàn)代化,2019,6(80):227-228.
[10] 吳建平,王正華,李曉梅.稀疏線性方程組的高效求解與并行計算[M].長沙:湖南科學(xué)技術(shù)出版社,2004.