釋放多核潛能

出版時間:2010-9  出版社:清華大學(xué)出版社  作者:英特爾亞太研發(fā)有限公司、并行科技 編著  頁數(shù):287  字?jǐn)?shù):475000  
Tag標(biāo)簽:無  

前言

隨著CPU技術(shù)進(jìn)入多核時代,如何有效利用多核并發(fā)運算優(yōu)勢,提升設(shè)備的處理能力,滿足用戶對高性能的需求,已成為業(yè)界關(guān)注的焦點。在單核CPU時代,處理器芯片廠商提升CPU運算能力的主要途徑是提高主頻。作為CPU的主要性能指標(biāo),主頻標(biāo)志著每單位時間內(nèi)CPU能夠執(zhí)行運算指令的數(shù)量。實際上,在單核CPU時代,處理器已經(jīng)實現(xiàn)了多線程運算,通過在邏輯上模擬出多個CPU內(nèi)核,以實現(xiàn)多任務(wù)調(diào)度和并發(fā)處理。然而,這些處理過程始終由單個CPU以線程切換的方式完成的,運算負(fù)載由單個CPU承擔(dān)。而多核CPU則在真正意義上實現(xiàn)了內(nèi)核級并行,與傳統(tǒng)的單核CPU相比,多核CPU帶來了更強(qiáng)的并行處理能力、更高的計算密度和更低的時鐘頻率,并大大減少了散熱和功耗。目前,越來越多用戶的PC系統(tǒng)都具備了雙核、四核的處理器。隨著處理器數(shù)的增加,程序的并行執(zhí)行度可以更高,但是目前不少用戶覺得多核沒有帶來很明顯的性能提升,這是因為現(xiàn)在針對多核開發(fā)和優(yōu)化的應(yīng)用程序還比較少。主要原因之一就是開發(fā)并行執(zhí)行程序的難度非常大,程序員面臨的巨大挑戰(zhàn)就是如何把需要執(zhí)行的任務(wù)并行化,而編寫并行度超過4路以上的高效率程序。程序員沒有經(jīng)過系統(tǒng)的專業(yè)學(xué)習(xí)和長期并行編程的實踐經(jīng)驗,編寫的程序就很難充分利用多核處理器帶來的并行計算優(yōu)勢。即使是并行編程經(jīng)驗豐富的程序員在編寫并行度較高的程序時的效率,相比他編寫并行度低的程序時的效率也要低得多。

內(nèi)容概要

本書采用工程理論、工具詳解和實際案例分析相結(jié)合的方式,全面介紹了英特爾Parallel Studio工具集的使用。全書分三部分:基礎(chǔ)部分(第1、2章)介紹了多核架構(gòu)、并行編程的關(guān)鍵理論,Parallel Studio的特點以及一些簡單案例;中級部分(第3~12章)詳述了Parallel Studio各個組件的使用,是本書的重點;提高部分(第13章)選取了來自英特爾線程挑戰(zhàn)賽的4個算例和1個商業(yè)軟件并行優(yōu)化案例,提供了從工程實際角度解決并行問題的視角?! ”緯m合所有對并行開發(fā)技術(shù)感興趣的人員,包括具備一定編程經(jīng)驗的程序員、調(diào)試人員,計算密集型行業(yè)的高性能計算架構(gòu)師、性能優(yōu)化分析師,并行開發(fā)的研究人員,對英特爾Parallel Studio感興趣的技術(shù)決策者等。此外,本書也可作為高等院校計算機(jī)專業(yè)并行開發(fā)相關(guān)課程的培訓(xùn)及社會實踐參考用書。

作者簡介

