让R运算速度快100倍!!!
Try to learn everything about something!
R语言在进行很多运算时非常慢,这是它被诟病最多的一点,最近了解到这个openblas神器,换上之后,果然速度飞快!
以后你再做WGCNA这种运算时,速度蹭蹭蹭的!
OpenBlas简介
OpenBlas是一个开源项目,是由中科院软件所并行软件与计算科学实验室发起的基于GotoBLAS2 1.13 BSD版的开源BLAS库高性能实现。
BLAS(Basic Linear Algebra Subprograms 基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量或矩阵乘法)。该程序集最初发布于1979年,并用于建立更大的数值程序包(如LAPACK)。在高性能计算领域,BLAS被广泛使用。例如,LINPACK的运算成绩则很大程度上取决于BLAS中子程序DGEMM的表现。为提高性能,各软硬件厂商则针对其产品对BLAS接口实现进行高度优化。
今天使用的OpenBlas来自于这个地址,是一个大佬修改版:Github[1]
性能测试
进行一个简单的小测试,矩阵运算。
# 这是默认的Rblas
x<-matrix(1:(6000*6000),6000,6000)
system.time(tmp<-x%*%x)
用户 系统 流逝
102.41 0.05 102.50
CPU使用率始终在6%,根本发挥不出我5900X的功力!
接下来看看换成OpenBlas之后的表现:
x<-matrix(1:(6000*6000),6000,6000)
system.time(tmp<-x%*%x)
用户 系统 流逝
20.14 2.52 1.19
速度明显提升,太快了!原来要100多秒,现在只要1秒多!!震惊!!快了100倍。。。
安装使用
从上面我给的网址中下载OpenBLAS-0.3.20-x64.zip,可能会有更新,如果版本不一样不用慌。
解压OpenBLAS-0.3.20-x64.zip,找到 解压文件下 \bin\libopenblas.dll,将libopenblas.dll重命名为Rblas.dll ,然后替换掉R里面的文件(记得备份),我的Rblas目录在C:\Program Files\R\R-4.1.0\bin\x64里面。
替换好之后,就可以享受飞一般的速度了!
参考资料
[1]OpenBlas: https://github.com/xianyi/OpenBLAS
以上就是今天的内容,希望对你有帮助哦!欢迎点赞、在看、关注、转发!
欢迎在评论区留言或直接添加我的微信!
欢迎关注公众号:医学和生信笔记
“医学和生信笔记 公众号主要分享:1.医学小知识、肛肠科小知识;2.R语言和Python相关的数据分析、可视化、机器学习等;3.生物信息学学习资料和自己的学习笔记!