-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

R并行編程實戰

( 簡體 字)
作者:(美)西蒙 R.查普爾(Simon R. Chapple)等著類別:1. -> 程式設計 -> R語言
譯者:
出版社:機械工業出版社R并行編程實戰 3dWoo書號: 47989
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:11/1/2017
頁數:
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111576372
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

我們正處于信息爆炸時代。從個人到全世界,生活中的一切都變得越來越與物聯網實時關聯。據預測,到2020年,世界上的數據將超過現在的10倍,達到驚人的44澤字節(1澤字節相當于2500億張DVD)。為了解決大數據的規模和速度問題,我們需要巨大的計算、內存和磁盤資源,而為此就需要并行計算。

盡管使用的時間不長,但R作為一種開源統計編程語言,逐漸成為人們分析數據的關鍵基礎技術之一。我敢說R現在是“數據科學家”的主流編程語言之一。

當然,數據科學家可能會部署許多其他工具來處理大數據的一些困難問題,如Python、SAS、SPSS或MATLAB。然而,自從1997年以來,隨著開源語言的深入發展,R語言非常流行,在20年中開發了許多存放于CRAN鏡像站點的R添加包,這些添加包適用于幾乎所有形式的數據分析,從小型數值矩陣到龐大的符號數據集,如生物分子DNA。事實上,我認為R語言正成為“事實上”的數據科學腳本語言,它可以融合許多不同類型的高度復雜數據的分析方法。

R語言自身總是按照單線程來實現的,而且其原有的程序設計并沒有應用并行機制。然而,為了達到某些功能的并行目的以及使用并行處理框架,R語言需要借助于某些特別開發的外部添加包。我們將重點關注一些目前技術范圍內可用的最好的并行算法。

在本書中,我們將介紹并行計算的各個方面,從單程序多數據(SPMD)到單指令多數據(SIMD)向量處理,包括用R添加包parallel來利用R內置的多核功能、用消息傳遞接口(MPI)進行消息傳遞、用OpenCL處理通用GPU(GPGPU)的并行性。我們還將探討并行性的不同框架方法,從利用任務分配的負載均衡到網格空間處理。我們將通過Hadoop了解云計算中更通用的批量數據處理,以及集群計算中的熱門新技術Apache Spark,它更適合大規模的實時數據處理。

我們甚至會探索如何使用真正的數百萬英鎊的超級計算機。是的,我知道你可能沒有這樣的計算機,但是在本書中,我們會告訴你如何使用它,以及并行計算的效果。說不定,隨著知識的更新,你可以來到當地的超級計算機中心,并說服他們讓你進行一些大規模的并行計算!

本書中展示的所有編碼示例都具有原創性,選擇這些示例的原因是為了不復制其他書中可能遇到的例子。親愛的讀者,選擇這些代碼的原因是希望能讓你與普通讀者有一點不同。作為作者,我們非常希望你享受這個過程。

本書內容

第1章快速地展示如何利用R的并行版本lapply()來開發筆記本電腦的多核處理功能。我們也通過亞馬遜網絡服務簡要介紹云計算的巨大運行能力。

第2章涵蓋標準的消息傳遞接口(MPI),它是實現高級并行算法的關鍵技術。在本章中,你將學習如何使用兩個不同的R MPI添加包Rmpi和pbdMPI以及底層通信子系統的OpenMPI實現。

第3章通過開發一個詳細的Rmpi工作示例完成MPI過程,說明如何使用非阻塞通信和局部進程間消息交換模式,這是實現空間網格并行所必需的。

第4章介紹在真實的超級計算機上運行并行代碼的經驗。本章還詳細介紹開發SPRINT的過程,即一個用C語言編寫的可以在筆記本電腦以及超級計算機上運行的并行計算的R包。此外,還說明如何使用自己本地編碼的高性能并行算法擴展此添加包,并使其可訪問R。

第5章展示如何通過ROpenCL添加包直接應用筆記本電腦的圖形處理單元(GPU)的大規模并行和向量處理能力,該添加包是開放式計算語言OpenCL的一個R包裝。

第6章介紹并行編程及其性能的科學原理,通過強調想要避免的潛在陷阱來講述最好的實踐藝術,并初步展望了并行計算系統的未來。

