前言:尋找寫作靈感?中文期刊網用心挑選的并行計算課程教學方法,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
摘要:結合在并行編程實踐和《并行計算》課程教學經驗,分析了面向非計算機專業學生的《并行計算》課程的設計原則和目標,探索了《并行計算》課程的教學內容設計。通過基礎知識與并行編程知識講授并重、講授與實做并重的授課方式,重點培養學生應用并行計算解決實際應用問題的能力。
關鍵詞:并行計算;教學方法;探討
一課程設計原則和目標
(一)設計原則
《并行計算》課程的學習內容主要包括:并行算法設計、并行計算機體系結構和并行編程三部分[1]。該課程面向的學員大部分為船舶與海洋工程專業,具有明顯的跨學科的特點,課程教學的最終目的是培養學生用并行計算的思想解決相關領域內具體應用問題的并行求解的能力,因此,課程應在圍繞基本理論開展的同時,針對學生的具體情況,結合船舶與海洋工程專業各領域對并行計算應用的具體需求開展設計,避免出現重理論、輕實踐的情況。
(二)設計目標
根據《并行計算》課程的特點和授課對象的特點,課程設計目標如下: (1)在教學內容上,講授必要的計算機結構、編程的基礎知識,彌補非計算機專業學生計算機基礎知識的不足;(2)為了達到與各專業實際應用相結合的目的,根據不同專業應用背景設置具體的實做內容;同時,課程進行中引導不同專業學生之間對各自的并行計算問題進行交流與總結,達到相互學習,共同進步的目的。
二教學內容設計
根據課程的總體規劃,《并行計算》課程的教學內容分為講授和實做兩部分,講授部分主要包括:基本知識點、并行算法設計和實現、典型應用問題并行算法設計等內容的講授,實做部分主要包括:熟悉并行計算機和編程環境,典型數值計算方法并行算法實現,專業應用問題并行算法設計與實現及討論。
(一)講授
(1)基礎知識點
《并行計算》課程基礎知識點的講授主要包括五部分內容,一是普及非計算機專業學生關于并行計算系統的基本知識,二是以MPI為例講授消息傳遞并行編程的基本思想和方法,三是講解并行程序的性能評價和優化方法[3],四是以OpenMP為例講授共享存儲并行編程的基礎知識,五是講授MPI+OpenMP混合編程的方法和實現。1)并行計算概述。首先,從對并行計算應用需求談起,介紹并行計算的應用方向和領域;接著,給出并行計算的概念,包括:并行計算的定義、高性能計算機TOP排名、并行計算分類等;然后,介紹國內外并行計算發展歷史,結合并行計算機的發展歷程講授向量機、共享存儲多處理機計算機、分布式共享存儲并行計算機、大規模并行計算機、集群等概念;最后,結合本單位在并行計算研究和應用中取得的成果,講授并行計算在實際中的具體應用。2)并行計算機體系結構與編程模型。結合具體的超級計算機示例,首先介紹并行計算機的體系結構相關的知識點;再講授進程與線程這兩個核心概念和編程環境;最后介紹并行編程模型和并行程序設計的基本思想。3)MPI消息傳遞并行編程。講授內容主要包括:基礎概念、基礎編程、高級編程三部分。其中基礎概念包括:MPI發展歷史、MPI實現種類、MPI程序的一般結構、MPI程序的編譯與運行、MPI數據類型以及6個最基本的MPI調用等內容;基本編程主要結合一些容易理解和實現應用問題的并行實現,介紹編寫基本MPI程序的相關知識點,具體包括MPI程序設計的基本模式、通信域、消息、點對點通信等相關概念;高級編程主要結合實際案例介紹編寫高效MPI程序的相關知識點,以ð值數值并行求解為例,分別使用點對點、聚合通信對其進行實現,分析比較不同實現方法的優缺點和使用范圍。4)并行程序性能評價和優化方法。講授內容主要包括基本概念、并行程序性能評價方法、并行程序性能優化方法等內容。其中,基本概念主要包括:并行程序執行時間、加速比、效率等內容;性能評價方法,主要講述:加速比、數值效率、并行效率的概念;性能優化,分別講述串行程序性能優化、并行程序性能優化的常用方法。5)OpenMP共享存儲并行編程。講授內容主要包括:基礎概念、OpenMP指導語句、數據環境控制三部分。其中,基礎概念包括:OpenMP發展歷史、OpenMP指導語句、OpenMP存儲模型等內容;OpenMP指導語句部分包括:parallel結構、工作共享結構、Tasking子句、結構嵌套規則等內容;數據環境控制包括:變量共享和私有、并行域邊界數據處理、數據環境控制等內容。6)MPI+OpenMP混合并行編程。教書內容主要包括:MPI+OpenMP混合編程模式的結構、MPI+OpenMP混合編程模式的實現和性能評價三部分。
(2)并行算法的設計與實現
本部分內容,主要講授如何運用MPI并行編程環境完成數值積分、矩陣相乘、線性方程組求解、FFT等典型的數值求解問題的并行算法設計、實現和程序性能的優化[4,5],同時,以ð的數值求解為例講授MPI+OpenMP混合并行編程模式的設計實現及性能分析。重點培養學生運用并行計算的手段解決實際應用問題的能力。1)數值積分并行求解。以梯形積分公式(ð的數值求解)為例,分別講述如何采用簡單區域分解、主從模式數值積分并行算法設計和實現,并對兩種方法的優缺點和并行程序的執行效率進行分析比較。2)矩陣相乘并行求解。主要講授如何采用行行、行列、列行、列列四種劃分方法實現矩陣相乘的并行算法的設計和實現,并結合并行算法對以上四種劃分方法的計算量和通信量進行比較分析。3)線性方程組并行求解。主要講述LU分解、三對角方程組求解得并行算法的設計和實現。4)FFT求解的并行實現。主要講述一維、二維FFT算法的并行算法設計和實現,及其在多項式相乘、循環矩陣方程組求解中的應用。5)MPI+OpenMP混合并行編程。主要講述如何在SMP集群上,采用MPI+OpenMP二級混合并行編程方法實現ð的數值并行求解,并結合測試結果,比較MPI、OpenMP、MPI+OpenMP三種并行模式的優缺點和使用范圍。
(二)實做與討論
實做與環節采用“基礎十領域”的方式,與講述部分穿插進行,實驗既包含典型的MPI案例編程實現,又包括面向各專業自身領域的并行應用開發。在基礎實驗環節,由每個學生獨立完成,學生結合教師對MPI、OpenMP編程知識點的講授,以ð值并行求解、矩陣相乘、線性方程組并行求解等典型應用計算問題作為研究對象,采用不同的并行算法和通信方式,反復練習和比較分析,強化學生對MPI、OpenMP及混合編程并行編程基礎知識的理解。在領域并行應用開發實驗環節,實做部分主要為選擇2-3個專業領域中常用問題,采用學生做、學生講方式的方式進行,帶領學生一起完成應用問題的并行求解,鍛煉學生應用前面所學的并行算法設計、編程等基礎知識解決學術研究和專業領域內具體問題的并行處理的能力。
(三)考核方式
《并行計算》課程的考核可以采用筆試+實做的考核方式,以考核學生對《并行計算》課程基本知識點的掌握情況和應用并行計算解決實際問題的能力,實現對學生并行計算理解與應用能力的綜合評價。
三總結
隨著并行計算機的普及和應用需求的增長,對并行計算基礎知識的教學提出了新的要求。本文針對并行計算課程,結合作者在教學過程中的經驗和思考,就如何在非計算機專業的學生中開展課程的教與學進行了探討。
參考文獻
[1]張林波,遲學斌,莫則堯,等.并行計算導論[M].北京:清華大學出版社,2006.
[2]徐新海,唐玉華,林宇斐.跨專業并行計算基礎課程教學設計[J].計算機教育,2014,(23):106-109.
[3]MichaelJ.Quinn著,陳文光,武永衛等譯.MPI與OpenMP并行程序設計[M].北京:清華大學出版社,2004.
[4]陳國良,等.并行算法實踐[M].北京:高等教育出版社,2004.
[5]BarryWilkinson,MichaelAllen著,陸鑫達等譯.并行程序設計[M].北京:機械工業出版社,2002.
作者:范培勤 韓梅 單位:海軍潛艇學院