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