注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)利用Dask擴(kuò)展Python性能

利用Dask擴(kuò)展Python性能

利用Dask擴(kuò)展Python性能

定 價(jià):¥89.00

作 者: [美]霍爾頓·卡勞(Holden Karau), [加]米卡·金明斯(Mika Kimmins) 著,馬宏華 譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302666295 出版時(shí)間: 2024-08-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《利用 Dask 擴(kuò)展 Python 性能》詳細(xì)闡述了與 Dask 擴(kuò)展 Python 性能相關(guān)的基本知識(shí),主要包括了解 Dask、Dask 基礎(chǔ)操作、Dask的工作原理、Dask DataFrame、Dask 的集合、高級(jí)任務(wù)調(diào)度、添加可變狀態(tài)和 Dask Actor、評(píng)估 Dask 的組件和庫、遷移現(xiàn)有的分析工程、使用 GPU 和其他特殊資源的 Dask、使用 Dask 進(jìn)行機(jī)器學(xué)習(xí)、生產(chǎn)化Dask 等內(nèi)容。此外,本書還提供了相應(yīng)的示例、代碼,以幫助讀者進(jìn)一步理解相關(guān)方案的實(shí)現(xiàn)過程。 本書適合作為高等院校計(jì)算機(jī)及相關(guān)專業(yè)的教材和教學(xué)參考書,也可作為相關(guān)開發(fā)人員的自學(xué)用書和參考手冊(cè)。

作者簡介

  Holden Karau 是 Apache Spark 提交者,Apache 軟件基金會(huì)成員,也是活躍的開源貢獻(xiàn)者。作為一名軟件工程師,她曾在 Apple、Google、IBM、Alpine、Databricks、Foursquare和 Amazon 從事各種分布式計(jì)算、搜索和分類問題的研究。她畢業(yè)于加拿大滑鐵盧大學(xué)(University of Waterloo),獲得過計(jì)算機(jī)科學(xué)數(shù)學(xué)學(xué)士學(xué)位。在軟件之外,她還喜歡焊接、騎車和跳舞等。 Mika Kimmins 是一名數(shù)據(jù)工程師、分布式系統(tǒng)研究員和機(jī)器學(xué)習(xí)顧問。她曾是 Apple公司的 Siri 數(shù)據(jù)工程師,也曾是一名學(xué)術(shù)研究人員和非營利工程人員,她從事過自然語言處理(NLP)、語言建模、強(qiáng)化學(xué)習(xí)和機(jī)器學(xué)習(xí)管道等多種工作。她擁有哈佛大學(xué)工程科學(xué)碩士和 MBA 學(xué)位,以及加拿大多倫多大學(xué)(University of Toronto)計(jì)算機(jī)科學(xué)和數(shù)學(xué)學(xué)士學(xué)位。Mika 愛好花樣滑冰、空中舞蹈和縫紉。

圖書目錄

第1章  了解Dask 1
1.1  需要使用Dask的理由 1
1.2  Dask在生態(tài)系統(tǒng)中的定位 2
1.2.1  大數(shù)據(jù) 3
1.2.2  數(shù)據(jù)科學(xué) 3
1.2.3  并行分布式Python 4
1.3  Dask社區(qū)庫 5
1.3.1  加速Python 5
1.3.2  SQL引擎 5
1.3.3  工作流程調(diào)度 6
1.4  Dask的局限性 7
1.5  小結(jié) 8
第2章  Dask基礎(chǔ)操作 9
2.1  本地安裝Dask 9
2.2  Hello World 10
2.2.1  Hello World任務(wù) 11
2.2.2  分布式集合 13
2.2.3  Dask DataFrame 15
2.3  小結(jié) 16
第3章  Dask的工作原理:基礎(chǔ)知識(shí) 17
3.1  執(zhí)行后端 17
3.1.1  本地后端 17
3.1.2  分布式后端(Dask客戶端和調(diào)度程序) 18
3.2  Dask的診斷用戶界面 20
3.3  序列化和Pickling 21
3.4  分區(qū)/分塊集合 23
3.4.1  Dask數(shù)組 24
3.4.2  Dask bag 24
3.4.3  Dask DataFrame 25
3.4.4  打亂 25
3.4.5  加載期間分區(qū) 26
3.5  任務(wù)、圖和惰性評(píng)估 26
3.5.1  惰性評(píng)估 26
3.5.2  任務(wù)依賴關(guān)系 27
3.5.3  可視化 27
3.5.4  中間任務(wù)結(jié)果 29
3.5.5  任務(wù)規(guī)模調(diào)整 29
3.5.6  當(dāng)任務(wù)圖變得太大時(shí) 29
3.5.7  組合計(jì)算 30
3.5.8  持久化、緩存和記憶化 30
3.6  容錯(cuò)能力 31
3.7  小結(jié) 32
第4章  Dask DataFrame 33
4.1  Dask DataFrame的構(gòu)建方式 33
4.2  加載和寫入 34
4.2.1  格式 34
4.2.2  文件系統(tǒng) 39
4.3  索引 40
4.4  打亂數(shù)據(jù) 40
4.4.1  滾動(dòng)窗口和map_overlap 41
4.4.2  聚合 41
4.4.3  完全打亂 45
4.4.4  分區(qū) 45
4.5  尷尬的并行操作 47
4.6  使用多個(gè)DataFrame 48
4.6.1  組合DataFrame的常用函數(shù)解析 48
4.6.2  多DataFrame內(nèi)部原理 50
4.6.3  缺失的功能 51
4.7  無法使用的功能 51
4.8  較慢的功能 51
4.9  處理遞歸算法 52
4.10  重新計(jì)算的數(shù)據(jù) 52
4.11  其他函數(shù)的差異 52
4.12  數(shù)據(jù)科學(xué)與Dask DataFrame:綜合演練 53
4.12.1  決定使用Dask 53
4.12.2  使用Dask進(jìn)行探索性數(shù)據(jù)分析 54
4.13  小結(jié) 56
第5章  Dask的集合 57
5.1  Dask數(shù)組 57
5.1.1  常見用例 57
5.1.2  不適用Dask數(shù)組的情形 57
5.1.3  加載/保存 58
5.1.4  缺失的功能 58
5.1.5  特殊Dask函數(shù) 58
5.2  Dask bag 59
5.2.1  常見用例 59
5.2.2  加載和保存Dask bag 60
5.2.3  使用Dask bag加載雜亂數(shù)據(jù) 60
5.2.4  局限性 64
5.3  小結(jié) 64
第6章  高級(jí)任務(wù)調(diào)度:Futures 65
6.1  懶惰評(píng)估和急切評(píng)估 66
6.2  Futures的用例 66
6.3  啟動(dòng)Futures 67
6.4  Futures生命周期 68
6.5  即發(fā)即棄 69
6.6  檢索結(jié)果 69
6.7  嵌套Futures 72
6.8  用于調(diào)度的分布式數(shù)據(jù)結(jié)構(gòu) 72
6.9  小結(jié) 73
 
第7章  添加可變狀態(tài)和Dask Actor 75
7.1  理解Actor模型 75
7.2  Dask Actor 76
7.2.1  創(chuàng)建第一個(gè)Actor 77
7.2.2  擴(kuò)展Dask Actor 79
7.2.3  局限性 81
7.3  使用Dask Actor的時(shí)機(jī) 81
7.4  小結(jié) 82
第8章  評(píng)估Dask的組件和庫 83
8.1  項(xiàng)目評(píng)估的定性考慮因素 85
8.1.1  項(xiàng)目優(yōu)先級(jí) 85
8.1.2  社區(qū) 86
8.1.3  Dask特定最佳實(shí)踐 87
8.1.4  最新的依賴項(xiàng) 88
8.1.5  文檔 88
8.1.6  貢獻(xiàn)的開放程度 89
8.1.7  可擴(kuò)展性 89
8.2  開源項(xiàng)目評(píng)估的定量指標(biāo) 90
8.2.1  版本歷史 90
8.2.2  提交頻率 91
8.2.3  庫的使用情況 91
8.2.4  代碼和最佳實(shí)踐 93
8.3  小結(jié) 94
第9章  遷移現(xiàn)有的分析工程 95
9.1  遷移到Dask中的原因 95
9.2  Dask的局限性 95
9.3  遷移路線圖 96
9.3.1  集群類型 96
9.3.2  開發(fā):注意事項(xiàng) 99
9.3.3  部署監(jiān)控 101
9.4  小結(jié) 103
 