并行科技
北京并行科技有限公司(以下簡稱并行科技),是一家專注于高性能計算軟件與技術(shù)服務(wù)的高新技術(shù)企業(yè),與英特爾等軟硬件廠商有著密切的合作伙伴關(guān)系,主要客戶包括科研院所、能源、氣象、制造、金融、互聯(lián)網(wǎng)等計算密集型用戶。在程序并行化、優(yōu)化領(lǐng)域,并行科技擁有自主知識產(chǎn)權(quán)的Paramon、Paraview專業(yè)工具,積累了從搜集應(yīng)用特征、定位性能瓶頸到分級優(yōu)化的系統(tǒng)方法,被譽為“性能專家”。同時,并行科技作為英特爾軟件代理商,也為用戶提供卓越的英特爾軟件技術(shù)支持、培訓(xùn)等。
英特爾高性能計算支持團(tuán)隊
英特爾高性能計算支持團(tuán)隊,專注于多核平臺和服務(wù)器集群的并行應(yīng)用優(yōu)化,負(fù)責(zé)為國內(nèi)高性能計算和互聯(lián)網(wǎng)數(shù)據(jù)中心用戶,提供應(yīng)用性能優(yōu)化、代碼并行、應(yīng)用特征分析、開發(fā)工具培訓(xùn)以及并行解決方案建議和評估等工程支持,在石油勘探、制造業(yè)、氣候氣象、生命科學(xué)和互聯(lián)網(wǎng)搜索引擎等大規(guī)模并行應(yīng)用領(lǐng)域積累了豐富的經(jīng)驗。
英特爾軟件工具技術(shù)顧問團(tuán)隊
英特爾軟件工具技術(shù)顧問團(tuán)隊,由英特爾各領(lǐng)域?qū)<医M成,為所有英特爾軟件工具,如C/C++編譯器、Fortran編譯器、VTune性能分析器、核心數(shù)學(xué)庫、英特爾Parallel Studio等,提供專業(yè)的售前、售后服務(wù),并提供相關(guān)技術(shù)的高級培訓(xùn)。

書籍目錄

