
上海交通大學計算機系胡越明教授與成都電子科技大學計算機科學與工程學院,軟件學院副院長劉乃琦教授對多核分論壇的討論進行了總結。
多核的研發趨勢
英特爾中國軟件中心編譯技術部的林曉東工程師介紹了英特爾正在研發的幾個領域,例如3D芯片、軟件的調動策略,還有英特爾到了4核、8核、……,其平臺將不會有大的變化,使用戶方便采用。
多核對程序教學方面的挑戰
將來英特爾等CPU廠商全部要推多核的芯片,以后就買不到單核的大眾化程序,這樣所有人必須掌握多核的編程技術,這要求我們能夠采用并行的程序設計。
在教學方面,傳統的計算機教學在并行程序方面介紹得比較少。并行程序設計教學方面要有通俗性,可視性。建議開發一個并行的軟件,呈現給同學,使同學們能夠比較清楚地看到問題,使同學在寫程序的時候,能夠意識到我這樣的程序在并行的時候會出現哪些問題。同時,希望能夠有更多的多核教材/網站,使校際之間有一個交流的平臺。
多核課程的開發
具體到多核的知識點,到底在哪些課程里面講解比較合適?這個問題國際上也沒有一個成熟的參考,因為在國際上現在多核的教育也是剛剛開始。
到底在哪方面來講解多核的程序設計?各有各的做法,有的是在操作系統課程里面,有的是在程序設計課程里面。上海交大是在系統結構課里,因為胡越明教授是講系統結構課的。把它放在多處理器系統來介紹,但這樣還不夠,因為講解多核不光是讓同學知道什么叫多核,而是要讓同學知道怎么用多核,例如使學生在多核的平臺上做一個編程的實驗,以更好地認識多核的編程。
事實上,多核技術具有很多研究點和切入點:多核存在的問題需要研究;運行問題;測試問題;與多核有關的系統軟件問題,例如操作系統問題,語言問題;針對多核程序優化的問題;應急系統問題等。
實施多核課程的具體問題
比如怎么來進行多核的編程?英特爾有一個編譯的軟件能夠支持MPR,在這個軟件實驗里面,可以通過幾個例子來發現英特爾的編譯有一個比較好的庫,它的編譯產生的代碼比微軟的速度更快,它是在C語言的基礎上再增加一些編譯指令,使得編譯產生多線程的代碼。所以說這是一種比較容易入門,比較簡單的并行的手段。當然還有其他的手段,上述軟件對并行的控制不是很完善、不是很細的,但是比較容易掌握。所以作為第一步可以推廣,其他的還有一個軟件控制,等于是信息通信的一個ATR的一個標準,它是以收/發消息的方式實現近程通信。這是難度更高的一種程序設計方式,這是面向比較專業的程序員可以用的。
另一個工具可以幫助在編譯的過程中檢查這個程序在多核上執行的時候,會不會產生競爭上的思索?或者是其他的因為并行而引起的問題,它會警告出錯。另外是一個性能的調試工具,因為它可以以圖形的方式來顯示每一個線程時間關系,哪一段時間它是有效地執行,哪一段時間是處于停頓狀態或者是干脆什么都沒有。通過這個程序可以知道哪些地方開銷比較大,可以進行調試、優化。這些東西如果要在教材中灌輸的話,需要有一些平臺。(迎九)
注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”