注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計程序設(shè)計綜合Intel Xeon Phi協(xié)處理器高性能編程指南

Intel Xeon Phi協(xié)處理器高性能編程指南

Intel Xeon Phi協(xié)處理器高性能編程指南

定 價:¥79.00

作 者: (美)Jim Jeffers,James Reinders 著,陳健,李慧,楊昆 等譯
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 編程語言與程序設(shè)計 計算機與互聯(lián)網(wǎng)

ISBN: 9787115347848 出版時間: 2014-04-01 包裝: 平裝
開本: 16開 頁數(shù): 379 字?jǐn)?shù):  

內(nèi)容簡介

  《Intel Xeon Phi協(xié)處理器高性能編程指南》由英特爾的技術(shù)專家撰寫,是目前為止最全面、最系統(tǒng)地講解在英特爾至強處理器和至強融核協(xié)處理器上進行并行應(yīng)用開發(fā)的專著。《Intel Xeon Phi協(xié)處理器高性能編程指南》從賽車與至強融核協(xié)處理器之間的相似性入手,抽絲剝繭、層層深入,探討實際案例指導(dǎo)編程應(yīng)用,并對協(xié)處理器向量化、協(xié)處理器分載模式、協(xié)處理器架構(gòu)及Linux系統(tǒng)、數(shù)學(xué)庫,以及協(xié)處理器采樣、計時與優(yōu)化等進行了詳細(xì)的解析,是一本詳盡的至強融核協(xié)處理器使用參考指南。特別是,《Intel Xeon Phi協(xié)處理器高性能編程指南》所采用的方法兼容了對未來編程模式的展望和支持,書中所闡述的統(tǒng)一、標(biāo)準(zhǔn)和靈活的編程模式,對于未來作為獨立處理器使用的MIC眾核產(chǎn)品同樣適用?!禝ntel Xeon Phi協(xié)處理器高性能編程指南》適用于想要系統(tǒng)學(xué)習(xí)英特爾至強融核協(xié)處理器編程的讀者,無需借助其他參考書,即可循序漸進、全面掌握。

作者簡介

  James Reinders, 英特爾軟件總監(jiān),首席技術(shù)布道師。 Jim Jeffers, 英特爾MIC(集成眾核)架構(gòu)專家。

圖書目錄

