||
在大数据环境下,数据分析对算法中高性能计算的要求越来越高。R作为一门专著于统计分析的语言,如何实现提高计算性能,可以从下面三个层次来实现:
(1) 向量化
与C等语言不同,R的底层结构使得它可以使用向量化和矩阵运算的技巧来实现来提高性能。
举两个例子:
例1:聚类算法中类距离的计算
DM<-matrix(rnorm(1000*50),1000,50) # 50个变量1000个样本。
方法A:使用矩阵运算
运算时间:0.06秒
方法B:二层for 循环
运算时间:4.64秒
方法C:一层for 循环+apply()函数
运算时间:3.72秒
可见灵活运用 矩阵计算及apply()系列函数,可以极大得提供运算速度。
此外,还可以使用Openblas等底层矩阵运算库替换现有库Blas库,加速运行。
当然对于不能进行向量化的运算, R也提供了C和Java接口。使用者可以这些语言来编写程序,然后在R里面调用。
(2) 并行计算
(3)Map-reduce 框架
对于(2)(3) R提供了一些软件包来实现,极大地提高了运算效率
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-16 17:31
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社