图书介绍

Haskell并行与并发编程2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

Haskell并行与并发编程
  • (英)马洛(SimonMarlowe)著;喻昌远译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115367181
  • 出版时间:2014
  • 标注页数:260页
  • 文件大小:44MB
  • 文件页数:276页
  • 主题词:函数-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Haskell并行与并发编程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 绪论1

1.1 术语:并行性和并发性1

1.2 工具和资源3

1.3 示例代码3

第一部分 并行Haskell9

第2章 并行基础:Eval Monad9

2.1 惰性求值和弱首范式9

2.2 Eval monad、rpar和rseq15

2.3 示例:并行化数独解算器18

2.4 Deepseq27

第3章 求值策略29

3.1 参数化策略30

3.2 列表并行求值策略32

3.3 示例:K均值问题33

3.3.1 并行化K均值问题求解37

3.3.2 性能和分析39

3.3.3 spark活动可视化42

3.3.4 粒度43

3.4 spark垃圾回收与投机并行44

3.5 使用parBuffer并行化惰性流47

3.6 分块策略50

3.7 恒等性51

第4章 数据流并行:Par Monad52

4.1 示例:图中的最短路径56

4.2 流水线并行59

4.2.1 生产者限速63

4.2.2 流水线并行的局限性63

4.3 示例:会议时间表64

4.4 示例:并行类型推断器71

4.5 使用不同的调度器75

4.6 Par monad和策略的对比76

第5章 Repa数据并行编程77

5.1 数组、形状和索引78

5.2 数组运算80

5.3 示例:计算最短路径82

5.4 折叠和形状多态86

5.5 示例:图像旋转88

5.6 小结92

第6章 Acellerate GPU编程94

6.1 概述95

6.2 数组和索引95

6.3 运行简单Accelerate计算97

6.4 标量数组99

6.5 数组索引99

6.6 在Acc中创建数组99

6.7 数组配对101

6.8 常数102

6.9 示例:最短路径102

6.9.1 在GPU上运行105

6.9.2 调试CUDA后端106

6.10 示例:Mandelbrot集生成器106

第二部分 并发Haskell115

第7章 并发基础:线程和MVar115

7.1 简单的示例:提醒器116

7.2 通信:MVar118

7.3 MVar用作简单通道:日志服务120

7.4 MVar用作共享状态的容器122

7.5 MVar用作构件单元:无界通道125

7.6 公正性129

第8章 重叠I/O131

8.1 Haskell中的异常134

8.2 Async的错误处理138

8.3 合并140

第9章 线程的取消和超时143

9.1 异步异常144

9.2 异步异常的屏蔽146

9.3 bracket操作149

9.4 通道的异步异常安全149

9.5 超时151

9.6 异步异常的捕获153

9.7 mask和forkIO155

9.8 关于异步异常的讨论156

第10章 软件事务内存158

10.1 运行示例:窗口管理158

10.2 阻塞162

10.3 阻塞直到发生变化164

10.4 STM的合并165

10.5 Async的重实现166

10.6 通道的STM实现168

10.6.1 更多可能的操作169

10.6.2 阻塞操作的复合170

10.6.3 异步异常安全170

10.7 通道的另一种实现171

10.8 有界通道173

10.9 STM的适用性175

10.10 性能176

10.11 小结178

第11章 高级并发抽象179

11.1 线程泄漏的避免179

11.2 对称并发组合子181

11.3 添加函子实例184

11.4 小结:Async API185

第12章 并发网络服务程序186

12.1 简易服务器186

12.2 包含状态的简易服务器189

12.2.1 设计一:单一全局锁190

12.2.2 设计二:每条服务线程一个通道190

12.2.3 设计三:使用广播通道191

12.2.4 设计四:使用STM192

12.2.5 实现193

12.3 聊天服务器195

12.3.1 架构196

12.3.2 客户数据197

12.3.3 服务器数据198

12.3.4 服务器199

12.3.5 设置新客户199

12.3.6 运行客户处理201

12.3.7 小结203

第13章 使用线程并行编程204

13.1 如何通过并发实现并行204

13.2 示例:文件搜索205

13.2.1 串行版本205

13.2.2 并行版本207

13.2.3 性能和伸缩性208

13.2.4 使用信号量限制线程数量210

13.2.5 ParIO monad215

第14章 分布式编程218

14.1 distributed-process及相关软件包219

14.2 分布式是并发还是并行?220

14.3 第一个示例:ping220

14.3.1 进程和ProcessMonad221

14.3.2 定义消息类型221

14.3.3 Ping服务进程222

14.3.4 主进程224

14.3.5 main函数225

14.3.6 Ping示例小结225

14.4 多节点ping226

14.4.1 单机运行多节点227

14.4.2 多机运行227

14.5 有类型通道229

14.6 故障处理233

14.7 分布式聊天服务器236

14.7.1 数据类型237

14.7.2 发送消息239

14.7.3 广播240

14.7.4 分布式处理240

14.7.5 测试服务器243

14.7.6 故障以及增删节点243

14.8 练习:分布式键值存储245

第15章 调试、性能调整以及外部函数接口247

15.1 并发程序调试247

15.1.1 查看线程状态247

15.1.2 记录事件日志和ThreadScope248

15.1.3 死锁检测250

15.2 并发(和并行)程序的调优252

15.2.1 创建线程和Mvar操作252

15.2.2 共享并发数据结构255

15.2.3 RTS选项的调整255

15.3 并发和外部函数接口257

15.3.1 线程和外部对外调用257

15.3.2 异步异常和外部调用259

15.3.3 线程和外部对内调用259

热门推荐