当前位置:首页 > 工业技术
R语言应用系列  数据科学中的并行计算  以R,C++和CUDA为例
R语言应用系列  数据科学中的并行计算  以R,C++和CUDA为例

R语言应用系列 数据科学中的并行计算 以R,C++和CUDA为例PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:(美)诺曼·马特洛夫;汪磊,寇强译
  • 出 版 社:西安:西安交通大学出版社
  • 出版年份:2017
  • ISBN:9787560599588
  • 页数:313 页
图书介绍:本书的关注点在于并行数据结构、算法、软件工具及应用,是数据科学领域第一本着重于并行及其相关技术的图书。本书不仅包含了众多经典统计问题,也涵盖了数据科学中常见的时间序列、网络图模型等大量数据结构。书中的并行计算实例覆盖了非常广的范围,这也是本书最大的亮点之一。本书展示了如何在多核系统、集群、GPU这三种常用并行平台上进行编程开发,同时基于作者的多年经验讨论了多种相关编程语言和现有的软件包。读者通过本书学习到的并行计算的技能,也可以应用到Python 和 Julia 等其它编程语言中。
《R语言应用系列 数据科学中的并行计算 以R,C++和CUDA为例》目录

译者序 1

前言 3

作者简介 7

第1章R语言中的并行处理入门 1

1.1反复出现的主题:良好并行所具有的标准 1

1.2关于机器 2

1.3反复出现的主题:不要把鸡蛋放在一个篮子里 3

1.4扩展示例:相互网页外链 3

第2章“我的程序为什么这么慢?”:速度的障碍 15

2.1速度的障碍 15

2.2性能和硬件结构 16

2.3内存的基础知识 17

2.4网络基础 20

2.5延迟和带宽 21

2.6线程调度 26

2.7多少个进程/线程? 27

2.8示例:相互外链问题 27

2.9“大O”标记法 28

2.10数据序列化 29

2.11“易并行”的应用 29

第3章 并行循环调度的准则 31

3.1循环调度的通用记法 32

3.2 snow中的分块 33

3.3关于代码复杂度 36

3.4示例:所有可能回归 36

3.5 partools包 48

3.6示例:所有可能回归,改进版本 48

3.7引入另一个工具:multicore 54

3.8块大小的问题 61

3.9示例:并行距离计算 62

3.10 foreach包 67

3.11跨度 71

3.12另一种调度方案:随机任务置换 71

3.13调试snow和multicore的代码 74

第4章 共享内存范式:基于R的简单介绍 76

4.1是什么被共享了? 77

4.2共享内存代码的简洁 80

4.3共享内存编程的高级介绍:Rdsm包 80

4.4示例:矩阵乘法 82

4.5共享内存能够带来性能优势 88

4.6锁和屏障 90

4.7示例:时间序列中的最大脉冲 93

4.8示例:变换邻接矩阵 95

4.9示例:k-means聚类 102

第5章 共享内存范式:C语言层面 112

5.1 OpenMP 112

5.2示例:找到时间序列中的最大脉冲 113

5.3 OpenMP循环调度选项 121

5.4示例:邻接矩阵的变换 124

5.5示例:邻接矩阵,R可调用的代码 130

5.6 C加速 142

5.7运行时间与开发时间 143

5.8高速缓存/虚拟内存的深人问题 143

5.9 OpenMP中的归并操作 149

5.10调试 152

5.11 Intel Thread Building Blocks(TBB) 154

5.12无锁同步 155

第6章 共享内存范式:GPU 157

6.1概述 157

6.2关于代码复杂性的再讨论 158

6.3章节目标 158

6.4英伟达GPU和CUDA简介 159

6.5示例:相互反向链接问题 169

6.6 GPU上的同步问题 172

6.7 R和 GPU 174

6.8英特尔Xeon Phi芯片 175

第7章Thrust与Rth 176

7.1不要把鸡蛋放在一个篮子里 176

7.2 Thrust简介 177

7.3 Rth 177

7.4略过C++相关内容 177

7.5示例:计算分位数 178

7.6 Rth简介 182

第8章 消息传递范式 186

8.1消息传递概述 186

8.2集群模型 187

8.3性能问题 187

8.4 Rmpi 188

8.5示例:计算素数的流水线法 190

8.6内存分配问题 200

8.7消息传递的性能细节 201

第9章MapReduce计算 204

9.1 Apache Hadoop 204

9.2其他MapReduce系统 209

9.3 MapReduce系统的R接口 210

9.4另一个选择:“Snowdoop” 210

第10章 并行排序和归并 214

10.1难以实现的最优目标 214

10.2排序算法 214

10.3示例:R中的桶排序 218

10.4示例:使用OpenMP的快排 219

10.5 Rth中的排序 222

10.6计时比较 224

10.7分布式数据上的排序 225

第11章并行前缀扫描 227

11.1一般公式 227

11.2应用 228

11.3一般策略 229

11.4并行前缀扫描的实现 232

11.5 OpenMP实现的并行cumsum () 232

11.6示例:移动平均 236

第12章并行矩阵运算 244

12.1平铺矩阵 244

12.2示例:snowdoop方法 246

12.3并行矩阵相乘 247

12.4 BLAS函数库 252

12.5示例:OpenBLAS的性能 253

12.6示例:图的连通性 256

12.7线性系统求解 259

12.8稀疏矩阵 263

第13章原生统计方法:子集方法 266

13.1分块均值 266

13.2 Bag of Little Bootstraps方法 273

13.3变量子集 274

附录A回顾矩阵代数 275

A.1术语和符号 275

A.2矩阵转置 277

A.3线性独立 277

A.4行列式 277

A.5矩阵求逆 278

A.6特征值和特征向量 279

A.7 R中的矩阵代数 279

附录B R语言快速入门 282

B.1 对照 282

B.2启动R 283

B.3编程示例一 283

B.4编程示例二 287

B.5编程示例三 290

B.6 R列表类型 291

B.7 R中的调试 295

附录C给R程序员的C简介 296

C.1示例程序 296

C.2分析 297

C.3 C++ 298

索引 301

相关图书
作者其它书籍
返回顶部