教育部Intel精品課程:多核架構(gòu)與編程技術(shù)(附CD-ROM光盤1張)
定 價(jià):27 元
- 作者:武漢大學(xué)多核架構(gòu)與編程技術(shù)課程組 編
- 出版時(shí)間:2010/1/1
- ISBN:9787307074521
- 出 版 社:武漢大學(xué)出版社
- 中圖法分類:TP311.11
- 頁(yè)碼:211
- 紙張:膠版紙
- 版次:1
- 開本:16開
《多核架構(gòu)與編程技術(shù)》涉及多核硬件和軟件技術(shù),主要包括多核體系架構(gòu)及其并行編程技術(shù)!抖嗪思軜(gòu)與編程技術(shù)》從硬件架構(gòu)人手,介紹了多核處理器、多核支持芯片組和相關(guān)操作系統(tǒng)的發(fā)展歷程與趨勢(shì)!抖嗪思軜(gòu)與編程技術(shù)》側(cè)重論述了多核并行程序設(shè)計(jì)的基礎(chǔ)理論和技術(shù),詳細(xì)介紹了多線程程序設(shè)計(jì)方法與常用的并行程序開發(fā)工具OpenMP,并結(jié)合Intel提供的軟件調(diào)優(yōu)工具介紹了多核程序設(shè)計(jì)的優(yōu)化方法。此外,還詳細(xì)介紹了一些典型的專業(yè)化多核應(yīng)用開發(fā)平臺(tái),包括Intel高性能集成基元開發(fā)庫(kù)(IPP)、面向計(jì)算機(jī)視覺(jué)的多核編程工具OpenCV、MATLAB并行開發(fā)工具包和面向檢測(cè)自動(dòng)化的專業(yè)化軟件LabView的多核編程工具等。
《多核架構(gòu)與編程技術(shù)》是高等院校信息類專業(yè)高年級(jí)本科生或低年級(jí)研究生的教科書,同時(shí)也可供相關(guān)領(lǐng)域的科研人員和工程技術(shù)人員參考。
多核處理器的問(wèn)世引發(fā)了計(jì)算機(jī)領(lǐng)域計(jì)算方式的一場(chǎng)革命,也給軟件產(chǎn)業(yè)帶來(lái)了更大的挑戰(zhàn);诙嗪颂幚砥鞯牟⑿芯幊桃殉蔀槌绦蜷_發(fā)人員必須掌握的技術(shù)!抖嗪思軜(gòu)與編程技術(shù)》旨在幫助軟件開發(fā)人員理解已有的Intel多核體系結(jié)構(gòu),并能編寫出高性能的并行代碼。書中不僅介紹了基本的多線程開發(fā)技術(shù),而且還引入了最新的面向應(yīng)用的專業(yè)化多核開發(fā)工具,有助于讀者快速編寫實(shí)用的并行程序!抖嗪思軜(gòu)與編程技術(shù)》既適用于大專院校信息類相關(guān)專業(yè)的師生,也適用于各類軟件開發(fā)人員。
隨著處理器技術(shù)的迅猛發(fā)展,Inter、AMD、IBM和Sun等知名廠商紛紛推出了在單片芯片上集成多個(gè)執(zhí)行核的微處理器產(chǎn)品。目前,無(wú)論是桌面應(yīng)用、移動(dòng)應(yīng)用、服務(wù)器還是嵌入式平臺(tái),都開始廣泛采用多核架構(gòu),現(xiàn)代計(jì)算平臺(tái)已全面進(jìn)入多核時(shí)代。
微處理器的發(fā)展進(jìn)一步促進(jìn)了并行計(jì)算的發(fā)展與普及,同時(shí)為軟件開發(fā)人員提供了新的機(jī)遇和挑戰(zhàn)。以前,軟件開發(fā)人員很少關(guān)心程序的并行化問(wèn)題,因?yàn)樵趩魏擞?jì)算機(jī)平臺(tái)上,程序只能并發(fā)執(zhí)行,而非真正地并行執(zhí)行,并行程序與串行程序無(wú)明顯差異。而在多核計(jì)算機(jī)平臺(tái)上,平行程序與串行程序性能差異明顯。因此,在多核計(jì)算平臺(tái)上設(shè)計(jì)多核程序,對(duì)于程序性能的提升顯得尤為重要。掌握多核架構(gòu)知識(shí)與具備多核程序設(shè)計(jì)能力已成為程序開發(fā)人員必備的素質(zhì)之一。
程序設(shè)計(jì)一直是高等院校各專業(yè)的一門重要的基礎(chǔ)課程,開設(shè)與多核架構(gòu)與編程開發(fā)相關(guān)的課程不僅是時(shí)代的需求,也是培養(yǎng)高素質(zhì)復(fù)合人才的需要。
目前,大多數(shù)與多核程序設(shè)計(jì)相關(guān)的教材是面向計(jì)算機(jī)專業(yè)的,這些教材很少涉及與電子信息處理領(lǐng)域直接相關(guān)的問(wèn)題,對(duì)于非計(jì)算機(jī)專業(yè)的學(xué)生而言,缺少足夠的面向?qū)I(yè)的多核編程指導(dǎo)。因此,編寫適用于非計(jì)算機(jī)專業(yè)的,尤其是針對(duì)電子信息專業(yè)的多核編程教材已是廣泛而迫切的現(xiàn)實(shí)需求。
本書第l章介紹了微處理器和并行計(jì)算機(jī)的發(fā)展歷程與趨勢(shì);第2章主要介紹了多核處理器的架構(gòu)與并行計(jì)算的模型;第3章詳細(xì)介紹了多線程編程的基礎(chǔ)和基本方法;第4章詳細(xì)介紹了OpenMP程序設(shè)計(jì)技術(shù);第5章介紹了如何運(yùn)用專業(yè)的多核工具來(lái)調(diào)試和優(yōu)化多核程序;第6章詳細(xì)介紹了Intel高性能集成基元開發(fā)庫(kù)的編程方法及其在信號(hào)處理中的應(yīng)用;第7章介紹了一些典型的專業(yè)化多核應(yīng)用開發(fā)平臺(tái),包括面向計(jì)算機(jī)視覺(jué)的多核編程工具OpenCV、MATLAB并行開發(fā)工具包和面向檢測(cè)自動(dòng)化的專業(yè)化軟件LabView的多核編程工具等。全書既涉及多核的硬件知識(shí),又涉及多核的軟件知識(shí);既注重通用編程,又強(qiáng)調(diào)與專業(yè)化編程相結(jié)合。實(shí)用化和專業(yè)化是本書的宗旨。
本書可作為高等院校信息技術(shù)相關(guān)專業(yè)的本科生和研究生教材,也可供相關(guān)領(lǐng)域的科研人員和工程技術(shù)人員參考。
本書的出版是團(tuán)隊(duì)協(xié)作努力的結(jié)果。在此,對(duì)為本書的編寫付出辛勤勞動(dòng)的人們致以特別感謝。本書第1章主要由謝銀波和楊建峰編寫,第2章主要由饒?jiān)迫A編寫,第3、4章主要由孫濤編寫,第5章主要由謝銀波編寫,第6章主要由李立編寫,第7章主要由鄭宏編寫。周建國(guó)參與了本書部分材料的收集和整理工作。全書由鄭宏整理定稿。武漢大學(xué)出版社王金龍和胡艷等同志為本書的出版做了大量工作。
第1章 導(dǎo)論
1.1 微處理器
1.1.1 單核處理器
1.1.2 多核處理器
1.1.3 未來(lái)處理器的發(fā)展趨勢(shì)
1.2 并行計(jì)算平臺(tái)
1.2.1 并行計(jì)算機(jī)的發(fā)展歷程
1.2.2 并行計(jì)算機(jī)系統(tǒng)的體系結(jié)構(gòu)
1.2.3 并行計(jì)算機(jī)系統(tǒng)的性能指標(biāo)
第2章 多核處理器架構(gòu)與并行計(jì)算
2.1 單芯片多核處理器構(gòu)架
2.1.1 多核芯片與處理器
2.1.2 多核單芯片架構(gòu)
2.1.3 主流多核架構(gòu)
2.1.4 多核架構(gòu)性能問(wèn)題
2.2 多核處理器及其外圍芯片組
2.2.1 CPU外圍的主板芯片組
2.2.2 嵌入式軟件
2.2.3 EFI軟件對(duì)多核芯片的支持
2.3 多核處理器的并行計(jì)算模型
2.3.1 微處理器中的并行計(jì)算
2.3.2 SIMD同步并行計(jì)算模型
2.3.3 MIMD異步并行計(jì)算模型
2.3.4 并行程序設(shè)計(jì)模型
第3章 多線程編程基礎(chǔ)
3.1 多線程概念
3.1.1 何謂多線程
3.1.2 用戶線程與內(nèi)核線程
3.2 多線程模型與層次
3.2.1 多對(duì)一模型
3.2.2 一對(duì)一模型
3.2.3 多對(duì)多模型
3.2.4 多線程的層次
3.3 Window8多線程編程基礎(chǔ)知識(shí)
3.3.1 基礎(chǔ)知識(shí)
3.3.2 例程
3.4 多線程的同步及其編程
3.4.1 臨界區(qū)同步
3.4.2 互斥量同步
3.4.3 信號(hào)量同步
3.4.4 事件同步
3.4.5 死鎖問(wèn)題
第4章 OpenMP多線程編程
4.1 OpenMP編程簡(jiǎn)介
4.1.1 OpenMP及其特點(diǎn)簡(jiǎn)介
4.1.2 OpenMP發(fā)展歷史
4.2 OpenMP編程基礎(chǔ)
4.2.1 OpenMP體系結(jié)構(gòu)
4.2.2 fork.join并行模型
4.2.3 OpenMP編程
4.2.4 OpenMP指令庫(kù)
4.2.5 指導(dǎo)語(yǔ)句作用域
4.2.6 主要編譯指導(dǎo)語(yǔ)句
4.3 OpenMP編程實(shí)例及分析
4.3.1 OpenMP編程環(huán)境變量
4.3.2 常用指導(dǎo)語(yǔ)句用法
4.3.3 OpenMP實(shí)例分析比較
第5章 多核程序調(diào)試與性能優(yōu)化
5.1 IntelC++編譯器
5.1.1 IntelC++編譯器簡(jiǎn)介
5.1.2 InteC++編譯器的調(diào)用
5.1.3 使用IntelC++編譯器優(yōu)化應(yīng)用程序
5.2 IntelVTune性能分析器
5.2.1 IntelVTune性能分析器簡(jiǎn)介
5.2.2 IntelVTune性能分析器的使用
5.2.3 利用VTune性能分析器優(yōu)化分析應(yīng)用程序性能
5.3 線程檢測(cè)器
5.3.1 線程檢測(cè)器簡(jiǎn)介
5.3.2 線程檢測(cè)器的使用
5.3.3 使用線程檢測(cè)器查找應(yīng)用程序的潛在問(wèn)題
5.4 線程檔案器
5.4.1 線程檔案器簡(jiǎn)介
5.4.2 線程檔案器的使用
5.4.3 線程檔案器優(yōu)化應(yīng)用程序性能
第6章 高性能多核編程——IPP程序設(shè)計(jì)
6.1 IPP簡(jiǎn)介與使用
6.1.1 什么是IntelIPP
6.1.2 IPP與Intel其他組件的關(guān)系
6.1.3 IPP的安裝
6.2 IPP編程技術(shù)基礎(chǔ)
6.2.1 架構(gòu)與接口
6.2.2 IPP基本編程方法
6.3 IPP編程實(shí)例
6.3.1 基于IPP的數(shù)字信號(hào)處理編程
6.3.2 基于IPP的數(shù)字圖像處理編程
第7章 面向應(yīng)用的多核編程工具
7.1 面向計(jì)算機(jī)視覺(jué)的多核編程工具——OpenCV
7.1.1 OpencV的主要特點(diǎn)
7.1.2 OpenCV的主要功能
7.1.3 OpenCV的體系結(jié)構(gòu)
7.1.4 基于OpencV的應(yīng)用程序的開發(fā)步驟與示例
7.2 面向檢測(cè)自動(dòng)化的多核編程工具——LabView8.5
7.2.1 LabView8.5 簡(jiǎn)介
7.2.2 LabView多核編程示例
7.2.3 LabView多核應(yīng)用示例
7.3 面向科學(xué)計(jì)算的多核編程工具——MATLAB分布式計(jì)算工具包
7.3.1 MATLAB分布式計(jì)算工具包簡(jiǎn)介
7.3.2 分布式計(jì)算工具包的主要功能
7.3.3 分布式計(jì)算工具包的基本編程
附錄 Visual Studio配置說(shuō)明
參考文獻(xiàn)
、艿凸模核梢詫⒍鄠(gè)任務(wù)分給多個(gè)核去做,也可以將一個(gè)任務(wù)分給多個(gè)核去做,這樣雖然對(duì)于單核和多核來(lái)說(shuō)總?cè)蝿?wù)量是一樣的,但是多核CPU在處理任務(wù)的時(shí)候,每個(gè)核都只是完成總?cè)蝿?wù)的一小部分,所以占用每個(gè)核的使用率很低,這樣使得每個(gè)核的發(fā)熱量都很小。
1.1.3 未來(lái)處理器的發(fā)展趨勢(shì)
應(yīng)用需求的不斷提高是計(jì)算機(jī)發(fā)展的根本動(dòng)力,Internet的應(yīng)用、P2P和普適計(jì)算的應(yīng)用都促使計(jì)算機(jī)性能不斷提升,多核技術(shù)已經(jīng)成為微處理器技術(shù)的重要技術(shù)支點(diǎn)。大型企業(yè)的:ERP、CRM等復(fù)雜應(yīng)用,科學(xué)計(jì)算、政府的大型數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)字醫(yī)療、電信、金融等領(lǐng)域都需要高性能計(jì)算,都需要多核技術(shù)乃至多核微處理器的支持。無(wú)疑,未來(lái)將是多核微處理器的時(shí)代。
多核CPU在設(shè)計(jì)上將更為靈活,它已不局限于雙核的對(duì)稱(即同構(gòu))設(shè)計(jì),緩存單元與任務(wù)分配更合理,核心間通信更快捷,這些特性決定了它在芯片設(shè)計(jì)方面,對(duì)稱和非對(duì)稱(即同構(gòu)和異構(gòu)結(jié)構(gòu))將成為兩大發(fā)展方向。
按計(jì)算內(nèi)核的對(duì)等與否,片上多核處理器(CMP,chip multi-processor)可分為同構(gòu)多核和異構(gòu)多核。
計(jì)算內(nèi)核相同、地位對(duì)等的稱為同構(gòu)多核,Intel公司和AMD公司現(xiàn)在主推的雙核處理器,就是同構(gòu)的雙核處理器。
很早以前就有專家指出,同構(gòu)多核具有局限性,即使增加集成CPU內(nèi)核的數(shù)量,根據(jù)用途不同,有時(shí)并不能相應(yīng)地提高性能。這就是所謂的“Amdahl定律”。Amdahl定律的看法是,即使通過(guò)增加同種CPU內(nèi)核數(shù)量,具備并行處理能力,但處理量(處理成果)存在著來(lái)自必須逐次執(zhí)行軟件的限制。
計(jì)算內(nèi)核不同、地位不對(duì)等的稱為異構(gòu)多核。異構(gòu)多核多采用“主處理核+協(xié)處理核”的設(shè)計(jì),IBM、索尼和東芝等公司聯(lián)手設(shè)計(jì)推出的Cell處理器正是這種異構(gòu)架構(gòu)的典范。處理核本身的結(jié)構(gòu)關(guān)系到整個(gè)芯片的面積、功耗和性能。怎樣繼承和發(fā)展傳統(tǒng)處理器的成果,直接影響多核的性能和實(shí)現(xiàn)周期。同時(shí),根據(jù)Amdahl定律,程序的加速比決定于串行部分的性能,所以,從理論上來(lái)看,似乎異構(gòu)微處理器的結(jié)構(gòu)具有更好的性能。
目前,圖形芯片具有的浮點(diǎn)運(yùn)算性能已經(jīng)大大超越了處理器。如果能夠靈活運(yùn)用,隨著圖形芯片的發(fā)展,將會(huì)涌現(xiàn)出各種各樣新的應(yīng)用。在占據(jù):PC及服務(wù)器主流地位的x86處理器中,圍繞GPU(圖形處理單元)展開的相關(guān)研發(fā)工作已成為一大熱點(diǎn)。
從電腦出現(xiàn)直到20世紀(jì)90年代,顯示器上的畫面都是2D的,無(wú)論是一個(gè)漢字還是一張圖片。早期顯卡只是一個(gè)命令執(zhí)行者,一切都需要聽CPU的,其充當(dāng)?shù)慕巧珒H僅是CPu的助手。但是,隨著3D渲染概念的出現(xiàn),CPU和顯卡之間的關(guān)系就出現(xiàn)了變化。由于早期的顯卡只能處理2D圖像,并不知道如何進(jìn)行3D圖形處理,因此CPU不得不將3D渲染指令編譯成顯卡能識(shí)別的2D指令,長(zhǎng)此以往,CPU整天疲于為顯卡進(jìn)行指導(dǎo)工作,抽不出時(shí)間來(lái)干本職工作,而導(dǎo)致工作效率低下,于是顯示卡商們決定給顯卡加上3D處理能力。
自從擁有3D處理能力,顯卡在計(jì)算機(jī)系統(tǒng)的作用已經(jīng)從過(guò)去不顯眼的角色上升到比較重要的位置,輔助并分擔(dān)此前由CPU來(lái)執(zhí)行的3D圖形加速方面的大量計(jì)算。