OpenACC並行編程實戰

OpenACC並行編程實戰 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
何滄平 著



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-09

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 機械工業齣版社
ISBN:9787111549659
版次:1
商品編碼:12060348
品牌:機工齣版
包裝:平裝
叢書名: 高性能計算技術叢書
開本:16開
齣版時間:2016-10-01
用紙:膠版紙
頁數:265


相關圖書





圖書描述

編輯推薦

  

HPC領域資深專傢推薦,中國極大OpenACC技術社區創建者撰寫,不可多得的OpenACC技術專著

全麵講解OpenACC編程規範、語法的行為機理與設計動機,160個完整示例覆蓋眾多並行編程場景


  

內容簡介

  

中國極大OpenACC技術社區創建者撰寫,為數不多係統介紹OpenACC的技術專著。全麵講解OpenACC編程規範、語法的行為機理與設計動機,160個完整示例覆蓋眾多並行編程場景。

全書分10章,按照並行程序開發步驟組織,建議第1遍順序閱讀。

第1章介紹主流加速器産品的硬件架構、主流並行編程模型等,以期讀者對並行編程生態有全麵瞭解。

第2章介紹OpenACC語言的設計思路,並列齣OpenACC的主要語法供快速查閱。

第3章是本書核心,將大量計算並行化,這是程序提速的根本手段。用大量示例講述兩個計算構件parallel和kernels的行為特點,然後用它並行化Jacobi 迭代。

第4章介紹多種數據管理工具,包含結構化子語copy/create/present、結構化導語data、非結構化導語enter data/exit data/update/declare等,將加速器帶來的數據移動時間減少。

第5章介紹routine導語,嵌套調用並行化自定義函數,用來開發大型程序。

第6章講解用異步隊列隱藏數據傳輸時間、調度多個加速器同時工作等高級特性。

第7章介紹OpenACC與CUDA C/CUDA Fortran和各類庫的混閤編程。

第8章是所有的運行時函數,以供讀者編程查閱。

第9章指導部署開發環境,以便快速上手。

第10章介紹神威?太湖之光的編程模型及其對OpenACC的功能擴展。


  

作者簡介

何滄平,華為高級工程師,NVIDIA認證 CUDA培訓師。曾任中科曙光HPC事業部工程師,完成全球天氣預報程序並行化項目(加速30倍)和國傢氣象局天氣預報程序並行化項目等,實戰經驗豐富。精通OpenACC、CUDA Fortran、CUDA C,熟悉OpenMP、MPI編程。2012年初開始關注研究OpenACC,陸續翻譯OpenACC 1.0/2.0/2.0a/2.5語言規範以及《CUDA Fortran高效編程實踐》,撰寫大量在綫技術教程,並建立中國*大OpenACC QQ交流群和資源網站,持續推廣。


精彩書評

  

對於想要掌握OpenACC使用技巧和編程精髓的讀者來說,本書是一本非常具有參考價值的學習教程。與傳統的技術書籍相比,本書更加注重內容的可讀性和易讀性,邏輯清晰,內容全麵準確,且更加注重編程實踐,有大量的C/C++/Fortran完整代碼實例,便於讀者學習和實踐。作為第1本中文的OpenACC技術書籍,可謂為國內的編程學習者帶來瞭福音。

——漆鋒濱 CCF常務理事,國傢並行計算機工程技術研究中心研究員


  

目錄


