《高性能计算技术丛书 R并行编程实战》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:(美)西蒙·查普尔(Simon Chapple)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2017
  • ISBN:9787111576372
  • 页数:186 页
图书介绍:本书是一本构建大规模高效算法的综合性实用书籍,介绍各种并行技术,从R语言的并行版本lapply()的简单应用到基于Hadoop和Apache Spark框架的高级AWS云。在本书的最后,你将了解到影响并行效率的因素,包括:评估代码性能和实现负载平衡;要避免的陷阱,包括死锁和数值不稳定问题;对于你的项目,如何为最适合的并行类型构建代码和数据;如何在各种计算机系统中运行R代码获取最佳性能。本书针对那些想要超越单线程和内存限制的R程序员,使其从中学习如何实现高效大规模算法,这是对大数据高性能处理的必要条件。

第1章 简单的R并行性 1

1.1 亚里士多德数谜 2

1.1.1 求解程序的实现 2

1.1.2 改进求解程序 6

1.1.3 将问题分解为多个任务 10

1.2 R的并行包 14

1.2.1 使用mclapply() 15

1.2.2 使用parLapply() 19

1.2.3 并行负载均衡 21

1.3 segue包 23

1.3.1 安装segue 24

1.3.2 设置AWS账户 25

1.3.3 运行segue 27

1.3.4 求解亚里士多德数谜 32

1.4 总结 34

第2章 消息传递入门 36

2.1 为MPI设置系统环境 36

2.1.1 为MPI选择R包 37

2.1.2 选择MPI子系统 37

2.1.3 安装OpenMPI 38

2.2 MPI标准 39

2.2.1 MPI的世界 39

2.2.2 安装Rmpi 40

2.2.3 安装pbdMPI 41

2.3 MPI API 43

2.3.1 点对点阻塞通信 44

2.3.2 点对点非阻塞通信 56

2.3.3 集体通信 60

2.4 总结 65

第3章 高级消息传递 66

3.1 网格并行性 66

3.1.1 创建网格集群 68

3.1.2 边界数据交换 70

3.1.3 中值滤波 73

3.1.4 平铺分配图像 74

3.1.5 中值滤波网格程序 76

3.2 检查和管理通信 84

3.3 lapply()的函数变体 87

3.4 总结 89

第4章 开发SPRINT——超级计算机的基于MPI的R包 90

4.1 关于ARCHER 91

4.2 从R中调用MPI代码 92

4.2.1 MPI Hello World 92

4.2.2 从R中调用C 94

4.3 建立一个MPI R包——SPRINT 97

4.3.1 简单的并行R接口(SPRINT)包 97

4.3.2 SPRINT包的体系结构 99

4.4 将一个新函数添加到SPRINT包中 100

4.4.1 下载SPRINT源代码 101

4.4.2 在R中创建一个存根——phello.R 102

4.4.3 添加接口函数——phello.c 103

4.4.4 添加实现函数——hello.c 105

4.4.5 连接存根、接口和实现 106

4.4.6 编译并运行SPRINT代码 110

4.5 基因组学分析案例研究 112

4.5.1 基因组学 113

4.5.2 基因组数据 115

4.6 基因组学与超级计算机 116

4.6.1 目标 116

4.6.2 ARCHER超级计算机 116

4.6.3 随机森林 120

4.6.4 基因组分析案例研究的数据 122

4.6.5 ARCHER中的随机森林性能 122

4.6.6 排名产品 127

4.6.7 ARCHER中的排名产品性能 128

4.6.8 结论 131

4.7 总结 132

第5章 笔记本中的超级计算机 133

5.1 OpenCL 133

5.2 ROpenCL包 142

5.2.1 ROpenCL编程模型 142

5.2.2 距离矩阵示例 153

5.3 总结 161

第6章 并行程序设计的艺术 162

6.1 理解并行效率 163

6.1.1 加速比 163

6.1.2 阿姆达尔定律 164

6.1.3 并行或者不并行 165

6.2 数值逼近 167

6.3 随机数 170

6.4 死锁 172

6.5 减少并行开销 175

6.6 自适应负载均衡 178

6.6.1 任务场 178

6.6.2 有效的网格处理 179

6.6.3 成功并行化的3个步骤 180

6.6.4 未来将会怎样 181

6.6.5 混合并行性 184

6.7 总结 185