查看原文
其他

让R运算速度快100倍!!!

阿越就是我 医学和生信笔记 2023-02-25
关注公众号,发送R语言,获取学习资料!

     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.生物信息学学习资料和自己的学习笔记!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存