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