眾所周知,微處理器向“多核”的轉(zhuǎn)變是計(jì)算機(jī)技術(shù)發(fā)展歷史上的一個(gè)新的里程碑,也是處理器技術(shù)繼續(xù)良性發(fā)展的新開(kāi)端。INTEL、AMD等通用處理器生產(chǎn)廠商對(duì)“多核”技術(shù)的倡導(dǎo)和支持,以及新產(chǎn)品的不斷推出,使得“多核”計(jì)算的時(shí)代已經(jīng)提前到來(lái)。
“多核(Multi-Core)”,一般指單個(gè)裸片上具有多個(gè)處理核,這些處理核各自擁有獨(dú)立的控制和工作部件,互相之間無(wú)需共享關(guān)鍵資源。正如伯克利大學(xué)最新出爐的研究報(bào)告《The Landscape of Parallel Computing Research: A View from Berkeley》中指出的那樣,多核技術(shù)源于硬件技術(shù),但不僅是硬件技術(shù)的革新,更會(huì)帶來(lái)軟件,乃至計(jì)算技術(shù)的全面變革。
為了更好地應(yīng)對(duì)新的“多核”時(shí)代,清華大學(xué)計(jì)算機(jī)系高性能計(jì)算技術(shù)研究所從2005年底開(kāi)始考慮將最新的多核技術(shù)內(nèi)容引入到大學(xué)課程當(dāng)中。經(jīng)過(guò)近半年的調(diào)研、學(xué)習(xí)和討論,結(jié)合自身的科研基礎(chǔ)和教學(xué)工作,我們于2006年秋季學(xué)期進(jìn)行了多核課程建設(shè)的一些初步嘗試。
我們多核課程建設(shè)的目標(biāo)有兩個(gè):一,普及并行計(jì)算技術(shù),使廣大的程序設(shè)計(jì)與開(kāi)發(fā)者可以發(fā)揮多核計(jì)算優(yōu)勢(shì);二,向未來(lái)的科研人員介紹多核及其面臨的挑戰(zhàn),激發(fā)研究興趣,幫助他們更有效地開(kāi)展進(jìn)一步的科研工作。為此,我們組織開(kāi)設(shè)了三門新課:面向本科生的全校性選修課“并行計(jì)算基礎(chǔ)”、面向信息學(xué)院高年級(jí)本科生的“高性能計(jì)算前沿技術(shù)”和短期課程“多線程/多核CPU邏輯設(shè)計(jì)”。同時(shí),針對(duì)多核技術(shù)發(fā)展,重新組織和完善了計(jì)算機(jī)系研究生核心課“高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)”的授課內(nèi)容,增加了對(duì)多核技術(shù)及其面臨挑戰(zhàn)的深入介紹,擴(kuò)展了Cache和內(nèi)存一致性相關(guān)內(nèi)容的講授。通過(guò)這四門課程,從處理器體系結(jié)構(gòu)、系統(tǒng)架構(gòu)、程序設(shè)計(jì)三個(gè)方面有側(cè)重,有層次地給學(xué)生展現(xiàn)了一個(gè)相對(duì)完整的多核技術(shù)圖景。從一個(gè)學(xué)期的教學(xué)效果來(lái)看,達(dá)到了介紹多核,普及并行計(jì)算技術(shù)的預(yù)期目標(biāo)。下面就對(duì)上述的三門新課作一簡(jiǎn)單介紹,歡迎批評(píng)指正。
并行計(jì)算基礎(chǔ)
這門課程的開(kāi)設(shè)是為了在學(xué)生中普及并行計(jì)算技術(shù)服務(wù)的。
每一個(gè)多核處理器實(shí)際上就是一個(gè)片上并行系統(tǒng)。簡(jiǎn)單來(lái)說(shuō),使用多核處理器的計(jì)算機(jī)都可以稱為一臺(tái)并行計(jì)算系統(tǒng)。因此,對(duì)于程序設(shè)計(jì)和開(kāi)發(fā)者來(lái)說(shuō),有效發(fā)揮多核處理器的計(jì)算能力,了解和使用并行計(jì)算技術(shù)是必不可少的。
以前,并行計(jì)算只能說(shuō)是少數(shù)人的“游戲”,總是與昂貴的超級(jí)計(jì)算機(jī)、個(gè)別復(fù)雜的工程計(jì)算問(wèn)題聯(lián)系在一起。提到并行計(jì)算,即使是計(jì)算機(jī)專業(yè)的學(xué)生也感到艱深晦澀。如今,現(xiàn)代計(jì)算技術(shù)的發(fā)展,尤其是多核的普及,并行計(jì)算走向桌面應(yīng)用;而眾多富有挑戰(zhàn)性的計(jì)算問(wèn)題的出現(xiàn)更使得并行計(jì)算成為一種重要的通用計(jì)算技術(shù)開(kāi)始被大家所接受。
為此,我們開(kāi)設(shè)了面向全校本科生的全校性選修課“并行計(jì)算基礎(chǔ)”。課程旨在推動(dòng)并行計(jì)算技術(shù)的普及和應(yīng)用,幫助同學(xué)們認(rèn)識(shí)到并行計(jì)算的重要性,掌握并行計(jì)算的基本概念、基本問(wèn)題和理論,掌握初步的并行程序設(shè)計(jì)和分析方法,熟悉并行計(jì)算語(yǔ)言和輔助工具,體驗(yàn)實(shí)際并行程序開(kāi)發(fā)和優(yōu)化過(guò)程。課程通過(guò)課堂講授、參觀、演示、典型實(shí)例分析和多核系統(tǒng)/并行系統(tǒng)上的親身體驗(yàn)等多種教學(xué)方式,希望學(xué)生對(duì)并行計(jì)算有初步認(rèn)識(shí),在一定程度上提高綜合運(yùn)用方法理論、編程接口和輔助工具,設(shè)計(jì)、分析和開(kāi)發(fā)并行程序的能力。
本課程的先修要求并不高,只需要有一定的程序設(shè)計(jì)基礎(chǔ)的本科生均可選修。
本課程的主要知識(shí)點(diǎn)包括:
●并行計(jì)算的基本概念;
●OPENMP和MPI并行程序編程接口;
●并行程序設(shè)計(jì)方法;
●并行程序性能分析方法;
●重要的并行程序開(kāi)發(fā)輔助工具,如Totalview、INTEL Vtune、INTEL ThreadChecker、INTEL Thread Profiler、INTEL MKL等;
●典型并行算法設(shè)計(jì)思想。
本課程的主要教學(xué)安排如表1所示。
這門課的特點(diǎn)在于:
① 針對(duì)學(xué)生來(lái)自不同專業(yè),將并行機(jī)系統(tǒng)結(jié)構(gòu)、網(wǎng)絡(luò)互連和并行計(jì)算模型的內(nèi)容精煉講授。
② 通過(guò)編程工具、調(diào)試工具、性能分析工具等的講解,提高學(xué)生編寫、調(diào)試和運(yùn)行并行程序的能力。
③ 增加課外實(shí)驗(yàn)環(huán)節(jié),加強(qiáng)學(xué)生動(dòng)手能力培養(yǎng)。
開(kāi)設(shè)這門課不僅使同學(xué)盡早接觸到了多核技術(shù)和并行計(jì)算技術(shù),幫助他們認(rèn)識(shí)到并行計(jì)算的重要性,而且為后續(xù)研究生相關(guān)課程,包括高等計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、并行計(jì)算(研究生)、大規(guī)??茖W(xué)計(jì)算等打下了一定的基礎(chǔ)。
第一次開(kāi)課選修這門課的同學(xué)接近20人(課容量30人),有50%來(lái)自計(jì)算機(jī)系外的其他工科院系。大家都覺(jué)得這門課使他們了解到了最新的計(jì)算技術(shù),并行計(jì)算對(duì)自己今后的科研和工作可能大有裨益。
高性能計(jì)算前沿技術(shù)研討課
計(jì)算機(jī)學(xué)科是一個(gè)知識(shí)和技術(shù)飛速更新的學(xué)科,多核技術(shù)作為一個(gè)尚未成熟的研究領(lǐng)域就更是如此。所以,把最新的多核和高性能計(jì)算技術(shù)中的研究問(wèn)題和研究進(jìn)展通過(guò)快捷、有效的手段傳授給學(xué)生,激發(fā)學(xué)生的研究興趣,投身到多核技術(shù)這個(gè)不斷發(fā)展的研究領(lǐng)域當(dāng)中是高性能計(jì)算前沿技術(shù)課的主要目的。
高性能計(jì)算涉及微處理器、并行計(jì)算機(jī)、分布式系統(tǒng)及應(yīng)用等多方面內(nèi)容,技術(shù)先進(jìn)性、綜合性和實(shí)用性強(qiáng),是計(jì)算機(jī)技術(shù)的重要研究分支。而本科生普遍缺乏對(duì)相關(guān)研究領(lǐng)域的基本了解。為此,我們開(kāi)設(shè)了面向信息學(xué)院高年級(jí)本科生的研討課“高性能計(jì)算前沿技術(shù)”。課程密切結(jié)合高性能計(jì)算技術(shù)的最新發(fā)展趨勢(shì),對(duì)當(dāng)今高性能計(jì)算的幾個(gè)熱點(diǎn)問(wèn)題作專題介紹。課程內(nèi)容主要包括兩個(gè)部分:多內(nèi)核處理器和大規(guī)模并行計(jì)算系統(tǒng)。多內(nèi)核處理器的出現(xiàn)和流行,使得并行計(jì)算的地位日益重要。本課程將介紹多內(nèi)核處理器的體系結(jié)構(gòu)和發(fā)展趨勢(shì),以及多內(nèi)核處理器對(duì)計(jì)算機(jī)軟件技術(shù)帶來(lái)的一系列挑戰(zhàn)。大規(guī)模并行計(jì)算系統(tǒng)主要用來(lái)解決關(guān)系國(guó)計(jì)民生的重大挑戰(zhàn)問(wèn)題,是一個(gè)國(guó)家綜合國(guó)力的重要組成部分。隨著系統(tǒng)規(guī)模的擴(kuò)大,對(duì)于系統(tǒng)的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、通信網(wǎng)絡(luò)等方面提出了新的挑戰(zhàn)。課程將介紹在上述方面的研究進(jìn)展。通過(guò)本課程,希望學(xué)生能認(rèn)識(shí)高性能計(jì)算,了解高性能計(jì)算的基本問(wèn)題,對(duì)高性能計(jì)算的前沿研究問(wèn)題有初步的認(rèn)識(shí)。
課程內(nèi)容安排主要包括以下高性能計(jì)算的六大方面:
1. 高性能計(jì)算現(xiàn)狀與挑戰(zhàn)
2. 多核計(jì)算技術(shù)發(fā)展
3. 計(jì)算中的性能問(wèn)題,性能分析與性能優(yōu)化方法
4. 并行計(jì)算系統(tǒng)
5. 高性能互聯(lián)網(wǎng)絡(luò)技術(shù)
6. 分布式計(jì)算之對(duì)等計(jì)算技術(shù)
本課程的特點(diǎn)在于互動(dòng)式教學(xué)。教師縮短講授時(shí)間,將更多的精力花在設(shè)置課題,組織和參與討論上。通過(guò)學(xué)生查閱相關(guān)資料,學(xué)生課堂報(bào)告與討論,和課程論文等多種方式,激發(fā)學(xué)生自主學(xué)習(xí),開(kāi)展調(diào)研和研究的熱情。
第一次開(kāi)課選修這門課的同學(xué)有12位(課容量15人),分別來(lái)自微電子學(xué)系和計(jì)算機(jī)系。大家都覺(jué)得通過(guò)這門課了解了最新的高性能計(jì)算技術(shù),特別是多核技術(shù)的最新進(jìn)展和未來(lái)發(fā)展趨勢(shì);在有效拓展自己知識(shí)面的同時(shí),通過(guò)論文閱讀和討論使得自己對(duì)發(fā)掘問(wèn)題、解決問(wèn)題的科研方法有了新的認(rèn)識(shí)。
多線程/多核CPU邏輯設(shè)計(jì)短期課程
新一代處理器都將采用多線程/多核技術(shù),這使得CPU能夠同時(shí)并行執(zhí)行多道程序,以提高處理能力。為了讓同學(xué)更好地了解多線程/多核處理器的設(shè)計(jì)思想和最新進(jìn)展,我們邀請(qǐng)了日本東京法政大學(xué)的李亞民教授開(kāi)設(shè)了暑期的短期課程“多線程/多核CPU邏輯設(shè)計(jì)”。
本課程講解多線程/多核CPU的設(shè)計(jì)方法,通過(guò)實(shí)驗(yàn)讓聽(tīng)課者能夠自己動(dòng)手設(shè)計(jì)一個(gè)包含有浮點(diǎn)部件(FPU)的多線程/多核CPU,并通過(guò)執(zhí)行匯編及二進(jìn)制程序,完成多線程/多核CPU的邏輯功能模擬。
課程的教學(xué)內(nèi)容安排如下:
第一次:
講課:數(shù)字電路及邏輯設(shè)計(jì)基礎(chǔ),算法及電路設(shè)計(jì),指令系統(tǒng)。
實(shí)驗(yàn):設(shè)計(jì)多路器,加法/減法器,移位器,ALU,寄存器堆。
第二次:
講課:?jiǎn)沃芷贑PU原理及設(shè)計(jì)方法。
實(shí)驗(yàn):設(shè)計(jì)單周期 CPU,存儲(chǔ)器及測(cè)試程序,CPU模擬測(cè)試。
第三次:
講課:浮點(diǎn)部件FPU原理及設(shè)計(jì)方法。
實(shí)驗(yàn):設(shè)計(jì)浮點(diǎn)部件FPU及FPU模擬測(cè)試。
第四次:
講課:流水線 CPU+FPU 原理及設(shè)計(jì)方法。
實(shí)驗(yàn):設(shè)計(jì)流水線 CPU+FPU,存儲(chǔ)器及測(cè)試程序,CPU+FPU模擬測(cè)試。
第五次:
講課:多線程/多核CPU原理及設(shè)計(jì)方法。
實(shí)驗(yàn):設(shè)計(jì)多線程/多核CPU,存儲(chǔ)器及測(cè)試程序,CPU模擬測(cè)試。
課程的先修要求是邏輯電路設(shè)計(jì)、計(jì)算機(jī)原理。教學(xué)對(duì)象為對(duì)CPU邏輯設(shè)計(jì)技術(shù)感興趣的教師、研究生,以及高年級(jí)本科生。
總體來(lái)說(shuō),這門課程的特色是面向?qū)嶒?yàn)的課程。講課與實(shí)驗(yàn)的學(xué)時(shí)數(shù)為1∶2,通過(guò)5天,每天4學(xué)時(shí)的實(shí)驗(yàn)時(shí)間,指導(dǎo)聽(tīng)課人使用Max+Plus II設(shè)計(jì)工具設(shè)計(jì)并模擬多線程/多核CPU。
本課程的選課人數(shù)為53人。其中,計(jì)算機(jī)系:27人;電子系:6人;微電子:5人;軟件學(xué)院:4人;自動(dòng)化系:3人;核研院:1人;化工系:1人;校外:6人。聽(tīng)課師生均表示,該課程講授深入、實(shí)用。通過(guò)該課程,基本了解了CPU設(shè)計(jì)的流程,了解了當(dāng)今世界上CPU設(shè)計(jì)的先進(jìn)技術(shù)和趨勢(shì),并通過(guò)親手作實(shí)驗(yàn),設(shè)計(jì)了一個(gè)可以工作的CPU原型。收獲很大。
總結(jié)與展望
總的來(lái)說(shuō),上述四門多核課程的開(kāi)設(shè),我們已經(jīng)形成了一個(gè)初步的多核課程體系。這個(gè)課程體系既可以滿足在多核平臺(tái)上應(yīng)用軟件開(kāi)發(fā)人員的需求,也可以指導(dǎo)設(shè)計(jì)多核處理器。教學(xué)內(nèi)容包含體系結(jié)構(gòu)、系統(tǒng)架構(gòu)和編程技術(shù)三個(gè)主要的多核技術(shù)發(fā)展方向。從初步的教學(xué)效果來(lái)看,也達(dá)到了預(yù)期的目標(biāo)。
我們認(rèn)為,多核技術(shù)涉及到計(jì)算機(jī)軟、硬件技術(shù)的多個(gè)方面,開(kāi)設(shè)獨(dú)立的多核課程難度較大,今后我們?nèi)詫⒁赃@幾門課程為主要建設(shè)課程,不斷豐富多核技術(shù)內(nèi)容。為了使同學(xué)們更好地了解和學(xué)習(xí)多核知識(shí),我們打算建立一個(gè)多核課程和知識(shí)的網(wǎng)站,一方面將我們開(kāi)設(shè)的幾門課程當(dāng)中多核內(nèi)容做一有效集成,建立其縱向聯(lián)系,便于進(jìn)一步深入學(xué)習(xí);另一方面將多核技術(shù)資源,以及國(guó)外多核課程建設(shè)的成果(比如GIT、MIT等學(xué)校的最新多核相關(guān)課程)介紹給廣大師生,促進(jìn)多核技術(shù)的普及和發(fā)展。