国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多核課程中的編譯原理知識點分析

2011-12-31 00:00:00楊劍
計算機教育 2011年11期


  摘要:多核技術(shù)引起了包括編譯在內(nèi)的計算機技術(shù)的巨大變化。教育首先要解決如何設(shè)置多核課程中編譯原理知識點的問題。本文以武漢大學(xué)“多核架構(gòu)及編程技術(shù)”課程為例,根據(jù)多核和編譯技術(shù)的發(fā)展和課程教學(xué)經(jīng)驗,對多核課程中的編譯原理知識點進(jìn)行分析,并提出課程內(nèi)容設(shè)置方面的要求。
  關(guān)鍵詞:多核課程;編譯原理;知識點
  
  多核技術(shù)的出現(xiàn)與快速發(fā)展使計算機技術(shù)發(fā)生了重大變化。多個處理器核心的出現(xiàn),為軟件在單處理器上的并行提供了豐富的硬件資源。為了充分利用這些計算資源,編譯技術(shù)需要從為單核編譯發(fā)展到為多核編譯,因此有了新的發(fā)展。為了應(yīng)對多核技術(shù)及其引起的相關(guān)計算機技術(shù)發(fā)展的需要,眾多高校都通過開設(shè)多核課程的方式,將多核技術(shù)引入到計算機教育體系當(dāng)中。編譯是多核技術(shù)發(fā)展的重要推動技術(shù)之一,多核資源的有效利用有賴于編譯對多核的支持。因此,在多核課程中,將編譯原理相關(guān)知識內(nèi)容融入進(jìn)來,對多核課程中多核基本原理、多核編譯優(yōu)化方法教學(xué)和多核編譯優(yōu)化工具的使用具有重要作用。筆者以武漢大學(xué)“多核架構(gòu)及編程技術(shù)”課程為例,對多核課程中的編譯原理知識點進(jìn)行分析。
  1“多核架構(gòu)及編程技術(shù)”課程概述
  武漢大學(xué)從2005年就開始關(guān)注多核技術(shù),并已經(jīng)開始探索將多核技術(shù)引入到計算機教學(xué)體系當(dāng)中。隨后,武漢大學(xué)基于自身教學(xué)和科研積累,根據(jù)對多核技術(shù)的深入了解,對多核知識點進(jìn)行了分析,開設(shè)了面向本科生的“多核架構(gòu)及編程技術(shù)”課程[1]。
  1.1課程目標(biāo)
  多核技術(shù)的出現(xiàn)使多線程在單處理器上的并行成為可能。而多核處理器則已經(jīng)成為了主流處理器。傳統(tǒng)面向單核處理器的程序設(shè)計方式正逐漸向多核并行程序設(shè)計遷移。學(xué)生需要學(xué)習(xí)和掌握多核相關(guān)知識,才能夠更好地適應(yīng)技術(shù)發(fā)展和來自企業(yè)的需求。課程力求使學(xué)生在學(xué)習(xí)之后,能夠了解和熟悉多核的基礎(chǔ)理論,并在此基礎(chǔ)上掌握多核程序設(shè)計方法以及相關(guān)的多核優(yōu)化工具。為了更好地開展多核課程教學(xué),課程可以分為兩個模塊,分別是理論教學(xué)模塊和實踐教學(xué)模塊。兩個模塊相輔相成,共同完成課程的教學(xué)目標(biāo)。多核架構(gòu)及編程技術(shù)課程設(shè)置如圖1所示。
  1.2多核課程理論設(shè)置
  多核技術(shù)的理論是多核課程的基礎(chǔ)。在“多核架構(gòu)及編程技術(shù)”中,我們將多核技術(shù)相關(guān)的基本理論進(jìn)行分層,形成層次化的理論教學(xué)內(nèi)容設(shè)置。首先將計算機處理器架構(gòu)的發(fā)展作為多核架構(gòu)的前導(dǎo)性內(nèi)容,然后是多核處理器體系結(jié)構(gòu),接下來介紹并行計算及其與多核技術(shù)的關(guān)系,之后介紹多核平臺上的程序設(shè)計技術(shù),最后是與實踐關(guān)系密切的多核平臺程序調(diào)試技術(shù)和基于編譯優(yōu)化的多核調(diào)優(yōu)技術(shù)。通過層次化的理論設(shè)置,讓學(xué)生形成多核技術(shù)理論的整體框架,構(gòu)建進(jìn)一步學(xué)習(xí)和開展實踐的扎實基礎(chǔ)。
  1.3多核課程實踐設(shè)置
  由于“多核架構(gòu)及編程技術(shù)”是面向本科生的,因此,教學(xué)重點之一是如何讓學(xué)生掌握多核程序設(shè)計技術(shù)。為此,課程組設(shè)計兩大類的實踐教學(xué)方式:基礎(chǔ)實驗和課程設(shè)計。其中,基礎(chǔ)實驗側(cè)重基于多核體系結(jié)構(gòu)的程序設(shè)計,包括基本的多核并行程序設(shè)計,Windows和Linux環(huán)境下的多核程序設(shè)計,以及常用的庫和工具軟件的使用。通過基礎(chǔ)實驗,學(xué)生能夠掌握最為基本的多核程序設(shè)計方法。課程設(shè)計則是綜合性實踐,要求學(xué)生對多核知識體系比較了解并具備多核程序設(shè)計能力,因此既是對學(xué)生多核程序設(shè)計能力的全面鍛煉,也是對其學(xué)習(xí)效果的全面檢驗。
  2多核課程中編譯原理內(nèi)容設(shè)置的必要性
  半導(dǎo)體技術(shù)的進(jìn)步推動著多核技術(shù)的不斷發(fā)展。要充分利用多核技術(shù)提供的豐富硬件資源,就需要解決如何使軟件能夠以多線程的方式進(jìn)行并行的問題。而解決這一問題的核心方法之一,就是利用編譯技術(shù)對已有的軟件進(jìn)行多核多線程的優(yōu)化,或是通過編譯的支持,來完成多核多線程的程序設(shè)計[2-3]。
  已有眾多的研究者在開展相關(guān)的多核編譯和多核優(yōu)化的研究。這對于多核技術(shù)和編譯技術(shù)的發(fā)展都將起到很好的推動作用。而隨著多核技術(shù)的不斷推廣,面向多核的應(yīng)用正在快速增加。因此,在計算機及相關(guān)課程的設(shè)置中,將多核環(huán)境下的編譯尤其是編譯優(yōu)化技術(shù)作為關(guān)鍵內(nèi)容,就顯得十分必要。
  由于多核環(huán)境下的編譯是多核技術(shù)和編譯技術(shù)的融合,因此,進(jìn)行課程設(shè)置時就需要充分考慮兩者如何進(jìn)行結(jié)合,來更好地開展教學(xué)活動。在已有的編譯原理課程中,增加新出現(xiàn)的多核編譯內(nèi)容面臨巨大的挑戰(zhàn)。首先,在傳統(tǒng)的編譯原理課程中,往往是單核單處理器的編譯技術(shù),不包含并行編譯的技術(shù)或者很少包含這部分內(nèi)容。其次,多核編譯需要并行計算的相關(guān)基礎(chǔ)理論知識作為先導(dǎo)基礎(chǔ)知識,這在傳統(tǒng)編譯原理課程中是無法實現(xiàn)的。最后,傳統(tǒng)的編譯原理課程往往已經(jīng)具備了較為完備的課程結(jié)構(gòu),增加新的多核編譯理論和實踐內(nèi)容會產(chǎn)生較大影響。因此,在已有的編譯原理課程中,增加新的多核編譯教學(xué)內(nèi)容尚需進(jìn)行研究;而現(xiàn)有的編譯原理課程中也是以既有編譯原理教學(xué)內(nèi)容為主[4-6]。
  多核課程的核心就是如何利用多核技術(shù)提供的硬件資源來提高程序的運行效率。在進(jìn)行“多核架構(gòu)及編程技術(shù)”課程設(shè)計時,根據(jù)教學(xué)目標(biāo),多核技術(shù)利用片上多核處理器資源進(jìn)行線程級并行,是多核課程中的核心教學(xué)內(nèi)容之一。這就離不開編譯的支持。由此可見,在多核課程中設(shè)置編譯原理內(nèi)容,是多核課程設(shè)計本身的必然要求,并已經(jīng)成為部分高校多核課程設(shè)置的選擇[7-8]。
  在開展多核編譯及其優(yōu)化的教學(xué)之前,首先需要學(xué)生對并行計算、多核體系結(jié)構(gòu)等理論具有相當(dāng)程度的理解,才能進(jìn)一步學(xué)習(xí)。在多核課程中,并行理論、基本多核體系結(jié)構(gòu)和多核程序設(shè)計方法都是不可或缺的教學(xué)內(nèi)容。因此,在多核課程中安排多核編譯內(nèi)容,有利于學(xué)生更好地學(xué)習(xí)。
  由于多核編譯仍然在發(fā)展當(dāng)中,因此它既面臨著應(yīng)用的需求,也是當(dāng)前科研的前沿內(nèi)容之一。要開展多核編譯的教學(xué),就要充分考慮課程所面向的對象,合理地進(jìn)行多核編譯具體內(nèi)容的安排。
  武漢大學(xué)在進(jìn)行“多核架構(gòu)及編程技術(shù)”設(shè)計時,重點考慮如何安排相關(guān)的編譯原理內(nèi)容。根據(jù)課程組在教學(xué)和科研方面積累的經(jīng)驗,多核編譯是多核技術(shù)的關(guān)鍵內(nèi)容。在進(jìn)行多核程序設(shè)計和優(yōu)化時,基于多核編譯的優(yōu)化是重要的方法,也是多核程序優(yōu)化工具的基礎(chǔ)。因此,武漢大學(xué)“多核架構(gòu)及編程技術(shù)”將多核編譯作為必要教學(xué)內(nèi)容安排。
  3多核課程中編譯原理知識點
  多核課程中的編譯原理內(nèi)容是多核編譯相關(guān)。然而,當(dāng)前多核環(huán)境下的編譯技術(shù)仍然處在發(fā)展當(dāng)中。因此,在科學(xué)研究領(lǐng)域,多核編譯技術(shù)不斷創(chuàng)新;而在實際的應(yīng)用領(lǐng)域,更多的是將傳統(tǒng)并行編譯技術(shù)進(jìn)行優(yōu)化,以應(yīng)用到多核上。這就給多核課程中編譯原理內(nèi)容的設(shè)置帶來了挑戰(zhàn)。節(jié)能型多核課程中編譯原理內(nèi)容的設(shè)置,需要解決兩個問題,首先是多核課程究竟需要哪些編譯原理的知識點;其次是如何安排課程中相關(guān)編譯原理的知識點。
  3.1基本知識點分析
  多核編譯是在多核基礎(chǔ)上編譯的進(jìn)一步發(fā)展。在傳統(tǒng)的編譯原理課程中,由于教學(xué)目標(biāo)是讓學(xué)生學(xué)習(xí)編程語言的理論與方法,了解編程語言的實現(xiàn)。因此,在進(jìn)行編譯原理的教學(xué)時,基本的教學(xué)內(nèi)容包括了詞法分析、語法分析、語義檢查、代碼生成與優(yōu)化等方面,主要關(guān)注的也是單核處理器上的編譯原理教學(xué)。
  而多核課程中的編譯相關(guān)內(nèi)容則涉及到以多核處理器為基本硬件平臺的編譯方法及優(yōu)化工具。在選擇教學(xué)內(nèi)容方面,就與傳統(tǒng)的編譯原理課程有很大的區(qū)別。在多核課程中,貫穿整個課程的主要教學(xué)思想是要讓學(xué)生掌握多核并行的概念,了解相關(guān)理論和方法,并學(xué)會多核多線程的并行程序設(shè)計,掌握多核程序優(yōu)化工具。
  
  這是一個連續(xù)的過程,對多核編譯的知識點選擇有重要影響。
  因此,多核課程中需要的知識點就與多核課程本身的教學(xué)內(nèi)容設(shè)置相關(guān)聯(lián)。圖1所示的多核課程理論設(shè)置部分,要實現(xiàn)多核課程良好的教學(xué)效果,就需要將多核編譯與多核理論進(jìn)行對應(yīng),主要知識點如下。
  1) 多核技術(shù)對編譯的要求。多核技術(shù)的出現(xiàn)使并行在單個處理器上得以實現(xiàn),并得到了越來越廣泛的應(yīng)用。然而,如何將現(xiàn)有軟件并行化,如何將完成的多線程程序轉(zhuǎn)化為高效率的并行代碼,就是編譯的工作。這將幫助學(xué)生初步了解多核技術(shù)中編譯的重要性。
  2) 并行編譯理論和技術(shù)。這是與并行計算相關(guān)的編譯理論和技術(shù)。在進(jìn)行并行計算教學(xué)的基礎(chǔ)上,適當(dāng)加入并行編譯的相關(guān)內(nèi)容,讓學(xué)生了解在并行計算中,編譯器如何發(fā)現(xiàn)程序的并行性,如何對計算進(jìn)行分布,如何處理計算任務(wù)之間的通信。這將使學(xué)生更好地掌握多核處理器上線程的并行。
  3) 多核編譯及其優(yōu)化。這部分內(nèi)容主要介紹多核與編譯技術(shù)的關(guān)系,并將多核編譯的內(nèi)容引入。在進(jìn)行多核程序設(shè)計時,對代碼進(jìn)行優(yōu)化將能夠進(jìn)一步提高代碼效率。
  4) 多核編譯優(yōu)化工具。完成多核程序的設(shè)計后,一項重要的工作就是對程序進(jìn)行測試,找出可優(yōu)化的部分。借助于多核編譯優(yōu)化工具是常用的手段。對多核編譯優(yōu)化工具的了解和使用,將幫助學(xué)生建立多核程序設(shè)計優(yōu)化的基本思想。
  上述四個知識點是相輔相成的。在開展多核教學(xué)時,通過將編譯原理的知識點與多核技術(shù)的結(jié)合,學(xué)生能夠更好地理解多核并行、多核程序優(yōu)化的基本思想,并能夠更好地學(xué)習(xí)多核編譯優(yōu)化工具的使用。
  3.2課程內(nèi)容設(shè)置
  多核課程中編譯原理的具體內(nèi)容安排需要充分考慮課程教學(xué)的需要,尤其是本科生對教學(xué)內(nèi)容的接受程度。由于多核課程涉及到計算機體系結(jié)構(gòu)、程序設(shè)計、編譯原理等課程;因此,首先要求學(xué)生已經(jīng)學(xué)習(xí)過計算機體系結(jié)構(gòu);熟悉程序設(shè)計方法并至少掌握了一門程序設(shè)計語言;已經(jīng)完成了編譯原理課程的學(xué)習(xí)等。在多核課程中,將上述內(nèi)容作為學(xué)生已掌握的知識。尤其是對于多核編譯來說,如果學(xué)生不熟悉編譯原理的內(nèi)容,在多核課程有限的編譯原理課時安排中,很難進(jìn)行學(xué)習(xí)和理解,反而會影響教學(xué)效果。基于上述原因,多核課程中編譯原理知識點確定后,對具體內(nèi)容的選擇原則是與多核密切相關(guān)且難度適中,不超出本科生的學(xué)習(xí)能力。
  多核課程中的編譯原理知識點在課程中起到非常重要作用。在設(shè)置課程內(nèi)容時,可以采用兩種方法,一種是將與多核相關(guān)的編譯原理知識點集中設(shè)置;另一種則是將相關(guān)內(nèi)容分散開,將之與多核課程的各部分內(nèi)容相融合。在前一種設(shè)置方法中,編譯原理知識點集中,有利于學(xué)生建立多核編譯的體系。但是由于課程的主要關(guān)注點是多核,因此集中設(shè)置的編譯原理知識點將會造成多核與編譯知識點的脫節(jié)。而在后一種方法中,編譯原理的知識點分布在整個多核課程當(dāng)中,與對應(yīng)的多核內(nèi)容進(jìn)行結(jié)合,有利于學(xué)生學(xué)習(xí)多核課程。
  此外,多核課程面向本科教學(xué),在編譯課程內(nèi)容上必須與實際的多核程序設(shè)計方法和語言相結(jié)合。同時,只有了解和掌握了多核程序設(shè)計方法和語言,學(xué)生才能夠進(jìn)行實踐,解決實際問題。在多核課程當(dāng)中,目前主要的多核程序設(shè)計方法和語言包括OpenMP、MPI以及在操作系統(tǒng)支持下的多線程編程。OpenMP和MPI均是傳統(tǒng)的并行程序設(shè)計語言,它們也可以在多核上使用,并且具有較好的效率。盡管仍然需要改進(jìn)和優(yōu)化,但其已在多核領(lǐng)域得到了應(yīng)用。而多線程編程則在不同操作系統(tǒng)下具有各自的特色,對多線程編程的了解和掌握,有助于學(xué)生建立多線程的程序設(shè)計思維,并實際掌握多核多線程的程序設(shè)計技術(shù)。
  在課程內(nèi)容安排上,在多核課程的每個理論部分當(dāng)中,都有與之相關(guān)的多核編譯內(nèi)容。通過多核理論讓學(xué)生建立多核技術(shù)的整體框架。在此基礎(chǔ)上,部分多核編譯內(nèi)容的加入,則有利于學(xué)生了解多核體系結(jié)構(gòu)下對系統(tǒng)軟件的影響以及系統(tǒng)軟件對多核提供的知識,深入理解多線程在多核平臺上并行的機制。
  4教學(xué)效果
  武漢大學(xué)“多核架構(gòu)及編程技術(shù)”課程自開設(shè)已有5年,通過該課程學(xué)習(xí)了多核技術(shù)的學(xué)生已達(dá)數(shù)百人。為了對課程進(jìn)行改進(jìn)和提升,我們進(jìn)行了有針對性的課程教學(xué)效果調(diào)查。調(diào)查共發(fā)放問卷140份,有效問卷127份。以下是課程調(diào)查中與編譯原理部分相關(guān)的問題。
  問題1(Q1):多核編譯的內(nèi)容是否容易理解?
  問題2(Q2):多核編譯的內(nèi)容是否有助于課程內(nèi)容的學(xué)習(xí)?
  問題3(Q3):多核編譯的學(xué)習(xí)對進(jìn)一步學(xué)習(xí)多核技術(shù)是否有幫助?
  調(diào)查結(jié)果如圖2所示。從圖2中可以看出,在課程中安排的多核編譯內(nèi)容基本上達(dá)到了教學(xué)目標(biāo)。從學(xué)生學(xué)習(xí)反饋的結(jié)果來看,課程中的多核編譯內(nèi)容設(shè)置較為合理,能夠與多核內(nèi)容相結(jié)合,對學(xué)生多核技術(shù)的學(xué)習(xí)起到了幫助作用。
  5結(jié)語
  多核技術(shù)的出現(xiàn)與快速發(fā)展帶來了計算機技術(shù)的變革,這既導(dǎo)致了計算機體系結(jié)構(gòu)、操作系統(tǒng)、編譯、程序設(shè)計等方面的技術(shù)進(jìn)步,又是對計算機教育的巨大挑戰(zhàn)。為了應(yīng)對這一挑戰(zhàn),很多高校都開設(shè)了多核課程。多核編譯為利用多核技術(shù)提供了關(guān)鍵支持。在多核課程的建設(shè)過程中,一個重要的問題是如何設(shè)置編譯原理的教學(xué)。我校在多核課程中進(jìn)行了多核編譯技術(shù)知識點設(shè)置的研究。從教學(xué)效果的調(diào)查可以發(fā)現(xiàn),在多核課程中安排編譯原理內(nèi)容非常必要,教學(xué)效果反映出提出編譯原理知識點的合理性。在接下來的教學(xué)工作中,我們將進(jìn)一步探索多核課程中編譯原理教學(xué)內(nèi)容的選擇和教學(xué)方法等問題。
  
  參考文獻(xiàn):
  [1]

苍山县| 唐山市| 建水县| 茶陵县| 涞源县| 平武县| 邯郸县| 湘潭县| 紫云| 武川县| 伊春市| 清远市| 广河县| 紫阳县| 布拖县| 潼南县| 乐昌市| 万安县| 高清| 洛南县| 渝中区| 甘洛县| 阿拉善左旗| 陆良县| 宜宾市| 武安市| 怀化市| 安龙县| 宁晋县| 寿光市| 彩票| 东台市| 黎平县| 吴忠市| 澎湖县| 拜泉县| 金门县| 巴彦淖尔市| 广昌县| 泰和县| 江华|