定 價:¥59.00
作 者: | (意大利)詹卡洛 扎克尼 著,張龍 譯 |
出版社: | 電子工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787121337536 | 出版時間: | 2018-04-01 | 包裝: | |
開本: | 頁數(shù): | 字?jǐn)?shù): |
1 并行計算與Python起步...............................................1
介紹 ..................................1
并行計算內(nèi)存架構(gòu) ..........2
內(nèi)存組織 ..........................5
并行編程模型 ................10
如何設(shè)計并行程序 ........12
如何評估并行程序的性能 ....................................................14
Python簡介 ....................16
并行世界中的Python ....20
進(jìn)程與線程介紹 ............21
開始在Python中使用進(jìn)程 ....................................................21
開始在Python中使用線程 ....................................................23
2 基于線程的并行. .27
介紹 ................................27
使用Python的線程模塊 28
如何定義線程 ................28
如何確定當(dāng)前的線程 ....30
如何在子類中使用線程 32
使用Lock與RLock實(shí)現(xiàn)線程同步 ........................................34
使用RLock實(shí)現(xiàn)線程同步 .....................................................38
使用信號量實(shí)現(xiàn)線程同步 ....................................................40
使用條件實(shí)現(xiàn)線程同步 44
使用事件實(shí)現(xiàn)線程同步 47
使用with語句 ................51
使用隊(duì)列實(shí)現(xiàn)線程通信 53
評估多線程應(yīng)用的性能 57
3 基于進(jìn)程的并行63
介紹 ................................64
如何生成進(jìn)程 ................64
如何對進(jìn)程命名 ............66
如何在后臺運(yùn)行進(jìn)程 ....68
如何殺死進(jìn)程 ................69
如何在子類中使用進(jìn)程 70
如何在進(jìn)程間交換對象 72
如何同步進(jìn)程 ................78
如何管理進(jìn)程間狀態(tài) ....81
如何使用進(jìn)程池 ............82
使用mpi4py模塊 ...........84
點(diǎn)對點(diǎn)通信 ....................87
避免死鎖問題 ................91
使用廣播實(shí)現(xiàn)聚合通信 94
使用scatter實(shí)現(xiàn)聚合通信 .....................................................96
使用gather實(shí)現(xiàn)聚合通信 ......................................................99
使用Alltoall實(shí)現(xiàn)聚合通信 .................................................101
匯聚操作 ......................103
如何優(yōu)化通信 ..............105
4 異步編程. ........111
介紹 .............................. 111
使用 Python的 concurrent.futures 模塊 .............................. 112
使用Asyncio實(shí)現(xiàn)事件循環(huán)管理 ........................................ 116
使用Asyncio處理協(xié)程 120
使用Asyncio管理任務(wù) 125
使用Asyncio和Futures 128
5 分布式Python133
介紹 ..............................133
使用 Celery 分發(fā)任務(wù) .134
如何使用 Celery 創(chuàng)建任務(wù) .................................................136
使用 SCOOP進(jìn)行科學(xué)計算 ...............................................139
使用 SCOOP處理映射函數(shù) ...............................................143
使用 Pyro4 遠(yuǎn)程調(diào)用方法 ..................................................147
使用 Pyro4 鏈接對象 ..150
使用 Pyro4 開發(fā)一個客戶端-服務(wù)器應(yīng)用.........................156
使用 PyCSP實(shí)現(xiàn)順序進(jìn)程通信 ........................................162
在Disco中使用 MapReduce ................................................167
使用 RPyC 調(diào)用遠(yuǎn)程過程 ..................................................172
6 使用Python進(jìn)行GPU編程. ......................................175
介紹 ..............................175
使用 PyCUDA模塊 ....177
如何構(gòu)建一個 PyCUDA應(yīng)用 ............................................181
通過矩陣操作理解 PyCUDA內(nèi)存模型 ............................186
使用 GPUArray 調(diào)用內(nèi)核 ..................................................192
使用 PyCUDA對逐元素表達(dá)式求值 ................................194
使用 PyCUDA進(jìn)行 MapReduce 操作 ...............................198
使用 NumbaPro 進(jìn)行GPU編程 ..........................................201
通過 NumbaPro 使用 GPU 加速的庫 ................................206
使用 PyOpenCL模塊 .. 211
如何構(gòu)建一個 PyOpenCL應(yīng)用 ..........................................214
使用PyOpenCL對逐元素表達(dá)式求值 ................................218
使用 PyOpenCL測試 GPU 應(yīng)用 ........................................221