注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)Haskell并行與并發(fā)編程

Haskell并行與并發(fā)編程

Haskell并行與并發(fā)編程

定 價:¥59.00

作 者: (英)Simon Marlow 著
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 計算機/網(wǎng)絡(luò) 軟件工程/開發(fā)項目管理

ISBN: 9787115367181 出版時間: 2014-11-01 包裝:
開本: 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  《Haskell并行與并發(fā)編程》深入淺出地介紹如何使用Haskell語言及相關(guān)的庫和框架編寫并行和并發(fā)程序?!禜askell并行與并發(fā)編程》用兩個部分分別講解并行Haskell編程和并發(fā)Haskell編程。根據(jù)編程模型的不同,并行部分介紹了3種并行編程方式:基于惰性求值的并行(Eval Monad及求值策略)、基于數(shù)據(jù)流的并行(Par Monad)以及面向大規(guī)模數(shù)組算法的并行(Repa數(shù)據(jù)并行編程和Acellerate GPU編程)。并發(fā)部分則按抽象層次由低到高分別涉及線程和MVar、重疊I/O、線程的取消和超時、軟件事務(wù)內(nèi)存、高級并發(fā)抽象、并發(fā)網(wǎng)絡(luò)服務(wù)程序、使用線程并行編程和分布式編程等,最后還介紹調(diào)試、性能調(diào)優(yōu)以及外部函數(shù)接口。書中包含大量可運行的代碼示例,并附有詳細的注釋,讀者通過親身運行、修改和調(diào)試代碼,可極大地加深對書中內(nèi)容的理解?!禜askell并行與并發(fā)編程》適合有一定Haskell語言基礎(chǔ)的程序員或者對并行或并發(fā)編程感興趣的相關(guān)人員閱讀。

作者簡介

  Simon Marlow 是Facebook的軟件工程師,Haskell社區(qū)的領(lǐng)軍人物。他主持了Haskell 2010委員會并擔(dān)任Haskell語言2010報告的編輯。Simon還是廣泛使用的Glasgow Haskell編譯器(GHC)的主要開發(fā)者之一。

圖書目錄

  第1章 緒論
 1.1 術(shù)語:并行性和并發(fā)性
 1.2 工具和資源
 1.3 示例代碼
第一部分 并行Haskell
第2章 并行基礎(chǔ):Eval Monad
 2.1 惰性求值和弱首范式
 2.2 Eval monad、rpar和rseq
 2.3 示例:并行化數(shù)獨解算器
 2.4 Deepseq
第3章 求值策略
 3.1 參數(shù)化策略
 3.2 列表并行求值策略
 3.3 示例:K均值問題
  3.3.1 并行化K均值問題求解
  3.3.2 性能和分析
  3.3.3 spark活動可視化
  3.3.4 粒度
 3.4 spark垃圾回收與投機并行
 3.5 使用parBuffer并行化惰性流
 3.6 分塊策略
 3.7 恒等性
第4章 數(shù)據(jù)流并行:Par Monad
 4.1 示例:圖中的最短路徑
 4.2 流水線并行
  4.2.1 生產(chǎn)者限速
  4.2.2 流水線并行的局限性
 4.3 示例:會議時間表
 4.4 示例:并行類型推斷器
 4.5 使用不同的調(diào)度器
 4.6 Par monad和策略的對比
第5章 Repa數(shù)據(jù)并行編程
 5.1 數(shù)組、形狀和索引
 5.2 數(shù)組運算
 5.3 示例:計算最短路徑
 5.4 折疊和形狀多態(tài)
 5.5 示例:圖像旋轉(zhuǎn)
 5.6 小結(jié)
第6章 Acellerate GPU編程
 6.1 概述
 6.2 數(shù)組和索引
 6.3 運行簡單Accelerate計算
 6.4 標(biāo)量數(shù)組
 6.5 數(shù)組索引
 6.6 在Acc中創(chuàng)建數(shù)組
 6.7 數(shù)組配對
 6.8 常數(shù)
 6.9 示例:最短路徑
  6.9.1 在GPU上運行
  6.9.2 調(diào)試CUDA后端
 6.10 示例:Mandelbrot集生成器
