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

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

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

定 價:¥59.00

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

購買這本書可以去


ISBN: 9787115367181 出版時間: 2014-11-01 包裝:
開本: 頁數: 字數:  

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

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