R並行編程實戰 R并行编程实战

西蒙 R.查普爾 (Simon R.Chapple), 伊麗·特魯普 (Eilidh Troup), 托斯頓·大眾特 (Thorsten Forster), 特倫斯·斯隆 (Terence Sloan)

買這商品的人也買了...

商品描述

作者:(美)西蒙R.查普爾作者:伊麗·特魯普作者:托斯頓·大眾特作者:特倫斯·斯隆譯者:張茂軍譯者:李洪成譯者:文益民

西蒙R.查普爾(Simon R. Chapple)是一位經驗豐富的解決方案架構師和首席軟件工程師,從事數據分析和醫療信息系統解決方案和應用的開發超過25年。他也是超級計算機HPC和大數據處理方面的專家。
伊麗·特魯普(Eilidh Troup)是愛丁堡大學EPCC的應用顧問。她擁有Glasgow大學的遺傳學學位,現在專註於為廣大用戶尤其是生物學家提供高性能計算。Eilidh致力於各種軟件項目,包括為基於網絡的科學數據存儲庫提供簡單的並行R接口(SPRINT)和SEEK。托斯頓·大眾特(Thorsten Forster)是愛丁堡大學的數據科學研究員。他具有統計學和計算機科學背景,並獲得了生物醫學科學博士學位,在這些交叉學科研究方面擁有超過10年的經驗。特倫斯·斯隆(Terence Sloan)是愛丁堡大學高性能計算中心EPCC的軟件開發小組經理。他在蘇格蘭中小企業、英國公司以及歐洲和全球合作方面擁有超過25年的管理和參與數據科學和高性能計算項目的經驗。

目錄大綱

譯者序
前言
關於作者

第1章簡單的R並行性
  1.1亞里士多德數謎
    1.1.1求解程序的實現
    1.1.2改進求解程序
    1.1.3將問題分解為多個任務
  1.2 R的並行包
    1.2.1使用mclapply() 
    1.2.2使用parLapply() 
    1.2.3並行負載均衡
  1.3 segue包
    1.3.1安裝segue 
    1.3.2設置AWS賬戶
    1.3.3運行segue 
    1.3.4求解亞里士多德數謎
  1.4總結34 

第2章消息傳遞入門
  2.1為MPI設置系統環境
    2.1.1為MPI選擇R包
    2.1.2選擇MPI子系統
    2.1.3安裝OpenMPI 
  2.2 MPI標準
    2.2.1 MPI的世界
    2.2.2安裝Rmpi 
    2.2 .3安裝pbdMPI 
  2.3 MPI API 
    2.3.1點對點阻塞通信
    2.3.2點對點非阻塞通信
    2.3.3集體通信
  2.4總結

第3章高級消息傳遞
  3.1網格並行性
    3.1.1創建網格集群
    3.1.2邊界數據交換
    3.1.3中值濾波
    3.1.4平鋪分配圖像
    3.1.5中值濾波網格程序
  3.2檢查和管理通信
  3.3 lapply()的函數變體
  3.4總結89 

第4章開發SPRINT—超級計算機的基於MPI的R包
  4.1關於ARCHER 
  4.2從R中調用MPI代碼
    4.2.1 MPI Hello World 
    4.2 .2從R中調用C 
  4.3建立一個MPI R包—SPRINT 
    4.3.1簡單的並行R接口(SPRINT)包
    4.3.2 SPRINT包的體系結構
  4.4將一個新函數添加到SPRINT包中
    4.4.1下載SPRINT源代碼
    4.4.2在R中創建一個存根—phello.R 
    4.4.3添加接口函數—phello.c 
    4.4.4添加實現函數—hello.c 
    4.4.5連接存根、接口和實現
    4.4.6編譯並運行SPRINT代碼
  4.5基因組學分析案例研究
    4.5.1基因組學
    4.5.2基因組數據
  4.6基因組學與超級計算機
    4.6.1目標
    4.6.2 ARCHER超級計算機
    4.6.3隨機森林
    4.6.4基因組分析案例研究的數據
    4.6.5 ARCHER中的隨機森林性能
    4.6.6排名產品
    4.6.7 ARCHER中的排名產品性能
    4.6.8結論
  4.7總結

第5章筆記本中的超級計算機
  5.1 OpenCL 
  5.2 ROpenCL包
    5.2.1 ROpenCL編程模型
    5.2.2距離矩陣示例
  5.3總結161 

第6章並行程序設計的藝術
  6.1理解並行效率
    6.1.1加速比
    6.1.2阿姆達爾定律
    6.1.3並行或者不並行
  6.2數值逼近
  6.3隨機數
  6.4死鎖
  6.5減少並行開銷
  6.6自適應負載均衡
    6.6.1任務場
    6.6.2有效的網格處理
    6.6.3成功並行化的3個步驟
    6.6.4未來將會怎樣
    6.6.5混合併行性
  6.7總結