第二部分 并發(fā)Haskell
第7章 并發(fā)基礎(chǔ):線程和MVar
 7.1 簡單的示例:提醒器
 7.2 通信:MVar
 7.3 MVar用作簡單通道:日志服務(wù)
 7.4 MVar用作共享狀態(tài)的容器
 7.5 MVar用作構(gòu)件單元:界通道
 7.6 公正性
第8章 重疊I/O
 8.1 Haskell中的異常
 8.2 Async的錯誤處理
 8.3 合并
第9章 線程的取消和超時
 9.1 異步異常
 9.2 異步異常的屏蔽
 9.3 bracket操作
 9.4 通道的異步異常安全
 9.5 超時
 9.6 異步異常的捕獲
 9.7 mask和forkIO
 9.8 關(guān)于異步異常的討論
第10章 軟件事務(wù)內(nèi)存
 10.1 運行示例:窗口管理
 10.2 阻塞
 10.3 阻塞直到發(fā)生變化
 10.4 STM的合并
 10.5 Async的重實現(xiàn)
 10.6 通道的STM實現(xiàn)
  10.6.1 更多可能的操作
  10.6.2 阻塞操作的復(fù)合
  10.6.3 異步異常安全
 10.7 通道的另一種實現(xiàn)
 10.8 有界通道
 10.9 STM的適用性
 10.10 性能
 10.11 小結(jié)
第11章 高級并發(fā)抽象
 11.1 線程泄漏的避免
 11.2 對稱并發(fā)組合子
 11.3 添加函子實例
 11.4 小結(jié):Async API
第12章 并發(fā)網(wǎng)絡(luò)服務(wù)程序
 12.1 簡易服務(wù)器
 12.2 包含狀態(tài)的簡易服務(wù)器
  12.2.1 設(shè)計一:單一全局鎖
  12.2.2 設(shè)計二:每條服務(wù)線程一個通道
  12.2.3 設(shè)計三:使用廣播通道
  12.2.4 設(shè)計四:使用STM
  12.2.5 實現(xiàn)
 12.3 聊天服務(wù)器
  12.3.1 架構(gòu)
  12.3.2 客戶數(shù)據(jù)
  12.3.3 服務(wù)器數(shù)據(jù)
  12.3.4 服務(wù)器
  12.3.5 設(shè)置新客戶
  12.3.6 運行客戶處理
  12.3.7 小結(jié)
第13章 使用線程并行編程
 13.1 如何通過并發(fā)實現(xiàn)并行
 13.2 示例:文件搜索
  13.2.1 串行版本
  13.2.2 并行版本
  13.2.3 性能和伸縮性
  13.2.4 使用信號量限制線程數(shù)量
  13.2.5 ParIO monad
第14章 分布式編程
 14.1 distributed-process及相關(guān)軟件包
 14.2 分布式是并發(fā)還是并行?
 14.3 第一個示例:ping
  14.3.1 進程和Process Monad
  14.3.2 定義消息類型
  14.3.3 Ping服務(wù)進程
  14.3.4 主進程
  14.3.5 main函數(shù)
  14.3.6 Ping示例小結(jié)
 14.4 多節(jié)點ping
  14.4.1 單機運行多節(jié)點
  14.4.2 多機運行
 14.5 有類型通道
 14.6 故障處理
 14.7 分布式聊天服務(wù)器
  14.7.1 數(shù)據(jù)類型
  14.7.2 發(fā)送消息
  14.7.3 廣播
  14.7.4 分布式處理
  14.7.5 測試服務(wù)器
  14.7.6 故障以及增刪節(jié)點
 14.8 練習(xí):分布式鍵值存儲
第15章 調(diào)試、性能調(diào)整以及外部函數(shù)接口
 15.1 并發(fā)程序調(diào)試
  15.1.1 查看線程狀態(tài)
  15.1.2 記錄事件日志和ThreadScope
  15.1.3 死鎖檢測
 15.2 并發(fā)(和并行)程序的調(diào)優(yōu)
  15.2.1 創(chuàng)建線程和Mvar操作
  15.2.2 共享并發(fā)數(shù)據(jù)結(jié)構(gòu)
  15.2.3 RTS選項的調(diào)整
 15.3 并發(fā)和外部函數(shù)接口
  15.3.1 線程和外部對外調(diào)用
  15.3.2 異步異常和外部調(diào)用
  15.3.3 線程和外部對內(nèi)調(diào)用

本目錄推薦

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