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