計(jì)算機(jī)硬件技術(shù)的飛速發(fā)展,給計(jì)算機(jī)科學(xué)研究帶來(lái)了新的契機(jī)與挑戰(zhàn)。多核是計(jì)算機(jī)、集成電路發(fā)展的結(jié)果,對(duì)計(jì)算機(jī)教學(xué)產(chǎn)生了深遠(yuǎn)影響。浙江大學(xué)計(jì)算機(jī)專業(yè)在研究生課程“多核計(jì)算”精品課程建設(shè)中積累了一定的經(jīng)驗(yàn);并在本科生中的開設(shè)與推廣進(jìn)行了有益的嘗試。
1 多核課程定位
眾所周知,在計(jì)算機(jī)產(chǎn)業(yè)中,硬件和軟件的發(fā)展一向是相輔相成、互相促進(jìn)的。多核這場(chǎng)硬件的革命自然也帶動(dòng)了軟件的革命。隨著計(jì)算機(jī)體系結(jié)構(gòu)的發(fā)展,多核平臺(tái)得到了越來(lái)越廣泛的應(yīng)用。多核平臺(tái)與并行計(jì)算理論相結(jié)合,以多線程并行的方式使應(yīng)用程序性能大為提高。
結(jié)合多核產(chǎn)業(yè)技術(shù)性和國(guó)際化需求,浙江大學(xué)計(jì)算機(jī)學(xué)院對(duì)多核教學(xué)課程內(nèi)容體系、實(shí)踐體系、教學(xué)方法和手段、實(shí)驗(yàn)環(huán)境建設(shè)、教材與教學(xué)論文建設(shè)、課程推廣等多方面進(jìn)行改革。在結(jié)合浙江大學(xué)計(jì)算機(jī)學(xué)院在體系結(jié)構(gòu)、多核調(diào)優(yōu)軟件這兩方面的優(yōu)勢(shì)的同時(shí),借鑒CC2004和CE2005的課程體系設(shè)計(jì)理念,緊密聯(lián)系學(xué)院各門課程的技術(shù)要點(diǎn),建立系統(tǒng)的面向多核軟件設(shè)計(jì)為主的課程內(nèi)容體系。
概括起來(lái),這個(gè)體系可以分成三個(gè)層次:首先是前序知識(shí)介紹。包括計(jì)算機(jī)體系結(jié)構(gòu)、大規(guī)模集成電路、多核芯片、多核系統(tǒng)軟件、并行編譯技術(shù),等。其次是重點(diǎn)掌握知識(shí)介紹,包括并行算法的基本原理、多線程設(shè)計(jì)方法,OpenMP、MPI設(shè)計(jì)方法,等。最后是提高和深入知識(shí)介紹,包括多核性能分析、多線程糾錯(cuò)、多核調(diào)優(yōu),等。
2 課程實(shí)施與改革
2.1知識(shí)點(diǎn)劃分
多核技術(shù)涉及的知識(shí)點(diǎn)如圖1所示。這些多核技術(shù)相關(guān)的知識(shí)點(diǎn)都需要在多核課程中涉及。
所有這些多核技術(shù)相關(guān)的知識(shí)點(diǎn)中,一部分屬于多核編程技術(shù)與技巧,可以結(jié)合多核編程工具與性能調(diào)優(yōu)工具,通過編程實(shí)踐鍛煉學(xué)生對(duì)多核編程能力的培養(yǎng)。另一部分屬于并行計(jì)算機(jī)與數(shù)字芯片技術(shù)方向的最前沿,可以作為研究生的課程,擴(kuò)大學(xué)生們的知識(shí)面,了解計(jì)算機(jī)體系結(jié)構(gòu),并行計(jì)算和芯片設(shè)計(jì)技術(shù)等領(lǐng)域的最新熱點(diǎn)。
2.2教學(xué)大綱體系建設(shè)
課程組多次組織國(guó)內(nèi)高校召開多核課程體系的研討會(huì),與高校教師們研討多核課程的內(nèi)容架構(gòu),互相促進(jìn)課程體系的完善。另外,還積極走出國(guó)門,參與2007年印度舉辦的亞洲學(xué)術(shù)論壇,與亞洲各大學(xué)分享課程組的教學(xué)成果。課程組多次參與教育方面的國(guó)際會(huì)議,充分與國(guó)際教育家探討該課程的國(guó)際化建設(shè)。
教學(xué)隊(duì)伍中除了本校教師以外,還邀請(qǐng)了國(guó)外著名專家進(jìn)行授課,2005年以來(lái),邀請(qǐng)了日本法政大學(xué)李亞民教授累計(jì)講授了48課時(shí)課程,2007年,邀請(qǐng)了英特爾公司資深工程師進(jìn)行課程講座。
2.3教學(xué)實(shí)踐與教學(xué)改革
以往的程序設(shè)計(jì)教學(xué),或少有具體實(shí)驗(yàn)案例,或過于側(cè)重某個(gè)具體案例分析而忽略了知識(shí)結(jié)構(gòu)的完整培養(yǎng);或只注重于硬件底層開發(fā)技術(shù)卻未能有上層軟件的輔助,或只注重于上層軟件開發(fā)卻未能深入到硬件底層,形成不了一個(gè)完整的多核系統(tǒng)解決方案。針對(duì)上述問題,課程組提出以多核硬件體系結(jié)構(gòu)為切入點(diǎn),采用理論指導(dǎo)、課程實(shí)驗(yàn)奠基,走出課堂融入社會(huì)與產(chǎn)業(yè)應(yīng)用相結(jié)合的教學(xué)理念,并以此設(shè)計(jì)完成一套多核系統(tǒng)課程實(shí)驗(yàn)體系。
在課外實(shí)踐上,課程小組采用項(xiàng)目申請(qǐng)討論形式,讓學(xué)生進(jìn)行自由發(fā)揮,鼓勵(lì)學(xué)生提出自己的研究方案,對(duì)于具有創(chuàng)新意義的方案,課程小組依托多核實(shí)驗(yàn)室,支持學(xué)生參加學(xué)生科研項(xiàng)目(SRTP)和多核程序設(shè)計(jì)競(jìng)賽,并給予一定的專項(xiàng)科研經(jīng)費(fèi)的支持,授予第二課堂學(xué)分,極大的激發(fā)了學(xué)生的實(shí)踐熱情。課程組還獲得了國(guó)家大學(xué)生創(chuàng)新計(jì)劃的支持。
2. 4教學(xué)條件與教學(xué)環(huán)境建設(shè)
為了建立良好、可持續(xù)發(fā)展的教學(xué)環(huán)境,課程組加強(qiáng)教學(xué)條件建設(shè),挖掘網(wǎng)絡(luò)資源,并通過自主開發(fā)、校企合作等方式建立了良好的教學(xué)實(shí)驗(yàn)條件。
課程小組利用所依靠的強(qiáng)大教學(xué)與科研力量開辦了專門的教學(xué)網(wǎng)站(網(wǎng)址為multicore.zju.edu.cn或multicore.net.cn)。網(wǎng)站內(nèi)容包括了多核教學(xué)課件、實(shí)驗(yàn)代碼、最新的多核研究文獻(xiàn)等內(nèi)容,充分調(diào)動(dòng)了學(xué)生學(xué)習(xí)多核課程的積極性,起到了良好的效果。
考慮到大多數(shù)開發(fā)人員都沒有雙核機(jī)器,Intel提供的開發(fā)軟件價(jià)格貴,而多核環(huán)境下的編程開發(fā)是趨勢(shì)。因此,網(wǎng)站還提供了2臺(tái)多核的計(jì)算機(jī),連接在網(wǎng)通與電信的網(wǎng)絡(luò)上,提供遠(yuǎn)程桌面連接,使缺少多核軟硬件的同學(xué)們能方便地使用這兩臺(tái)計(jì)算機(jī)。使用中保證“單人單機(jī)模式”,多核服務(wù)器實(shí)行單用戶使用制度,在任何時(shí)段只有一個(gè)用戶登錄使用,保證獨(dú)自享受多核的處理能力。
近兩年來(lái),多核技術(shù)突飛猛進(jìn),硬件平臺(tái)進(jìn)步十分明顯。為了跟上發(fā)展潮流,為學(xué)生提供最前沿的信息和知識(shí),教學(xué)組在保證教學(xué)體系不變的情況下,對(duì)實(shí)驗(yàn)設(shè)備、教學(xué)內(nèi)容、實(shí)驗(yàn)設(shè)置等進(jìn)行了多次更新,其中在短短一年內(nèi),實(shí)驗(yàn)設(shè)備進(jìn)行了五次大規(guī)模的跟新?lián)Q代。
(1)2006年4月,英特爾捐贈(zèng)了inteI core due計(jì)算機(jī)12臺(tái),軟件12套。
(2)2006年7月,購(gòu)置了80套intelcore due計(jì)算機(jī)。
(3)2006年10月,英特爾贈(zèng)送了80套軟件授權(quán)。
(4)2007年4月,英特爾贈(zèng)送了8核計(jì)算機(jī)、4核服務(wù)器各1套。
(5)2007年5月,購(gòu)置了50套intelcote 2 due(酷睿2)計(jì)算機(jī)。
3 總結(jié)
浙江大學(xué)計(jì)算機(jī)學(xué)科在多核精品課程建設(shè)過程中積累了一定的經(jīng)驗(yàn),通過教學(xué)大綱、國(guó)際合作、競(jìng)賽組織、實(shí)驗(yàn)環(huán)境更新等手段,取得了課程建設(shè)的第一手資料,為進(jìn)一步推廣多核課程作鋪墊。