鄭 紅 李建華 郭衛(wèi)斌 龐毅林
摘要:本文根據(jù)我系的“教育部-Intel精品課程”建設(shè)項目課程建設(shè)經(jīng)驗,探討了面向計算機(jī)科學(xué)與技術(shù)專業(yè)本科生的并行與分布計算課程的實驗教學(xué)的內(nèi)容和設(shè)計。
關(guān)鍵詞:并行與分布計算;實驗教學(xué);教學(xué)改革
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
隨著計算機(jī)技術(shù)的發(fā)展,作為計算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生迫切需要掌握各種新型并行與分布式計算的理論、模型、方法和技術(shù),以適應(yīng)社會對人才不斷增長的需求,因此,近年來,我系為計算機(jī)科學(xué)與技術(shù)專業(yè)本科生開設(shè)了并行與分布計算課程,這門課程培養(yǎng)目標(biāo)主要是普及并行計算技術(shù),使廣大的程序設(shè)計與開發(fā)者可以發(fā)揮超級計算、分布計算的優(yōu)勢;同時,這門課程也是一門實踐性很強(qiáng)的課程,除了系統(tǒng)的課堂理論學(xué)習(xí)外,還需要配有足夠數(shù)量的實驗內(nèi)容,以便鞏固和加深學(xué)生對并行算法理論、設(shè)計技術(shù)、分析方法和具體實現(xiàn)等各個環(huán)節(jié)的整體理解。為此,課程組針對本科教學(xué)的特點,采用泛講、精講和實驗相結(jié)合的方式,設(shè)計了相應(yīng)的實驗來顯式地說明所教授的理論,根據(jù)并行與分布計算技術(shù)的本身特點,以及我校課程體系的設(shè)置情況,并行與分布計算技術(shù)涵蓋了從單機(jī)、“多核”、SMP、集群、到Grid的各種尺度的并行技術(shù),將課程平臺建立在系統(tǒng)結(jié)構(gòu)、算法、程序設(shè)計實踐等方面,建立了并行和分布計算的全面的課程體系。
2008年4月,作為Intel大學(xué)合作計劃的合作伙伴,華東理工大學(xué)派遣本課程的授課教師參加了相關(guān)技術(shù)培訓(xùn),該課程進(jìn)入“Intel大學(xué)合作計劃”。2008年5月,雙方正式簽署了合作協(xié)議,Intel公司捐贈了部分相關(guān)實驗設(shè)備。2008年6月,華東理工大學(xué)的并行與分布計算課程被批準(zhǔn)為2008年度“教育部-Intel精品課程”建設(shè)項目。
1實驗條件
根據(jù)并行與分布計算技術(shù)的本身特點,以及我校課程體系的設(shè)置情況,并行與分布計算技術(shù)涵蓋了從單機(jī)、“多核”、SMP、集群、到Grid的各種尺度的并行技術(shù)。將課程平臺建立在系統(tǒng)結(jié)構(gòu)、算法、程序設(shè)計實踐等方面,建立了并行和分布計算的全面的課程體系。在本課程開展初期,由于實驗條件的限制,本課程的教學(xué)主要是采用理論教學(xué)和單機(jī)實驗為主。Intel多核計算機(jī)的出現(xiàn),為教師和學(xué)生提供了良好的實驗條件。本課程將Intel多核架構(gòu)增加到本課程的系統(tǒng)結(jié)構(gòu)部分,在程序設(shè)計時重點介紹OpenMP、MPI和微軟的超線程技術(shù)及其在Intel多核架構(gòu)上實現(xiàn);在硬件建設(shè)上,建立了多核專業(yè)實驗室,用于學(xué)生的實踐操作;軟件建設(shè)上,建立了OpenMP、MPI編程環(huán)境,從而使學(xué)生能很方便的進(jìn)行并行程序設(shè)計及多核架構(gòu)實踐活動。
經(jīng)過了數(shù)年教學(xué)實踐,本課程組編寫了實驗指導(dǎo)講義,通過上機(jī)實驗和課外創(chuàng)新實踐活動,使學(xué)生能夠更扎實地理解和掌握并行和分布計算的基本理論和實現(xiàn)技術(shù)。
目前在本校計算機(jī)教學(xué)實驗中心建立了兩個多核計算機(jī)實驗室,擁有多核微機(jī)100多臺,并在這些機(jī)器上安裝相應(yīng)的開源軟件,使得學(xué)生能在該實驗室內(nèi)設(shè)計和實踐并行程序。在Web服務(wù)器上建立了本課程的教學(xué)資料和輔導(dǎo)材料的網(wǎng)站,包括課程介紹、教學(xué)資源、教學(xué)實驗等內(nèi)容,使得學(xué)生能夠通過互聯(lián)網(wǎng)進(jìn)行學(xué)習(xí)。此外,還計劃組織安排學(xué)生參觀我校的上海超級計算中心分中心。
2實驗教學(xué)
緊密結(jié)合本學(xué)科和專業(yè)特點,根據(jù)學(xué)生知識結(jié)構(gòu)因材施教,本課程實驗教學(xué)注重學(xué)生對并行程序設(shè)計的掌握,強(qiáng)調(diào)對學(xué)生“創(chuàng)新性能力”的培養(yǎng),提高學(xué)生解決實際問題的能力。
2.1實驗內(nèi)容
課程基礎(chǔ)實驗注重提高學(xué)生掌握基于多核架構(gòu)的并行計算編程技術(shù)的能力,包括了在Windows和Linux操作系統(tǒng)下的多核基礎(chǔ)編程及各個工具軟件的使用。實驗包括了在Windows和Linux操作系統(tǒng)下的多核架構(gòu)的熟悉、基于多核的基礎(chǔ)編程及各個工具軟件的使用。對基礎(chǔ)實驗的考核指標(biāo):完成時間與性能參數(shù)。對基礎(chǔ)實驗的設(shè)計,將Intel多核架構(gòu)增加到本課程的系統(tǒng)結(jié)構(gòu)部分,在程序設(shè)計時重點介紹OpenMP多線程技術(shù)及其在Intel多核架構(gòu)上實現(xiàn);在硬件建設(shè)上,建立多核專業(yè)實驗室,用于學(xué)生的實踐操作;軟件建設(shè)上,建立OpenMP編程環(huán)境,使學(xué)生能很方便的進(jìn)行編程實踐活動。
(1) 多核軟件設(shè)計技術(shù)
主要講授基于Windows和Linux等操作系統(tǒng)平臺上多線程程序設(shè)計的基本操作系統(tǒng)原語,如Windows平臺上的多線程API接口函數(shù),包括線程創(chuàng)建、撤銷、掛起/恢復(fù)、優(yōu)先級設(shè)置、睡眠、臨界區(qū)等。以及OpenMP的基本設(shè)計方法,以期讓學(xué)生掌握使用多線程方法進(jìn)行多核軟件設(shè)計的基本技能。
(2) 并行程序設(shè)計基本方法
主要講授并行計算程序設(shè)計的一般原理和并行程序設(shè)計實例。通過對兩個經(jīng)典串行問題(優(yōu)先級查找和K值算法)并行化改造過程的實驗,提高分析和解決問題的能力,以及實際動手編程的能力。
(3) 工具軟件的使用
工具軟件包括:Intel C++和Fortran編譯器、Intel數(shù)學(xué)核心函數(shù)庫和Intel集成性能元件庫、Intel TuneTM性能分析器、Intel線程檢測器和Intel調(diào)試器、Intel線程直方統(tǒng)計器等。這些基本工具的熟練使用能力可為實際環(huán)境中多核技術(shù)的運用打好堅實的基礎(chǔ)。由于基于多核的編程與操作系統(tǒng)環(huán)境和編譯有密切的關(guān)系,所以在講解編程工具使用方法之前,主要介紹多核編譯的知識以及操作系統(tǒng)對多核的支持。
2.2實驗設(shè)計和基本要求
對于這門課的實驗教學(xué),課程主講教師直接指導(dǎo)實驗各個環(huán)節(jié)。實驗強(qiáng)調(diào)學(xué)生對多核架構(gòu)及編程技術(shù)的掌握和實際運用能力的培養(yǎng)和訓(xùn)練。試驗的目的不是“為學(xué)習(xí)而學(xué)習(xí),為編程而編程”,而是著重于提高學(xué)生在本學(xué)科領(lǐng)域中多核技術(shù)的應(yīng)用能力,注重“個性化”和創(chuàng)新能力的培養(yǎng),提高學(xué)生靈活運用知識的能力。
依托學(xué)校Intel實驗室平臺,我們的實驗設(shè)計主要針對兩種情況,一種是配合本課程核心教學(xué)內(nèi)容學(xué)生獨立完成指定的實驗任務(wù),包括問題分析、總體設(shè)計、上機(jī)實現(xiàn)、調(diào)試與部署、觀察并記錄結(jié)果等步驟,實驗的學(xué)時數(shù)16學(xué)時,學(xué)生需要提前預(yù)習(xí),每個試驗大約4學(xué)時的實驗時間。要求每一位學(xué)生都要參與本課程的上機(jī)實驗環(huán)節(jié),在實驗前充分做好實驗準(zhǔn)備,在實驗過程中認(rèn)真記錄實驗情況與結(jié)果,在實驗后做好總結(jié),并提交實驗報告。根據(jù)學(xué)生的上機(jī)實驗結(jié)果,以及提交的實驗報告綜合評價學(xué)生的本課程的成績。
其中每個學(xué)生必須獨立完成以下實驗中的四個:
① Intel多核計算機(jī)上OpenMP的配置;
② OpenMP環(huán)境下PI計算(并行域并行化);
③ OpenMP環(huán)境下PI計算(共享任務(wù)結(jié)構(gòu)并行化);
④ OpenMP環(huán)境下PI計算(并行歸約并行化);
⑤ MPI的配置;
⑥ MPI環(huán)境下PI的計算。
另外,我們還根據(jù)學(xué)校的“大學(xué)生創(chuàng)新實踐”活動,建立一些實踐性的實驗設(shè)計課題,如排隊模型、數(shù)據(jù)挖掘等,以拓寬課程設(shè)計內(nèi)涵和內(nèi)容,同時對學(xué)生開放專業(yè)實驗室,讓更多的學(xué)生可以利用實驗室平臺進(jìn)行業(yè)余時間的創(chuàng)新活動,促進(jìn)學(xué)生學(xué)習(xí)。
通過以上各種措施,豐富了教學(xué)形式,極大地提高了學(xué)生學(xué)習(xí)的積極性和創(chuàng)造性實踐的能力,使教學(xué)質(zhì)量達(dá)到一個新的高點。
3總結(jié)
并行計算系列課程是一門實踐性很強(qiáng)的課程,除了系統(tǒng)的課堂理論學(xué)習(xí)外,還需要配有豐富的實驗內(nèi)容,以鞏固和加深學(xué)生對并行算法理論、設(shè)計技術(shù)、分析方法和具體實現(xiàn)等各個環(huán)節(jié)的整體理解。實踐證明,這些實驗教學(xué)環(huán)節(jié)是十分重要的,它可以激發(fā)學(xué)生學(xué)習(xí)并行與分計算的積極性,從而縮小理論教學(xué)和實際應(yīng)用能力之間的差距,培養(yǎng)學(xué)生的學(xué)習(xí)興趣和自我探索創(chuàng)新能力,為學(xué)生今后的工作和學(xué)習(xí)打下良好的基礎(chǔ)。
參考文獻(xiàn):
[1] 陳國良,孫廣中,等.并行計算課程的教學(xué)方法[J].中國大學(xué)教學(xué),2004(2).
[2] M. Paprzycki, Integrating Parallel and Distributed Computing in Computer Science Curricula, IEEE Distributed Systems Online, 2006, 7(2).