𝔖 Scriptorium
✦   LIBER   ✦

📁

Haskell并行与并发编程

✍ Scribed by [英] Simon Marlow


Publisher
人民邮电出版社
Year
2014
Tongue
Chinese
Leaves
276
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


书签已装载,
书签制作方法请找 [email protected]
完全免费

《Haskell并行与并发编程》深入浅出地介绍如何使用Haskell语言及相关的库和框架编写并行和并发程序。《Haskell并行与并发编程》用两个部分分别讲解并行Haskell编程和并发Haskell编程。根据编程模型的不同,并行部分介绍了3种并行编程方式:基于惰性求值的并行(Eval Monad及求值策略)、基于数据流的并行(Par Monad)以及面向大规模数组算法的并行(Repa数据并行编程和Acellerate GPU编程)。并发部分则按抽象层次由低到高分别涉及线程和MVar、重叠I/O、线程的取消和超时、软件事务内存、高级并发抽象、并发网络服务程序、使用线程并行编程和分布式编程等,最后还介绍调试、性能调优以及外部函数接口。书中包含大量可运行的代码示例,并附有详细的注释,读者通过亲身运行、修改和调试代码,可极大地加深对书中内容的理解。
《Haskell并行与并发编程》适合有一定Haskell语言基础的程序员或者对并行或并发编程感兴趣的相关人员阅读。

✦ Table of Contents


封面
书名
版权
前言
目录
第1章 绪论
1.1 术语:并行性和并发性
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 折叠和形状多态
5.5 示例:图像旋转
5.6 小结
第6章 Acellerate GPU编程
6.1 概述
6.2 数组和索引
6.3 运行简单Accelerate计算
6.4 标量数组
6.5 数组索引
6.6 在Acc中创建数组
6.7 数组配对
6.8 常数
6.9 示例:最短路径
6.9.1 在GPU上运行
6.9.2 调试CUDA后端
6.10 示例:Mandelbrot集生成器
第二部分 并发Haskell
第7章 并发基础:线程和MVar
7.1 简单的示例:提醒器
7.2 通信:MVar
7.3 MVar用作简单通道:日志服务
7.4 MVar用作共享状态的容器
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 阻塞直到发生变化
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章 高级并发抽象
11.1 线程泄漏的避免
11.2 对称并发组合子
11.3 添加函子实例
11.4 小结:Async API
第12章 并发网络服务程序
12.1 简易服务器
12.2 包含状态的简易服务器
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 如何通过并发实现并行
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 分布式是并发还是并行?
14.3 第一个示例:ping
14.3.1 进程和ProcessMonad
14.3.2 定义消息类型
14.3.3 Ping服务进程
14.3.4 主进程
14.3.5 main函数
14.3.6 Ping示例小结
14.4 多节点ping
14.4.1 单机运行多节点
14.4.2 多机运行
14.5 有类型通道
14.6 故障处理
14.7 分布式聊天服务器
14.7.1 数据类型
14.7.2 发送消息
14.7.3 广播
14.7.4 分布式处理
14.7.5 测试服务器
14.7.6 故障以及增删节点
14.8 练习:分布式键值存储
第15章 调试、性能调整以及外部函数接口
15.1 并发程序调试
15.1.1 查看线程状态
15.1.2 记录事件日志和ThreadScope
15.1.3 死锁检测
15.2 并发(和并行)程序的调优
15.2.1 创建线程和Mvar操作
15.2.2 共享并发数据结构
15.2.3 RTS选项的调整
15.3 并发和外部函数接口
15.3.1 线程和外部对外调用
15.3.2 异步异常和外部调用
15.3.3 线程和外部对内调用


📜 SIMILAR VOLUMES


JAVA并发编程实践
✍ 戈茨 📂 Library 📅 2007 🏛 电子工业出版社 🌐 Chinese

<p>《JAVA并发编程实践》随着多核处理器的普及,使用并发成为构建高性能应用程序的关键。Java 5以及6在开发并发程序中取得了显著的进步,提高了Java虚拟机的性能以及并发类的可伸缩性,并加入了丰富的新并发构建块。在《JAVA并发编程实践》中,这些便利工具的创造者不仅解释了它们究竟如何工作、如何使用,还阐释了创造它们的原因,及其背后的设计模式。</p>

Java并发编程之美
✍ 翟陆续; 薛宾田 📂 Library 📅 2018 🏛 电子工业出版社 🌐 Chinese

<p>并发编程相比 Java 中其他知识点的学习门槛较高,从而导致很多人望而却步。但无论是职场面试,还是高并发/ 高流量系统的实现,却都离不开并发编程,于是能够真正掌握并发编程的人成为了市场迫切需求的人才。</p> <p>《Java并发编程之美》通过图文结合、通俗易懂的讲解方式帮助大家完成多线程并发编程从入门到实践的飞跃!《Java并发编程之美》分为三部分,第一部分为Java 并发编程基础篇,主要讲解Java 并发编程的基础知识、线程有关的知识和并发编程中的其他相关概念,这些知识在高级篇都会有所使用,掌握了本篇的内容,就为学习高级篇奠定了基础;第二部分为Java 并发编程高级篇,讲解了Jav

并行编程模式
✍ Timothy G. Mattson; Beverly A. Sanders; Berna L. Massingill 📂 Library 📅 2015 🏛 机械工业出版社 🌐 Chinese

书签已装载, 书签制作方法请找 [email protected] 完全免费 本书介绍了并行编程模式的相关概念和技术,主要内容包括并行编程模式语言、并行计算的背景、软件开发中的并发性、并行算法结构设计、支持结构、设计的实现机制以及OpenMP、MPI等。 本书可供软件专业的本科生或研究生使用,同时也可供从事软件开发工作的广大技术人员参考。