第10章  使用GPU和其他特殊資源的Dask 105
10.1  透明加速器與非透明加速器 106
10.2  了解GPU或TPU是否有幫助 106
10.3  使Dask具有資源感知能力 107
10.4  安裝庫 108
10.5  在Dask任務(wù)中使用自定義資源 109
10.5.1  裝飾器 110
10.5.2  GPU 111
10.6  基于Dask的GPU加速 112
10.6.1  cuDF 112
10.6.2  BlazingSQL 113
10.6.3  cuStreamz 113
10.7  釋放加速器資源 113
10.8  設(shè)計(jì)模式:CPU回退 113
10.9  小結(jié) 114
第11章  使用Dask進(jìn)行機(jī)器學(xué)習(xí) 115
11.1  并行化機(jī)器學(xué)習(xí) 115
11.2  使用Dask-ML的時(shí)機(jī) 116
11.3  Dask-ML和XGBoost入門 117
11.3.1  特征工程 117
11.3.2  模型選擇和訓(xùn)練 121
11.3.3  沒有Dask-ML等效項(xiàng)時(shí)的解決方案 122
11.3.4  結(jié)合使用Dask joblib 123
11.3.5  XGBoost與Dask 124
11.4  使用Dask-SQL的機(jī)器學(xué)習(xí)模型 126
11.5  推理和部署 129
11.5.1  手動(dòng)分發(fā)數(shù)據(jù)和模型 129
11.5.2  使用Dask進(jìn)行大規(guī)模推理 130
11.6  小結(jié) 132
第12章  生產(chǎn)化Dask:Notebook、部署、調(diào)整和監(jiān)控 133
12.1  部署選項(xiàng)中需要考慮的因素 134
12.2  在Kubernetes上部署Dask 136
12.3  在Ray上部署Dask 138
12.4  在YARN上部署Dask 138
12.5  在高性能計(jì)算集群中部署Dask 141
12.5.1  在遠(yuǎn)程集群中設(shè)置Dask 141
12.5.2  將本地計(jì)算機(jī)連接到HPC集群 147
12.6  Dask JupyterLab擴(kuò)展 148
12.6.1  安裝JupyterLab擴(kuò)展 148
12.6.2  啟動(dòng)集群 149
12.6.3  用戶界面 149
12.6.4  觀察進(jìn)度 150
12.7  了解Dask性能 150
12.7.1  分布式計(jì)算中的指標(biāo) 151
12.7.2  Dask儀表板 151
12.7.3  保存和共享Dask指標(biāo)/性能日志 157
12.7.4  高級(jí)診斷 159
12.8  擴(kuò)展和調(diào)試最佳實(shí)踐 160
12.8.1  手動(dòng)擴(kuò)展 160
12.8.2  自適應(yīng)/自動(dòng)擴(kuò)展 160
12.8.3  保留和刪除高計(jì)算成本的數(shù)據(jù) 160
12.8.4  Dask Nanny 161
12.8.5  worker內(nèi)存管理 161
12.8.6  集群規(guī)模調(diào)整 162
12.8.7  重新審視分塊 162
12.8.8  避免重新分塊 163
12.9  作業(yè)調(diào)度 163
12.10  部署監(jiān)控 164
12.11  小結(jié) 165
附錄A  Dask用戶的關(guān)鍵系統(tǒng)概念 167
A.1  測(cè)試 167
A.1.1  手動(dòng)測(cè)試 167
A.1.2  單元測(cè)試 167
A.1.3  集成測(cè)試 168
A.1.4  測(cè)試驅(qū)動(dòng)開發(fā) 168
A.1.5  屬性測(cè)試 168
A.1.6  使用Notebook 168
A.1.7  在Notebook之外進(jìn)行測(cè)試 169
A.1.8  在Notebook中測(cè)試:內(nèi)聯(lián)斷言 169
A.2  數(shù)據(jù)和輸出驗(yàn)證 169
A.3  點(diǎn)對(duì)點(diǎn)分布與中心化分布 170
A.4  并行方法 170
A.4.1  任務(wù)并行 171
A.4.2  數(shù)據(jù)并行 171
A.4.3  打亂和寬窄轉(zhuǎn)換 171
A.4.4  局限性 171
A.4.5  負(fù)載均衡 171
A.5  網(wǎng)絡(luò)容錯(cuò)和CAP定理 172
A.6  遞歸 172
A.7  版本控制和分支:代碼和數(shù)據(jù) 173
A.8  隔離 174
A.9  機(jī)器容錯(cuò) 174
A.10  可擴(kuò)展性(向上和向下) 175
A.11  緩存、內(nèi)存、磁盤和網(wǎng)絡(luò) 176
A.12  哈希 176
A.13  數(shù)據(jù)局部性 176
A.14  正好一次與至少一次 177
A.15  小結(jié) 177
附錄B  可擴(kuò)展的DataFrame 179
B.1  工具 179
B.1.1  僅適用于一臺(tái)機(jī)器 180
B.1.2  分布式計(jì)算 181
B.2  小結(jié) 184
附錄C  調(diào)試Dask 185
C.1  使用調(diào)試器 185
C.2  使用Dask的一般調(diào)試技巧 185
C.3  原生錯(cuò)誤 186
C.4  關(guān)于官方建議處理壞記錄的一些說明 187
C.5  Dask診斷 187
C.6  小結(jié) 188
附錄D  使用Streamz和Dask進(jìn)行流式處理 189
D.1  Dask上的Streamz入門 190
D.2  流數(shù)據(jù)源和接收器 190
D.3  字?jǐn)?shù)統(tǒng)計(jì) 191
D.4  Dask流式處理的GPU管道 192
D.5  限制、挑戰(zhàn)和解決方法 193
D.6  小結(jié) 193
 

本目錄推薦

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