目    錄第1章  并行開發(fā)理論基礎(chǔ)	1.1  并行相關(guān)概念	1.1.1  并發(fā)與并行、并行度	1.1.2  粒度	1.1.3  加速比及其定律	1.1.4  可擴(kuò)展性與并行效率	1.1.5  負(fù)載均衡	1.1.6  吞吐量與延遲	1.1.7  熱點與瓶頸	1.2  多核并行	1.2.1  多核軟硬件現(xiàn)實	1.2.2  多核架構(gòu)	1.2.3  多核并行手段	1.2.4  多核并行設(shè)計方法	1.2.5  多核多線程系統(tǒng)	1.2.6  多核多線程同步	1.2.7  多核多線程實現(xiàn)的問題	1.3  小結(jié)	第2章  英特爾Parallel Studio基礎(chǔ)	2.1  英特爾Parallel Studio介紹	2.1.1  英特爾 Parallel Studio背景	2.1.2  英特爾 Parallel Studio的組成	2.1.3  英特爾 Parallel Studio的特色	2.1.4  英特爾 Parallel Studio的使用者	2.2  英特爾Parallel Studio快速上手	2.2.1  英特爾 Parallel Studio的下載安裝	2.2.2  選擇案例	2.2.3  實踐動手第一步:采用Parallel Studio運行串行程序	2.2.4  實踐動手第二步:選用合適的實現(xiàn)對代碼并行化	2.2.5  實踐動手第三步:定位錯誤	2.2.6  實踐動手第四步:性能優(yōu)化	2.3  小結(jié)	第3章  英特爾Parallel Composer詳解	3.1  Composer概述	3.2  英特爾C/C++編譯器	3.2.1  自動并行和OpenMP并行	3.2.2  過程間優(yōu)化	3.2.3  檔案導(dǎo)引優(yōu)化	3.2.4  編譯器向量化	3.3  英特爾并行調(diào)試器	3.3.1  英特爾并行調(diào)試器概述	3.3.2  線程數(shù)據(jù)共享偵測	3.3.3  可重入函數(shù)調(diào)用偵測	3.3.4  SSE寄存器窗口	3.3.5  OpenMP多線程調(diào)試	3.3.6  并行區(qū)域的串行執(zhí)行	3.4  英特爾TBB線程構(gòu)建模塊	3.4.1  英特爾TBB概述	3.4.2  功能模塊分類與介紹	3.4.3  編譯和運行TBB多線程程序	3.5  英特爾IPP性能基元	3.5.1  英特爾IPP概述	3.5.2  主要函數(shù)及其功能	3.5.3  編譯和運行	3.6  小結(jié)	第4章  并行化方法	4.1  基本概念	4.1.1  Amdahl定律	4.1.2  進(jìn)程與線程	4.2  并行化方法	4.3  并行化設(shè)計	4.3.1  任務(wù)劃分	4.3.2  功能劃分	4.3.3  并行化開發(fā)中的一些思考	4.4  案例分析:用蒙特卡羅方法計算π值	4.5  小結(jié)	第5章  英特爾Parallel Composer案例分析	5.1  案例5-1:Composer的使用——向量化和自動并行化	5.2  案例5-2:并行調(diào)試器的使用	5.3  案例5-3:通過TBB進(jìn)行字符串查找	5.4  案例5-4:IPP壓縮和解壓縮案例介紹	5.5  小結(jié)	第6章  英特爾Parallel Inspector詳解	6.1  Inspector概述	6.2  啟動Inspectort	6.2.1  工作流程	6.2.2  啟動	6.3  配置查找錯誤的類型和粒度	6.3.1  基于線程的相關(guān)錯誤及粒度	6.3.2  基于內(nèi)存的相關(guān)錯誤及粒度	6.4  定位和解決發(fā)現(xiàn)的錯誤	6.4.1  檢查錯誤	6.4.2  查看和分析錯誤	6.5  小結(jié)	第7章  軟件糾錯方法	7.1  基本概念	7.1.1  軟件查錯或糾錯	7.1.2  白盒測試	7.1.3  黑盒測試	7.2  并行軟件的糾錯	7.3  線程并行的常見錯誤	7.3.1  線程間死鎖	7.3.2  線程間競爭	7.3.3  內(nèi)存泄露	7.4  小結(jié)	第8章  并行軟件糾錯案例	8.1  案例8-1:線程間相互作用導(dǎo)致的死鎖問題	8.2  案例8-2:線程競爭	8.3  案例8-3:內(nèi)存泄露	8.4  小結(jié)	第9章  英特爾Parallel Amplifier詳解	9.1  Amplifier概述	9.1.1  如何開始Amplifier	9.1.2  如何使用符號信息	9.1.3  環(huán)境和對象	9.2  Amplifier的幾個概念	9.3  Amplifier的分析運行	9.3.1  分析運行的幾個選項	9.3.2  選擇分析模式	9.3.3  如何選擇分析模式	9.3.4  如何在命令行下運行分析模式	9.3.5  熱點:分析程序哪里耗時	9.3.6  并行度:展現(xiàn)并行程序的另外一個特點	9.3.7  鎖和等待:分析程序在哪里等待	9.3.8  選擇數(shù)據(jù)采集的時段	9.4  Amplifier中瀏覽性能數(shù)據(jù)結(jié)果	9.4.1  總覽	9.4.2  在Bottom-up和Top-down中切換	9.4.3  選擇和管理棧類型	9.4.4  選擇顏色方案	9.4.5  按照不同類型劃分組	9.4.6  在命令行模式下查看性能數(shù)據(jù)	9.5  Amplifier解釋性能數(shù)據(jù)結(jié)果	9.5.1  總覽	9.5.2  解釋熱點分析結(jié)果	9.5.3  解釋并行度分析結(jié)果	9.5.4  解釋鎖和等待分析結(jié)果	9.6  Amplifier中的源代碼	9.7  Amplifier中對比性能數(shù)據(jù)結(jié)果	9.8  Amplifier中管理結(jié)果文件	9.9  小結(jié)	第10章  性能優(yōu)化方法	10.1  性能優(yōu)化概述	10.1.1  性能和性能優(yōu)化是計算機(jī)領(lǐng)域不變的主題	10.1.2  性能優(yōu)化的定義	10.2  性能優(yōu)化通用方法	10.2.1  性能優(yōu)化的順序	10.2.2  系統(tǒng)級別的性能優(yōu)化	10.2.3  應(yīng)用級別的性能優(yōu)化	10.2.4  微架構(gòu)級別的性能優(yōu)化	10.2.5  性能優(yōu)化工作循環(huán)	10.2.6  性能優(yōu)化循環(huán)的常見問題	10.3  并行應(yīng)用性能優(yōu)化方法	10.3.1  概述	10.3.2  減少關(guān)鍵路徑上的時間	10.3.3  檢查是否選擇最優(yōu)的并行方法	10.3.4  檢查是否選擇合適的層級開始并行	10.3.5  Amdahl定律的檢查:減少串行部分的比例	10.3.6  檢查程序的負(fù)載均衡問題	10.3.7  檢查程序的粒度問題	10.3.8  采用合適的線程庫	10.3.9  檢查同步性能問題	10.3.10  檢查硬件導(dǎo)致的擴(kuò)展性問題	10.4  小結(jié)	第11章  性能優(yōu)化案例	11.1  IO并行:系統(tǒng)級優(yōu)化案例	11.2  鎖的實現(xiàn):鎖優(yōu)化案例	11.3  同步與負(fù)載均衡:生產(chǎn)消費類型的優(yōu)化案例	11.4  優(yōu)化臨界區(qū):WinThread循環(huán)計算型優(yōu)化案例	11.5  負(fù)載均衡與歸約:OpenMP循環(huán)計算型優(yōu)化案例	11.6  線程數(shù),桶數(shù)與鎖:Hash表與TBB優(yōu)化案例	11.7  選擇合適的層級并行:任務(wù)與數(shù)據(jù)并行優(yōu)化案例	11.8  避免硬件性能瓶頸:內(nèi)存與高速緩存優(yōu)化案例	11.9  算法選擇:排序優(yōu)化與TBB案例	11.10  內(nèi)存操作TBB優(yōu)化案例	11.11  小結(jié)	第12章  英特爾Parallel Advisor詳解	12.1  Advisor基礎(chǔ)	12.1.1  Advisor總覽	12.1.2  如何開始Advisor	12.2  Advisor工作流程	12.3  Annotations	12.4  Advisor 工具	12.4.1  Survey	12.4.2  Suitability	12.4.3  Correctness	12.5  使用案例	12.5.1  SpMV并行化	12.5.2  DGEMM并行化	12.6  小結(jié)	第13章  總體系統(tǒng)化案例	13.1  數(shù)獨	13.1.1  串行算法	13.1.2  并行優(yōu)化	13.1.3  小結(jié)	13.2  最短路徑	13.2.1  串行算法	13.2.2  并行優(yōu)化	13.2.3  小結(jié)	13.3  基數(shù)排序	13.3.1  串行算法	13.3.2  并行優(yōu)化	13.3.3  小結(jié)	13.4  騎士巡游	13.4.1  串行算法	13.4.2  并行優(yōu)化	13.4.3  小結(jié)	13.5  商業(yè)軟件Paraview	13.5.1  問題描述	13.5.2  并行優(yōu)化	13.5.3  小結(jié)	附錄A  英文術(shù)語表