在線章節“Apache Spa-R-k”介紹了Apache Spark,現在它成為繼Hadoop之后最流行的分布式存儲大數據的并行計算環境。你將學習如何設置和安裝Spark集群,以及如何直接從R中利用Spark自己的數據框提取。
不需要從頭到尾依次閱讀本書,大多數情況下,每一章節都是可以獨立閱讀的。

閱讀準備

要運行本書中的代碼,你需要一個最新配置的多核筆記本電腦或臺式計算機。你還需要一個合適帶寬的網絡連接,用于從CRAN(R包的主要在線存儲庫)下載R和各種R代碼庫。

本書中的例子主要使用RStudio 0.98. 1062、64位R 3.1.0(CRAN發行版)開發,運行于2014年發行的Apple MacBook Pro OS X 10.9.4(具有2.6 GHz Intel Core i5處理器和16 GB內存)。當然,所有這些例子也應該適用最新版本的R。

本書中的一些示例將無法使用Microsoft Windows運行,但是它們應該可以在Linux的其他版本上運行。每章將詳細介紹所需的額外的外部庫或運行時的系統要求,并提供有關如何訪問和安裝它們的信息。

讀者人群

本書適用于中高級R開發人員,使之掌握利用并行計算功能來執行長時間運行的計算,并分析大量數據。你需要具有一定的R編程知識,并且是一個能力強大的程序員,這樣你可以閱讀和理解低級語言(如C/C++),并熟悉代碼編譯過程。你可以認為自己是新型數據科學家,即—個熟練的程序員和數學家。

本書約定

在本書中,你會發現一些區分不同信息的文本樣式。以下是這些樣式的一些例子及其含義。

代碼、數據庫表名、文件夾名、文件名、文件擴展名、路徑名、虛擬URL、用戶輸入和Twitter句柄如下所示:“注意使用mpi.cart.create(),它從一組現有的MPI進程映射構造了一個笛卡兒秩/網格。”

代碼段如下:



當我們希望注意到代碼段的特定部分時,相關行或條目將加粗:



任何命令行輸入或輸出如下所示:



新術語和重要詞都以黑體顯示。

表示警告或重要提示。

表示提示和技巧。
內容簡介:

R語言是數據科學中最流行的編程語言之一。本書是一本構建大規模高效算法的綜合實用指南,涵蓋各種并行技術,從R語言的并行版本lapply()的簡單應用到基于Hadoop和Apache Spark框架的高級AWS云。此外,本書還介紹了影響并行效率的因素(包括評估代碼性能和實現負載平衡),以及要避免的陷阱(包括死鎖和數值不穩定問題),并且還詳細闡釋如何為最適合的并行類型構建代碼和數據,如何在各種計算機系統中運行R代碼獲取最佳性能。

本書針對那些想要超越單線程和內存限制的R程序員,使其從中學習如何實現大規模高效算法,這是對大數據高性能處理的必要條件。



通過閱讀本書,你將學到:

運用R語言中內置的并行包來建立和構造高效的負載均衡并行計算

從R語言中開發和使用云計算的并行架構,包括啟動一個在亞馬遜Web服務運行的Hadoop分布式計算

使用RMPI、pbdMPI和SPRINT包開發復雜并行算法和標準消息傳遞接口

用自己的MPI的路徑構建和擴展并行R包(SPRINT)

用帶有OpenCL的圖形處理單元(GPU)的向量處理能力,執行R語言中的加速數值函數

理解并行編程陷阱,如死鎖、數值不穩定性,以及處理和避免它們的方法

建立一個任務的工作和管理模式,例如空間網格和混合并行R語言程序



內容簡介

本書是一本構建大規模高效算法的綜合實用指南。書中介紹了并行計算的方方面面,不僅涵蓋從單程序多數據(SPMD)到單指令多數據(SIMD)向量處理,包括應用R添加包parallel來利用R內置的多核功能、用消息傳遞接口(MPI)進行消息傳遞、用OpenCL處理基于通用GPU(GPGPU)的并行性,還探討了并行性的不同框架方法,從利用任務分配的負載平衡到網格空間處理。此外,還通過Hadoop詳細介紹云計算中更通用的批量數據處理,以及集群計算中的熱門新技術Apache Spark。

