搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
R高性能编程:用整套解决方案与高超技巧突破性能瓶颈
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121273964
  • 作      者:
    Aloysius Lim, William Tjhi著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2015
收藏
编辑推荐
  从本书你将学到什么
  √对R程序进行基准测试和性能分析以解决性能瓶颈
  √理解CPU、内存和磁盘I/O是如何限制R程序的性能的
  √优化R代码使其运行更快并消耗更少内存
  √在R中使用编译代码和C这样的其他语言以加快计算速度
  √利用GPU提升计算速度
  √使用基于磁盘的内存和块技术处理超过内存容量的数据集
  √通过并行计算接入多个CPU
  √在R中利用高级数据库系统和大数据工具
  这本书的读者是谁
  这本书可以帮助那些想要提升R程序性能的程序员和开发者,使R程序在处理大型数据集的时候运行更快;也适合那些试图解决某个讨厌的性能问题的程序员和开发者。
展开
作者简介
  Aloysius Lim,擅长将复杂的数据和模型表述为简单易懂的见解。作为About People的联合创办者、数据科学家及设计顾问,他喜欢解决问题,以及帮助他人寻找利用数据解决业务难题的实践方案。在政府、教育和零售行业长达7年的丰富经验,造就了他寻找具有创造性的解决办法的独特视角。
  衷心地感谢上帝给我机会撰写本书,让我分享这些知识。在这个过程中,我亲爱的妻子Bethany给予了极大的支持和鼓励。谢谢你全部的爱,亲爱的。非常感谢我的搭档William,他是我灵感和洞察力的来源。

  William Tjhi,数据科学家,在学术、政府及工业界具有多年的工作经验。他自读博期间开始了数据科学之旅,研究了一些新算法以提高高维数据聚类的健壮性。取得博士学位之后,他从基础研究转向了应用研究,致力于采用机器学习方法解决分子生物学和传染病学中的各种问题。他在一些同行评审的期刊和会议上发表了部分研究成果。随着大数据的兴起,William离开了学术界,转而投入工业界,开始了商业和公共部门领域的数据科学实践。William热衷于R,从他搞研究的那天开始就一直使用R作为主要的分析工具。他曾经是Revolution Analytics的一员,那时候他做了很多使R更加适合大数据的贡献。

  唐李洋,毕业于 Rutgers Newark大学,曾于Cisco Webex工作。现任职于合肥工业大学信息管理学院。译有《高可用MySQL》(电子工业出版社)等书。
展开
内容介绍
  R语言是专门为统计学和数据分析开发的解释型语言,主要用于数学建模、统计计算、数据处理、可视化等几个方面。近年来,受大数据的影响,R语言备受业界追捧。与此同时,工业界和学术界都越来越要求R具备高效分析和处理大规模数据的能力。但是,由于R本身的设计问题,它能够有效处理的数据规模和计算复杂度有限。
  为此,《R高性能编程》提供了较为完整的参考方案和技术指南。《R高性能编程》首先解释了CPU、内存和磁盘I/O等影响R性能的三个因素,剖析了R在处理大规模数据时出现性能瓶颈的原因。在理解了R的设计原理及其性能限制的基础之上,《R高性能编程》给出了提升R性能的方法和技术,例如:尽量使用向量化运算避免不必要的计算开销,预分配内存避免不必要的动态内存分配,使用编译代码减少CPU时间,删除不必要的中间数据释放内存占用,通过运行时计算代替存储减少内存使用,使用内存映射文件处理大型数据集,使用并行计算技术优化代码,以及接入数据库处理工具,等等。最后,《R高性能编程》提供了如何在R中使用Hadoop的方法,以处理和分析大数据。
展开
目录
前言 X
1  理解R的性能:为什么R程序有时候很慢? 1
计算性能的三个限制因素:CPU、RAM和磁盘I/O 2
R是运行时解释的 4
R是单线程的 5
R需要将全部数据加载到内存 5
算法设计影响时间和空间复杂度 6
小结 9
2  性能分析:衡量代码的性能 11
衡量总运行时间 11
使用system.time()衡量运行时间 12
使用rbenchmark重复衡量运行时间 13
使用microbenchmark衡量运行时间的分布 15
分析运行时间 16
使用Rprof()分析函数的性能 16
性能分析的结果 18
分析内存使用情况 20
使用OS工具监控内存使用情况、CPU使用情况和磁盘I/O 22
瓶颈的发现及解决 23
小结 26
3  加快R运行的简单方法 27
向量化 27
使用内置函数 29
预分配内存 30
使用更简单的数据结构 33
使用哈希表进行大型数据上的频繁查找 34
去CRAN寻找更快的包 35
小结 36
4  使用编译代码加快运行速度 37
在运行之前编译R代码 37
编译函数 38
即时编译(JIT)R代码 41
在R中使用编译语言 41
前提条件 42
以内联形式包含编译代码 42
调用外部编译代码 46
使用编译代码的注意事项 49
小结 52
5  使用GPU让R运行得更快 53
GPU上的通用计算 53
R和GPU 54
安装gputools 55
使用gputools实现快速统计建模 55
小结 59
6  减少内存使用的简单方法 61
重用对象而不多占用内存 61
删除不再需要的中间数据 66
运行时计算值而不是永久性存储值 69
交换活跃数据和非活跃数据 71
小结 71
7  使用有限的内存处理大型数据集 73
使用节约内存的数据结构 73
更小的数据类型 76
稀疏矩阵 77
对称矩阵 78
比特向量 79
使用内存映射文件并以块的形式处理数据 80
bigmemory包 81
ff包 85
小结 89
8  使用并行计算加倍提升性能 91
数据并行性 v.s. 任务并行性 91
实现数据并行的算法 95
实现任务并行的算法 98
集群节点运行同一个任务时 98
集群节点运行多个不同任务时 100
计算机集群并行执行多个任务 102
共享内存并行性 v.s. 分布式内存并行性 104
优化并行的性能 108
小结 109
9  将数据处理交给数据库系统 111
将数据抽取到R v.s. 在数据库中处理数据 111
在关系型数据库中使用SQL进行数据预处理 112
将R表达式转化为SQL 116
使用dplyr 117
使用PivotalR 119
在数据库中运行统计和机器学习算法 122
使用列式数据库提升性能 125
使用数据库阵列最大化科学计算的性能 128
小结 129
10  R和大数据 131
理解Hadoop 131
在Amazon Web Services上配置Hadoop 133
使用Hadoop批量处理大型数据集 136
将数据上传到HDFS 136
使用RHadoop分析HDFS数据 138
R中的其他Hadoop包 142
小结 143
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证