章節(jié)摘錄

插圖:1.1.1并發(fā)與并行、并行度并行計算中常見的兩個名詞:并行與并發(fā)。二者有微妙的不同。并發(fā)是指從廣義上講只要同時多任務(wù)處理,就是并發(fā);但是并發(fā)并不能保證在每一個時刻都有多個任務(wù)(線程,進(jìn)程)同時工作。例如,一個單核處理器平臺并且這個平臺沒有或者沒有打開硬件超線程或者多線程功能,在上面運行一個多線程程序,雖然這個程序是并行程序,但是由于處理器資源有限,在任意一個時刻最多只有一個線程是工作的。并行就不同。并行是指在同一時刻,有多個任務(wù)同時運行,才稱之為并行。從性能上講,它體現(xiàn)了并行的計算能力。例如,在一個雙核處理器的平臺上運行多線程程序,如果并行程序設(shè)計得好,在某些時刻,同時運行的線程數(shù)應(yīng)該可以達(dá)到二,從而充分利用了處理器多核資源。因此,并行是指無論從微觀還是宏觀上看,都是多個線程或者進(jìn)程同時執(zhí)行,而并發(fā)在微觀上不是同時執(zhí)行的,只是把時間分成若干段,使多個進(jìn)程或線程快速交替地執(zhí)行。接下來還有并行度這個概念:在某個時刻同時工作的任務(wù)(線程,進(jìn)程)的數(shù)量,稱之為并行度。并行度越高,說明同時運行的任務(wù)數(shù)越多,如果相應(yīng)的核數(shù)合適,可以提高整體的計算能力,充分發(fā)揮并行程序的效率。當(dāng)然有時候也叫并發(fā)度,但是基本上都是在微觀上表示同時進(jìn)行的線程/進(jìn)程的個數(shù)。

媒體關(guān)注與評論

當(dāng)它向我正確指出占用時間最長的源代碼行時,我非常高興。修改之后,應(yīng)用程序的速度幾乎提高了10倍?!  晃荒涿鸼eta版測試人員這樣描述英特爾 Parallel Amplifier英特爾Parallel Studio中新的分析和評測工具,使得開發(fā)新的Envivio 4Caste r系列代碼轉(zhuǎn)換器變得更快更有效。尤其是通過使用英特爾Parallel Inspector和英特爾Parallel Amplifier,提高了代碼的可靠性及其在多核多線程環(huán)境下的性能,從而縮短了總體開發(fā)周期。在合格性檢查階段,由于安全性提高,減少了紊亂代碼的數(shù)量,錯誤跟蹤也變得更容易。英特爾ParallelStudio全面優(yōu)化了我們的軟件產(chǎn)品,并縮短了上市周期?!  狤ric Rosier 工程副總裁 Envivio公司英特爾Parallel Inspector和英特爾Parallel Amplifier極大地簡化了查找熱點和內(nèi)存泄露的任務(wù),整體性能提升兩倍,同時也消除了過去幾處未發(fā)現(xiàn)的內(nèi)存泄露,我們非常滿意?!  猇lad Romashko軟件開發(fā)經(jīng)理 OpenCascade S.A.S使用英特爾Parallel Studio能幫助我們對游戲進(jìn)行性能分析,找到熱點,并能定位內(nèi)存錯誤和線程錯誤。Parallel Studio與IDE完美整合,方便易用,使我們的開發(fā)效率和開發(fā)質(zhì)量大幅度提高,降低了風(fēng)險和成本?!  禅?開發(fā)主管 第九城市信息技術(shù)有限公司處理器從單核到多核的變遷.使得軟件的并行或者并發(fā)成為必然。“工欲善其事,必先利其器”,并行程序的調(diào)試和優(yōu)化尤其需要出色的開發(fā)工具。英特爾Parallel Studio方便、高效,在傳統(tǒng)的高性能計算領(lǐng)域已經(jīng)發(fā)揮了巨大的作用,而對每一個有志于進(jìn)行并行軟件開發(fā)的程序員來說,它都應(yīng)該是首選的開發(fā)工具。  ——姚繼鋒 原上海超級計算機(jī)中心首席架構(gòu)師 現(xiàn)中科嘉速(北京)并行軟件有限公司總經(jīng)理在TechED 2009的英特爾展臺,我們向用戶推薦了英特爾Parallel Studio,他們都認(rèn)為并行開發(fā)是未來的發(fā)展方向。Parallel Studio面向Windows用戶,4個組件涵蓋查找熱點、調(diào)試編譯、驗證和調(diào)優(yōu),與項目開發(fā)過程相吻合,很容易上手。這本書可以說是英特爾ParallelStudio并行開發(fā)的“紅寶書”值得一讀?!  亗?技術(shù)工程師 北京并行科技有限公司

編輯推薦

《釋放多核潛能:英特爾Parallel Studio并行開發(fā)指南》:多核時代,從串行到并行,你的編程思想和開發(fā)技術(shù)必修升級!

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    釋放多核潛能 PDF格式下載


用戶評論 (總計8條)

 
 

  •   專門針對Intel Parallel Studio寫的參考書,內(nèi)容詳實,但是需要一定的編程基礎(chǔ)和專業(yè)知識才能看懂。
  •   紙張不咋地,內(nèi)容太淺,當(dāng)然了,作為一本指南這水平也就夠了
  •   沒有詳細(xì)的使用介紹,倒像是一本廣告書,并且由于是不同的人或者公司寫的,其間沒有邏輯關(guān)聯(lián),一些大道理式的概念被反復(fù)提了好幾遍
  •   和Intel的軟件結(jié)合十分緊密,易于上手。
  •   不錯的書,但就是商業(yè)的味道有點兒濃了
  •   書中囊括很多方面,對并行編程感興趣的,可以看看
  •   首先PARALLEL STUDIO不是免費的,價格貴得很。并且這本書更面向于實際應(yīng)用,對原理講解的比較少。背面的書評講了不少知名公司通過使用PARALLEL STUDIO優(yōu)化程序的例子,不過給人感覺不是很真實。至少我現(xiàn)在覺得,PARALLEL STUDIO并沒有起到太大的作用。PS給我感覺有點像中國之前的電視購物廣告,有點忽悠的成分。... 閱讀更多
  •   快遞速度超快!紙質(zhì)也很好。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7