第1章 緒論 1
1.1 更加并行化 1
1.2 為什么需要Intel Xeon Phi協(xié)處理器 2
1.3 協(xié)處理器平臺 5
1.4 第一款I(lǐng)ntel Xeon Phi協(xié)處理器 7
1.5 控制“Ninja鴻溝”于一定范圍 9
1.6 移植與優(yōu)化的雙重優(yōu)勢 9
1.7 何時使用Intel Xeon Phi協(xié)處理器 10
1.8 實現(xiàn)處理器性能最優(yōu) 11
1.9 為何擴展超過100個線程如此重要 11
1.10 最大化并行程序性能 14
1.11 評估高度并行執(zhí)行的能力 14
1.12 對于GPU是怎么樣的 15
1.13 易于移植,也易于提升性能 16
1.14 性能移植 16
1.15 超線程與多線程 17
1.16 協(xié)處理器主要使用模型:MPI和Offload 17
1.17 編譯器和編程模型 18
1.18 緩存優(yōu)化 19
1.19 案例和細(xì)節(jié) 20
1.20 更多信息 21
第2章 高性能封閉追蹤測試驅(qū)動 23
2.1 揭開引擎蓋:協(xié)處理器詳解 24
2.2 發(fā)動汽車:與協(xié)處理器溝通 25
2.3 輕松上路:首次運行代碼 27
2.4 開始加速:多線程運行代碼 31
2.5 全速行駛:使用所有核心 36
2.6 輕松過彎:訪存帶寬 45
2.7 高速漂移:內(nèi)存帶寬最大化 50
2.8 總結(jié) 52
第3章 一場鄉(xiāng)間公路友誼賽 55
3.1 賽前準(zhǔn)備:本章重點 55
3.2 初識賽道:9點模板算法 56
3.3 起跑線上:9點模板基準(zhǔn)程序 58
3.4 路在前方:運行基準(zhǔn)模板代碼 63
3.5 石子路上:向量化而未擴展 65
3.6 全力比賽:向量化加上規(guī)模擴展 67
3.7 扳手和潤滑油:代碼微調(diào) 70
3.7.1 基準(zhǔn)校正 70
3.7.2 使用流存儲 72
3.7.3 使用2MB大型存儲頁 73
3.8 總結(jié) 74
3.9 更多信息 75
第4章 都市暢游:實際代碼優(yōu)化案例 77
4.1 選擇方向:基本的擴散算法 78
4.2 到達(dá)路口:計算邊界效應(yīng) 78
4.3 尋找林蔭大道:代碼擴展化 84
4.4 雷霆之路:保證向量化 86
4.5 剝離:從最內(nèi)層循環(huán)開始 89
4.6 嘗試辛烷含量更高的燃料:利用數(shù)據(jù)局部性與切片分塊提升速度 92
4.7 高速駕駛認(rèn)證:高速旅行的總結(jié) 96
第5章 大數(shù)據(jù)(向量) 99
5.1 為什么向量化 99
5.2 如何向量化 100
5.3 實現(xiàn)向量化的五種方法 100
5.4 六步向量化方法論 102
5.5 通過Cache流:布局、對齊、預(yù)取數(shù)據(jù) 104
5.5.1 為什么數(shù)據(jù)布局影響向量化性能 104
5.5.2 數(shù)據(jù)校準(zhǔn) 106
5.5.3 預(yù)取 107
5.5.4 流存儲 112
5.6 編譯器技巧 114
5.6.1 避免手動展開循環(huán) 114
5.6.2 循環(huán)向量化的要求(英特爾編譯器) 115
5.6.3 內(nèi)聯(lián)的重要性,簡單性能分析的干擾 116
5.7 編譯器選項 117
5.8 編譯器指導(dǎo)指令 118
5.8.1 SIMD指令 119
5.8.2 VECTOR與NOVECTOR指令 123
5.8.3 IVDEP指令 124
5.8.4 隨機數(shù)函數(shù)向量化 126
5.8.5 充分向量化 128
5.8.6 -opt-assume-safe-padding選項 130
5.8.7 數(shù)據(jù)對齊 130
5.8.8 在數(shù)組表示法(Array Notation)中權(quán)衡向量長度 134
5.9 使用數(shù)組段(Array Section)支持向量化 137
5.9.1 Fortran數(shù)組段 137
5.9.2 Cilk Plus數(shù)組段和元素函數(shù) 139
5.10 查看編譯器生成:匯編代碼檢測 143
5.10.1 如何找到匯編代碼 143
5.10.2 快速查看匯編代碼 145
5.11 向量化數(shù)值結(jié)果差異 149
5.12 總結(jié) 149
5.13 更多信息 149
第6章 多任務(wù)(非多線程) 151
6.1 OpenMP、Fortran2008、Intel TBB、Intel Cilk Plus、Intel MKL 152
6.1.1 需在協(xié)處理器上創(chuàng)建任務(wù) 153
6.1.2 線程池的重要性 154
6.2 OpenMP 154
6.2.1 并行處理模型 155
6.2.2 指導(dǎo)性語句 155
6.2.3 OpenMP上的有效控制 155
6.2.4 嵌套 156
6.3 Fortran 2008 157
6.3.1 DO CONCURRENT 157
6.3.2 DO CONCURRENT以及數(shù)據(jù)競爭 157
6.3.3 DO CONCURRENT定義 158
6.3.4 DO CONCURRENT對比FOR ALL 159
6.3.5 DO CONCURRENT對比OpenMP“Parallel” 160
6.4 Intel TBB 160
6.4.1 發(fā)展歷史 162
6.4.2 使用TBB 163
6.4.3 parallel_for 163
6.4.4 blocked_range 164
6.4.5 Partitioners 164
6.4.6 Parallel_reduce 165
6.4.7 Parallel_invoke 166
6.4.8 C + +11相關(guān) 166
6.4.9 TBB總結(jié) 167
6.5 Cilk Plus 167
6.5.1 發(fā)展歷史 169
6.5.2 從TBB借用組件 169
6.5.3 向TBB提供組件 170
6.5.4 關(guān)鍵字拼寫 170
6.5.5 cilk_for 170
6.5.6 cilk_spawn與cilk_sync 171
6.5.7 Reducers(超對象) 172
6.5.8 數(shù)組表示法與基本函數(shù) 173
6.5.9 Cilk Plus總結(jié) 173
6.6 總結(jié) 173
6.7 更多信息 173
第7章 分載(Offload) 175
7.1 兩種分載模式 176
7.2 分載執(zhí)行與本地執(zhí)行 176
7.2.1 非共享內(nèi)存模式:使用分載編譯器指導(dǎo)指令(Pragma) 177
7.2.2 共享虛擬內(nèi)存模式:通過共享虛擬內(nèi)存使用分載 177
7.2.3 Intel數(shù)學(xué)函數(shù)庫(Intel MKL)自動分載 178
7.3 分載的語言擴展支持 178
7.3.1 分載的編譯器選項和環(huán)境變量 179
7.3.2 分載的共享環(huán)境變量 181
7.3.3 針對多個協(xié)處理器分載 181
7.4 使用編譯器指導(dǎo)指令分載 182
7.4.1 設(shè)置協(xié)處理器上的變量與函數(shù) 184
7.4.2 指針變量的內(nèi)存分配與管理 186
7.4.3 時間優(yōu)化:堅持分配的另外一個原因 193
7.4.4 對C/C++目標(biāo)代碼使用編譯器指導(dǎo)指令 193
7.4.5 對Fortran語言中的目標(biāo)代碼使用指導(dǎo)指令 195
7.4.6 執(zhí)行單一處理器時不創(chuàng)建代碼 196
7.4.7 英特爾MIC架構(gòu)預(yù)定義宏 197
7.4.8 Fortran數(shù)組 197
7.4.9 為部分C/C++數(shù)組分配內(nèi)存 197
7.4.10 為部分Fortran數(shù)組分配內(nèi)存 198
7.4.11 兩變量間的數(shù)據(jù)轉(zhuǎn)移 199
7.4.12 分載代碼指令使用的限制條件 200
7.5 在共享虛擬存儲器上使用分載 202
7.5.1 使用共享內(nèi)存及共享變量 203
7.5.2 關(guān)于共享函數(shù) 204
7.5.3 共享內(nèi)存管理函數(shù) 204
7.5.4 同步函數(shù)執(zhí)行與異步函數(shù)執(zhí)行:_Cilk_offload 204
7.5.5 共享變量和函數(shù):_Cilk_shared 205
7.5.6 _Cilk_shared和Cilk_offload的使用規(guī)則 207
7.5.7 處理器與目標(biāo)之間的內(nèi)存同步 208
7.5.8 使用_Cilk_offload寫入具體目標(biāo)代碼 208
7.5.9 使用虛擬內(nèi)存分載代碼的限制因素 209
7.5.10 使用共享虛擬內(nèi)存時定義持久性數(shù)據(jù) 210
7.5.11 使用共享虛擬內(nèi)存持久性數(shù)據(jù)的C++聲明 212
7.6 關(guān)于異步計算 212
7.7 關(guān)于異步數(shù)據(jù)轉(zhuǎn)移 213
7.8 應(yīng)用目標(biāo)屬性至多個聲明 218
7.8.1 分載使用的vec-report可選項 219
7.8.2 測量分載區(qū)域的時間與數(shù)據(jù) 219
7.8.3 _Offload_report 219
7.8.4 在分載代碼中使用庫 220
7.8.5 關(guān)于使用xiar和xild創(chuàng)建分載程序庫 220
7.9 在協(xié)處理器上執(zhí)行I/O文件 221
7.10 從分載代碼中記錄stdout和stderr 223
7.11 總結(jié) 223
7.12 更多信息 224
第8章 協(xié)處理器架構(gòu) 225
8.1 Intel Xeon Phi協(xié)處理器產(chǎn)品家族 226
8.2 協(xié)處理器卡的設(shè)計 227
8.3 Intel Xeon Phi協(xié)處理器芯片概述 228
8.4 協(xié)處理器核架構(gòu) 229
8.5 指令集和多線程處理 230
8.6 緩存組織和內(nèi)存訪問 232
8.7 預(yù)取 234
8.8 向量處理單元架構(gòu) 234
8.9 協(xié)處理器PCI-E系統(tǒng)接口和DMA 239
8.10 協(xié)處理器電源管理 241
8.11 可靠性、可用性和可維護性(RAS) 244
8.12 協(xié)處理器系統(tǒng)管理控制器(SMC) 245
8.12.1 傳感器 246
8.12.2 散熱設(shè)計監(jiān)控和控制 246
8.12.3 風(fēng)扇控制 247
8.12.4 潛在應(yīng)用影響 247
8.13 基準(zhǔn)測試 247
8.14 總結(jié) 248
8.15 更多信息 248
第9章 協(xié)處理器系統(tǒng)軟件 251
9.1 協(xié)處理器軟件體系架構(gòu)概述 251
9.1.1 對稱性 253
9.1.2 Ring級別:用戶態(tài)和內(nèi)核態(tài) 253
9.2 協(xié)處理器編程模型和選項 253
9.2.1 寬度與深度 254
9.2.2 MPI編程模型 255
9.3 協(xié)處理器軟件體系架構(gòu)組件 257
9.4 英特爾眾核平臺軟件棧 258
9.4.1 MYO: Mine Yours Ours 258
9.4.2 COI:Coprocessor Offload Infrastructure 259
9.4.3 SCIF:Symmetric Communications Interface 259
9.4.4 Virtual networking(NetDev)、TCP/IP及sockets 259
9.4.5 協(xié)處理器系統(tǒng)管理 260
9.4.6 面向MPI應(yīng)用程序的協(xié)處理器組件 262
9.5 Linux對Intel Xeon Phi協(xié)處理器的支持 267
9.6 優(yōu)化內(nèi)存分配的性能 268
9.6.1 控制2MB內(nèi)存頁的數(shù)量 268
9.6.2 監(jiān)控協(xié)處理器上2MB內(nèi)存頁的數(shù)量 269
9.6.3 分配2MB內(nèi)存頁的方法示例 269
9.7 總結(jié) 270
9.8 更多信息 271
……
第10章 協(xié)處理器的Linux系統(tǒng) 273
第11章 數(shù)學(xué)庫 303
第12章 MPI 321
第13章 采樣和計時 341
第14章 總結(jié) 363
術(shù)語表 365

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號