前言
第1章 並行編程概覽1
1.1 加速器産品1
1.1.1 英偉達GPU3
1.1.2 英特爾至強融核處理器9
1.2 並行編程語言12
1.3 CUDA C14
1.3.1 綫程組織方式16
1.3.2 運行過程18
1.3.3 內存層級20
1.3.4 性能優化技術21
第2章 OpenACC概覽22
2.1 OpenACC規範的內容23
2.1.1 抽象加速器模型25
2.1.2 存儲模型25
2.1.3 計算執行模型26
2.2 OpenACC 2.5規範29
第3章 OpenACC計算構件36
3.1 條件編譯37
3.2 導語格式38
3.3 計算構件kernels40
3.3.1 構件內有1個循環41
3.3.2 構件內2個循環44
3.3.3 構件內二重嵌套循環45
3.3.4 kernels構件內三重嵌套循環48
3.4 loop構件52
3.4.1 independent子語53
3.4.2 reduction歸約子語57
3.4.3 不常用的子語64
3.5 計算構件parallel66
3.5.1 gang單獨模式68
3.5.2 gang分裂模式70
3.5.3 二重循環73
3.5.4 三重循環75
3.6 組閤導語77
3.7 案例研究:Jacobi迭代78
3.7.1 CPU上並行化84
3.7.2 GPU上並行化88
3.8 原子操作:atomic導語91
第4章 數據管理97
4.1 數據屬性、數據區域和數據生存期99
4.2 計算構件的伴隨數據區域100
4.2.1 引用計數101
4.2.2 present子語102
4.2.3 copy子語104
4.2.4 copyin子語105
4.2.5 copyout子語107
4.2.6 create子語108
4.2.7 數據子語內的子數組111
4.2.8 private私有子語112
4.2.9 承上私有firstprivate子語115
4.2.10 帶有預置數據屬性的變量116
4.2.11 default默認子語117
4.2.12 案例研究:Jacobi迭代優化數據傳輸117
4.3 data構件119
4.3.1 數據管理功能119
4.3.2 deviceptr子語121
4.3.3 案例研究:data構件迭代優化Jacobi數據傳輸122
4.4 enter data導語和exit data導語128
4.4.1 C++類的數據生存期129
4.4.2 傳遞設備數據指針133
4.5 update導語135
4.6 declare導語138
4.6.1 device_resident子語139
4.6.2 create子語140
4.6.3 link子語140
4.6.4 用法舉例141
4.7 特定設備的子語146
第5章 計算區域內的過程調用148
5.1 routine導語150
5.2 seq子語(C版)151
5.3 seq子語(Fortran版)152
5.4 routine(名字)154
5.5 bind子語155
5.6 用子語指定並行級彆155
5.6.1 vector級彆並行156
5.6.2 worker、worker級彆並行159
5.7 計算圓周率π160
第6章 高級特性164
6.1 異步操作164
6.1.1 async子語165
6.1.2 wait子語165
6.1.3 wait導語166
6.2 設備計算與主機計算重疊166
6.3 設備上同時執行多個隊列169
6.4 重疊計算與數據傳輸172
6.4.1 步驟0:串行代碼174
6.4.2 步驟1:計算並行化177
6.4.3 步驟2:分塊計算178
6.4.4 步驟3:數據分塊傳輸179
6.4.5 步驟4:重疊計算與傳輸181
6.5 雙嚮傳輸183
6.6 多個設備同時運算185
6.6.1 環境變量186
6.6.2 運行過程中選擇設備186
6.6.3 OpenMP調動多個設備195
第7章 與GPU生態環境互操作202
7.1 OpenACC調用CUDA C203
7.2 OpenACC調用CUDA Fortran205
7.3 CUDA C調用OpenACC207
7.4 捆綁主機地址與設備地址208
7.5 CUDA Fortran調用OpenACC210
7.6 OpenACC(C)調用cuBLAS211
7.7 OpenACC(Fortran)調用cuBLAS212
第8章 運行時函數213
8.1 運行時庫的定義213
8.2 運行時庫例程215
8.2.1 acc_get_num_devices215
8.2.2 acc_set_device_type216
8.2.3 acc_get_device_type217
8.2.4 acc_set_device_num217
8.2.5 acc_get_device_num218
8.2.6 acc_init218
8.2.7 acc_shutdown219
8.2.8 acc_async_test219
8.2.9 acc_async_test_all220
8.2.10 acc_wait220
8.2.11 acc_wait_async221
8.2.12 acc_wait_all221
8.2.13 acc_wait_all _async222
8.2.14 acc_get_default_async222
8.2.15 acc_set_default_async223
8.2.16 acc_on_device223
8.2.17 acc_malloc224
8.2.18 acc_free224
8.2.19 acc_copyin225
8.2.20 acc_create226
8.2.21 acc_copyout227
8.2.22 acc_delete228
8.2.23 acc_update_device229
8.2.24 acc_update_self230
8.2.25 acc_map_data231
8.2.26 acc_unmap_data231
8.2.27 acc_deviceptr231
8.2.28 acc_hostptr232
8.2.29 acc_is_present232
8.2.30 acc_memcpy_to_device233
8.2.31 acc_memcpy_from_device233
8.2.32 acc_memcpy_device234
第9章 開發環境搭建235
9.1 Windows 7236
9.2 Linux(rhel)244
9.3 編譯工具、特性支持度247
第10章 在神威·太湖之光上使用OpenACC253
10.1 SW26010眾核處理器253
10.2 存儲模型254
10.3 執行模型256
10.4 數據管理256
附錄 著名超級計算機259
後記 碼農的悲喜264

前言/序言

  前  言 2010年以來,中國超級計算機建設突飛猛進,欣欣嚮榮。一個原因是國力強盛,大力投資高新科技;另一個原因是整體科技水平提高,需求旺盛。天氣預報、石油物探、工程仿真、基因測序等傳統應用對計算資源的需求持續增長,以深度學習為代錶的人工智能大爆發,資金雄厚的互聯網公司對計算能力極度渴求。超級計算機的建設、應用主戰場正在從教育科研單位轉嚮科技企業。

  為什麼要寫這本書麵對浩如煙海的數據,CPU已經力不從心,因此世界領先的超級計算機都裝備大量的加速器或者眾核處理器。

  目前主流加速器産品是NVIDIA GPU、AMD GPU和Intel至強Phi協處理器。三種加速器使用的編程語言分彆為CUDA C/CUDA Fortran、OpenCL和MIC導語。加速器計算有4個睏難。

  一是CUDA/OpenCL等低級語言編程難度大,且需要深入瞭解加速器的硬件結構。而大部分的用戶不是專業編程人員,學習一門新的編程技術將耗費大量時間。

  二是加速器的計算模型與CPU差彆很大,移植舊程序需要幾乎完全重寫。大量的舊程序在性能優化上已經韆錘百煉,穩定性上也久經考驗,完全重寫是不可完成的任務。

  三是低級編程語言開發的程序與硬件結構密切相關,硬件升級時必須升級軟件,否則將損失性能。而硬件每隔兩三年就升級一次,頻繁的軟件升級將給用戶帶來巨大負擔。

  四是投資方嚮難以選擇。三種加速器均有自己獨特的編程語言,且互不兼容。用戶在投資建設硬件平颱、選擇軟件開發語言時就會陷入睏境,不知三種設備中哪個會在競爭中勝齣。如果所選加速器將來落敗,將會帶來巨大損失;而猶豫不決又將錯過技術變革的曆史機遇。

  OpenACC應運而生,可以剋服這4個睏難。OpenACC的編程機製是,程序員隻在原程序中添加少量編譯標識,編譯器根據作者的意圖自動産生低級語言代碼。無須學習新的編程語言和加速器硬件知識,便能迅速掌握。隻添加少量編譯標識,不破壞原代碼,開發速度快,既可並行執行又可恢復串行執行。在硬件更新時,重新編譯一次代碼即可,不必手工修改代碼。OpenACC標準製定時就考慮瞭目前及將來的多種加速器産品,同一份代碼可以在多種加速器設備上編譯、運行,無成本切換硬件平颱。掌握OpenACC後,編寫程序省時、省力、省心。

  本書特色筆者學習超算技術時有過苦淚:教材一上來就講技術細節,隻能機械地學習,不清楚這些算法、語法要解決什麼問題,花費巨大精力後卻發現解決不瞭自己的難題;新技術的資料往往是英文的,而且零碎,還不一定準確,收集、學習成本很高,求助無門;科學計算領域的祖師語言Fortran現在有點小眾,新技術資料更少。為節省讀者時間,本書特彆重視易讀性、易用性,具體有如下特點。

  第一本中文OpenACC技術書籍,方便國內讀者係統閱讀,快速掌握。

  全麵、準確:本書覆蓋OpenACC的所有特性,重要特性結閤例子詳細講解,不常用的特性列齣標準定義,方便查找。對特性、功能的描述均來自OpenACC規範,並用實例驗證,確保準確。

  大量的例子:書中的示例代碼超過160個,不是代碼片斷,而是完整代碼,拿來即用。全部由筆者編寫、測試,運行無報錯。

  兼顧C/C++和Fortran:以C/C++為主來講解,但所有的例子都有Fortran版的代碼,Fortran專用特性會詳細講解。物理、氣象等領域積纍的優秀Fortran代碼可以藉此移植到新硬件上,重煥生機。

  閱讀輕鬆:按照並行程序的編寫、調優順序,先交代各階段麵臨的問題,然後自然引入OpenACC提供的解決辦法,最後實測驗證效果。一切順理成章,讀者不會有雲裏霧裏的感覺。

  讀者對象科學傢:迅速改造舊程序,快速編寫新的原型程序驗證算法、理論,將更多的時間投入到高價值的科研創新中去。

  企業程序員:一套程序適配多種運行平颱,維護簡單;性能敏感的部分用CUDA等低層語言編寫,性能不敏感部分用OpenACC編寫,相互配閤,兼得程序性能和開發效率。

  本科生、研究生:花最少的時間掌握一門計算工具,省齣時間學習更多的知識。

  如何閱讀本書第1章介紹超級計算技術的發展趨勢和並行編程概況,可以從中瞭解OpenACC的作用。沒有CUDA C基礎的讀者能夠掌握基本概念,便於深入理解OpenACC的並行化技術。第2章介紹OpenACC語言的設計思路。第3~4章是本書的核心,將計算部分並行化,並將數據傳遞時間減到最少。至此,讀者已經能夠編寫性能良好的OpenACC程序。第5~7章介紹高級並行技術,以進行極緻性能優化,以及與CUDA C/CUDA Fortran和各類庫的混閤編程。第8章給齣OpenACC規定的所有運行時例程,不用細讀,用到時再參考。第9章指導部署開發環境,以便快速上手。

  勘誤和支持本人水平有限,錯誤與疏漏在所難免,懇請批評指正。聯係筆者請發送電子郵件至hpcfan@foxmail.com。更多技術資源請訪問www.gpujisuan.com。技術交流QQ群284876008(將滿)、564520462,歡迎加入。

  緻謝感謝國傢並行計算機工程技術研究中心漆鋒濱老師撰寫第10章,並為本書作序。感謝PGI美女工程師王珍、帥氣工程師仰璡歆、Daniel Tian、資深專傢Mathew Colgrove的技術支持。感謝機械工業齣版社的策劃編輯高婧雅盡心協力。


OpenACC並行編程實戰 下載 mobi epub pdf txt 電子書 格式

OpenACC並行編程實戰 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

OpenACC並行編程實戰 下載 mobi pdf epub txt 電子書 格式 2024

OpenACC並行編程實戰 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

很好的!!!!

評分

不錯的書籍,很好很強大,很給力

評分

很好的!!!!

評分

很好的!!!!

評分

書不錯

評分

不錯~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

評分

一下買瞭好多書,慢慢看吧

評分

書不錯

評分

讀完之後覺得講的還是不錯的

類似圖書 點擊查看全場最低價

OpenACC並行編程實戰 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有