全書共6章,第1章簡單介紹如何利用R的并行版本lapply()來開發筆記本電腦的多核處理功能。第2章涵蓋標準的消息傳遞接口(MPI),它是實現高級并行算法的關鍵技術。第3章通過開發一個詳實的Rmpi工作示例來完成MPI過程,說明如何使用非阻塞通信和局部信息交換模式,這是實現空間網格并行所必需的。第4章介紹在真實超級計算機上運行并行代碼的經驗。第5章說明如何通過ROpenCL添加包直接應用筆記本電腦的圖形處理單元(GPU)的大規模并行和向量處理能力。第6章介紹并行編程及其性能的科學原理,通過強調想要避免的潛在陷阱來講述最好的實踐藝術,并初步展望并行計算系統的未來。
目錄:

譯者序

前言

關于作者

第1章 簡單的R并行性1

1.1 亞里士多德數謎2

1.1.1 求解程序的實現2

1.1.2 改進求解程序6

1.1.3 將問題分解為多個任務10

1.2 R的并行包14

1.2.1 使用mclapply()15

1.2.2 使用parLapply()19

1.2.3 并行負載均衡21

1.3 segue包23

1.3.1 安裝segue24

1.3.2 設置AWS賬戶25

1.3.3 運行segue27

1.3.4 求解亞里士多德數謎32

1.4 總結34

第2章 消息傳遞入門36

2.1 為MPI設置系統環境36

2.1.1 為MPI選擇R包37

2.1.2 選擇MPI子系統37

2.1.3 安裝OpenMPI38

2.2 MPI標準39

2.2.1 MPI的世界39

2.2.2 安裝Rmpi40

2.2.3 安裝pbdMPI41

2.3 MPI API43

2.3.1 點對點阻塞通信44

2.3.2 點對點非阻塞通信56

2.3.3 集體通信60

2.4 總結65

第3章 高級消息傳遞66

3.1 網格并行性66

3.1.1 創建網格集群68

3.1.2 邊界數據交換70

3.1.3 中值濾波73

3.1.4 平鋪分配圖像74

3.1.5 中值濾波網格程序76

3.2 檢查和管理通信84

3.3 lapply()的函數變體87

3.4 總結89

第4章 開發SPRINT—超級計算機的基于MPI的R包90

4.1 關于ARCHER91

4.2 從R中調用MPI代碼92

4.2.1 MPI Hello World92

4.2.2 從R中調用C94

4.3 建立一個MPI R包—SPRINT97

4.3.1 簡單的并行R接口(SPRINT)包97

4.3.2 SPRINT包的體系結構99

4.4 將一個新函數添加到SPRINT包中100

4.4.1 下載SPRINT源代碼101

4.4.2 在R中創建一個存根—phello.R102

4.4.3 添加接口函數—phello.c103

4.4.4 添加實現函數—hello.c105

4.4.5 連接存根、接口和實現106

4.4.6 編譯并運行SPRINT代碼110

4.5 基因組學分析案例研究112

4.5.1 基因組學113

4.5.2 基因組數據115

4.6 基因組學與超級計算機116

4.6.1 目標116

4.6.2 ARCHER超級計算機116

4.6.3 隨機森林120

4.6.4 基因組分析案例研究的數據122

4.6.5 ARCHER中的隨機森林性能122

4.6.6 排名產品127

4.6.7 ARCHER中的排名產品性能128

4.6.8 結論131

4.7 總結132

第5章 筆記本中的超級計算機133

5.1 OpenCL133

5.2 ROpenCL包142

5.2.1 ROpenCL編程模型142

5.2.2 距離矩陣示例153

5.3 總結161

第6章 并行程序設計的藝術162

6.1 理解并行效率163

6.1.1 加速比163

6.1.2 阿姆達爾定律164

6.1.3 并行或者不并行165

6.2 數值逼近167

6.3 隨機數170

6.4 死鎖172

6.5 減少并行開銷175

6.6 自適應負載均衡178

6.6.1 任務場178

6.6.2 有效的網格處理179

6.6.3 成功并行化的3個步驟180

6.6.4 未來將會怎樣181

6.6.5 混合并行性184

6.7 總結185
序: