基本介紹
內容簡介,圖書目錄,
內容簡介
《MIC高性能計算編程指南》是全球第一本全面介紹MIC軟硬體體系架構、套用及編程開發最佳化的書籍。書中介紹了使用MIC進行通用計算所需要了解的硬體架構、語法、程式最佳化技巧等知識,是進行MIC高性能與通用計算程式開發的入門教材和參考書。《MIC高性能計算編程指南》共分12章。第1章介紹高性能計算的發展歷程;第2章深入介紹MIC的軟硬體架構;第3章介紹MIC編程環境的搭建;第4章引入一個簡單的MIC實例;第5章簡要介紹與MIC編程相關的PpenMP和MPI相關知識;第6章詳細講解了MIC編程的語法;第7章介紹MIC編程用到的工具軟體;第8章介紹MIC可以使用的數學庫及其用法;第9章詳細講解如何最佳化MIC程式,從多個方面系統闡述了MIC最佳化的方式和方法;第10章通過一個典型的矩陣乘法示例,展示MIC最佳化方法的套用;第11章介紹將MIC技術套用於工程中的流程和方法;第12章引入兩個實際工程的例子,講解如何將MIC技術套用於實際生產過程當中。
《MIC高性能計算編程指南》可作為MIC的入門學習和編程參考書,主要面向從事高性能計算的程式設計師與工程師、MIC加速計算專業領域的科研人員,以及對MIC通用計算感興趣的程式設計師,也可作為開設相關課程的高等院校與科研機構的教材。《MIC高性能計算編程指南》由王恩東等編著。
圖書目錄
序一
序二
前言
第一篇MIC基礎篇
第1章MIC高性能計算
1.1多核、眾核計算的發展
1.2MIC技術簡介
1.3為什麼要選擇MIC
1.3.1SMP
1.3.2集群(cluster)
1.3.3GPGPU
第2章MIC硬體及軟體架構
2.1MIC硬體架構
2.1.1術語解析
2.1.2MIC硬體架構概覽
2.1.3MICCore
2.1.4環形互聯匯流排ring
2.1.5CLOCK
2.1.6頁表(PageTables)
2.1.7系統接口
2.1.8性能監控單元和事件管理器
2.1.9電源管理
2.2MIC軟體架構
2.2.1概述
2.2.2Bootstrap
2.2.3Linux載入器
2.2.4微作業系統(μOS)
2.2.5對稱通信接口(SCIF)
2.2.6主機驅動
2.2.7sysfs節點
2.2.8MPI套用的MIC軟體棧
2.2.9套用編程接口(API)
第3章MIC安裝、環境配置
3.1MIC環境配置
3.1.1前期準備
3.1.2安裝Host端的Linux作業系統
3.1.3安裝MIC驅動
3.1.4安裝在MIC上編譯C/C++的編譯器
3.2SDK示例運行
第4章第一個MIC實例——計算PI
第5章OpenMP和MPI編程基礎
5.1OpenMP基礎
5.1.1OpenMP簡介
5.1.2OpenMP編程模型
5.1.3OpenMP語法簡要介紹
5.2MPI基礎
5.2.1啟動和終止MPI庫
5.2.2獲取信息
5.2.3傳送和接收訊息
第6章MIC編程
6.1MIC編程模型
6.2套用模式
6.2.1CPU原生模式
6.2.2CPU為主MIC為輔模式
6.2.3CPU與MIC對等模式
6.2.4MIC為主CPU為輔模式
6.2.5MIC原生模式
6.3MIC基本語法
6.3.1offload
6.3.2變數和函式聲明
6.3.3頭檔案
6.3.4環境變數
6.3.5編譯選項
6.3.6其他問題
6.4MIC上的MPI
6.4.1MIC上的MPI限制
6.4.2MIC上MPI編程模型
6.4.3MIC上的MPI環境配置
6.4.4編譯及使用
6.4.5MIC上的MPI示例
6.5SCIF編程
6.5.1什麼是SCIF
6.5.2SCIF的基本概念介紹
6.5.3SCIF基本通信過程
6.5.4SCIF用到的API函式
第7章MIC軟體調試與性能分析工具
7.1Intel軟體工具鏈對MIC的支持
7.2MIC軟體調試工具IDB
7.2.1IDB簡介
7.2.2IDB的操作界面
7.2.3IDB對MIC架構的支持與要求
7.2.4使用IDB調試MIC程式
7.3MIC性能分析工具VTune
第8章IntelMICMKL庫使用方法
8.1IntelMKL核心函式館介紹
8.2在MIC卡上使用IntelMKL
8.2.1編譯器輔助offload方式
8.2.2自動offload方式
8.3FFT在MIC上的使用
8.3.1FFT簡介
8.3.2FFT在MIC上的使用方法一
8.3.3FFT在MIC上的使用方法二
8.4BLAS在MIC上的使用
8.4.1BLAS簡介
8.4.2在MIC上調用BLAS庫方法
第二篇性能最佳化篇
第9章MIC性能最佳化
9.1MIC性能最佳化策略
9.2MIC最佳化方法
9.2.1並行度最佳化
9.2.2記憶體管理最佳化
9.2.3數據傳輸最佳化
9.2.4存儲器訪問最佳化
9.2.5向量化最佳化
9.2.6負載均衡最佳化
9.2.7MIC執行緒擴展性最佳化
第10章MIC最佳化示例:矩陣乘法
10.1矩陣乘法串列算法
10.2OpenMP多執行緒矩陣乘法
10.3MIC多執行緒矩陣乘法
10.3.1基本版本
10.3.2向量化最佳化
10.3.3SIMD指令最佳化
10.3.4矩陣分塊乘法
第三篇工程開發篇
第11章基於MIC的HPC套用開發過程
11.1熱點測試
11.1.1準備工作
11.1.2熱點測試及定位
11.2程式分析
11.2.1程式移植模式分析
11.2.2計算規模分析
11.2.3特點分析
11.2.4熱點並行性分析
11.2.5向量化分析
11.2.6MIC記憶體分析
11.2.7程式分析總結
11.3MIC程式開發過程
11.3.1基於CPU的OpenMP並行
11.3.2基於MIC的執行緒擴展
11.3.3單節點CPU+MIC協同並行
11.3.4MIC集群並行
第12章基於MIC的HPC套用實例
12.1基於單節點CPU+MIC協同計算電子斷層三維重構並行算法
12.1.1電子斷層三維重構技術及SIRT算法介紹
12.1.2SIRT串列程式分析
12.1.3基於OpenMP的SIRT並行程式開發
12.1.4基於MIC平台的SIRT並行程式開發
12.1.5單節點多卡及CPU+MIC異構協同計算架構設計
12.2基於多節點CPU+MIC協同計算大渦模擬並行算法
12.2.1格子—Boltzmann大渦模擬算法介紹
12.2.2大渦模擬串列程式分析
12.2.3基於OpenMP的大渦模擬並行算法
12.2.4基於MIC的大渦模擬並行算法
12.2.5基於多節點CPU+MIC協同計算平台的大渦模擬並行算法
參考文獻
序二
前言
第一篇MIC基礎篇
第1章MIC高性能計算
1.1多核、眾核計算的發展
1.2MIC技術簡介
1.3為什麼要選擇MIC
1.3.1SMP
1.3.2集群(cluster)
1.3.3GPGPU
第2章MIC硬體及軟體架構
2.1MIC硬體架構
2.1.1術語解析
2.1.2MIC硬體架構概覽
2.1.3MICCore
2.1.4環形互聯匯流排ring
2.1.5CLOCK
2.1.6頁表(PageTables)
2.1.7系統接口
2.1.8性能監控單元和事件管理器
2.1.9電源管理
2.2MIC軟體架構
2.2.1概述
2.2.2Bootstrap
2.2.3Linux載入器
2.2.4微作業系統(μOS)
2.2.5對稱通信接口(SCIF)
2.2.6主機驅動
2.2.7sysfs節點
2.2.8MPI套用的MIC軟體棧
2.2.9套用編程接口(API)
第3章MIC安裝、環境配置
3.1MIC環境配置
3.1.1前期準備
3.1.2安裝Host端的Linux作業系統
3.1.3安裝MIC驅動
3.1.4安裝在MIC上編譯C/C++的編譯器
3.2SDK示例運行
第4章第一個MIC實例——計算PI
第5章OpenMP和MPI編程基礎
5.1OpenMP基礎
5.1.1OpenMP簡介
5.1.2OpenMP編程模型
5.1.3OpenMP語法簡要介紹
5.2MPI基礎
5.2.1啟動和終止MPI庫
5.2.2獲取信息
5.2.3傳送和接收訊息
第6章MIC編程
6.1MIC編程模型
6.2套用模式
6.2.1CPU原生模式
6.2.2CPU為主MIC為輔模式
6.2.3CPU與MIC對等模式
6.2.4MIC為主CPU為輔模式
6.2.5MIC原生模式
6.3MIC基本語法
6.3.1offload
6.3.2變數和函式聲明
6.3.3頭檔案
6.3.4環境變數
6.3.5編譯選項
6.3.6其他問題
6.4MIC上的MPI
6.4.1MIC上的MPI限制
6.4.2MIC上MPI編程模型
6.4.3MIC上的MPI環境配置
6.4.4編譯及使用
6.4.5MIC上的MPI示例
6.5SCIF編程
6.5.1什麼是SCIF
6.5.2SCIF的基本概念介紹
6.5.3SCIF基本通信過程
6.5.4SCIF用到的API函式
第7章MIC軟體調試與性能分析工具
7.1Intel軟體工具鏈對MIC的支持
7.2MIC軟體調試工具IDB
7.2.1IDB簡介
7.2.2IDB的操作界面
7.2.3IDB對MIC架構的支持與要求
7.2.4使用IDB調試MIC程式
7.3MIC性能分析工具VTune
第8章IntelMICMKL庫使用方法
8.1IntelMKL核心函式館介紹
8.2在MIC卡上使用IntelMKL
8.2.1編譯器輔助offload方式
8.2.2自動offload方式
8.3FFT在MIC上的使用
8.3.1FFT簡介
8.3.2FFT在MIC上的使用方法一
8.3.3FFT在MIC上的使用方法二
8.4BLAS在MIC上的使用
8.4.1BLAS簡介
8.4.2在MIC上調用BLAS庫方法
第二篇性能最佳化篇
第9章MIC性能最佳化
9.1MIC性能最佳化策略
9.2MIC最佳化方法
9.2.1並行度最佳化
9.2.2記憶體管理最佳化
9.2.3數據傳輸最佳化
9.2.4存儲器訪問最佳化
9.2.5向量化最佳化
9.2.6負載均衡最佳化
9.2.7MIC執行緒擴展性最佳化
第10章MIC最佳化示例:矩陣乘法
10.1矩陣乘法串列算法
10.2OpenMP多執行緒矩陣乘法
10.3MIC多執行緒矩陣乘法
10.3.1基本版本
10.3.2向量化最佳化
10.3.3SIMD指令最佳化
10.3.4矩陣分塊乘法
第三篇工程開發篇
第11章基於MIC的HPC套用開發過程
11.1熱點測試
11.1.1準備工作
11.1.2熱點測試及定位
11.2程式分析
11.2.1程式移植模式分析
11.2.2計算規模分析
11.2.3特點分析
11.2.4熱點並行性分析
11.2.5向量化分析
11.2.6MIC記憶體分析
11.2.7程式分析總結
11.3MIC程式開發過程
11.3.1基於CPU的OpenMP並行
11.3.2基於MIC的執行緒擴展
11.3.3單節點CPU+MIC協同並行
11.3.4MIC集群並行
第12章基於MIC的HPC套用實例
12.1基於單節點CPU+MIC協同計算電子斷層三維重構並行算法
12.1.1電子斷層三維重構技術及SIRT算法介紹
12.1.2SIRT串列程式分析
12.1.3基於OpenMP的SIRT並行程式開發
12.1.4基於MIC平台的SIRT並行程式開發
12.1.5單節點多卡及CPU+MIC異構協同計算架構設計
12.2基於多節點CPU+MIC協同計算大渦模擬並行算法
12.2.1格子—Boltzmann大渦模擬算法介紹
12.2.2大渦模擬串列程式分析
12.2.3基於OpenMP的大渦模擬並行算法
12.2.4基於MIC的大渦模擬並行算法
12.2.5基於多節點CPU+MIC協同計算平台的大渦模擬並行算法
參考文獻