在使用R的時候會發現R對CPU的利用率並不是很高,反正當我在使用R的時候,無論R做何種運算R的CPU利用率都只有百分子幾,這就導致一旦計算量大的時候計算時間非常長,會給人一種錯覺(R真的在計算嗎?會不會我的程式死掉了?)。今天,我看到了一篇博客介紹的方法,迫不及待的嘗試了一下,只能說:太牛逼了!下麵 ...
在使用R的時候會發現R對CPU的利用率並不是很高,反正當我在使用R的時候,無論R做何種運算R的CPU利用率都只有百分子幾,這就導致一旦計算量大的時候計算時間非常長,會給人一種錯覺(R真的在計算嗎?會不會我的程式死掉了?)。今天,我看到了一篇博客介紹的方法,迫不及待的嘗試了一下,只能說:太牛逼了!下麵是我的測試截圖:
前:
後:
可以看到,計算時間從247.97s(也就是4.14min)降到了11.22s,CPU利用率在R計算的時候飆到了100%。
實現上面的性能需要安裝OpenBLAS,BLAS是線性代數運算的一個標準,它有很多種實現方式。在R中,不管是顯式的還是隱含的,我們往往都要進行大量的線性代數運算。但R預設調用的往往是所謂的ref BLAS,這是一個僅僅實現了功能,效率非常低的BLAS。商業支持的Revolution R之所以算起來快,很重要的一個原因是它用了Intel優化過的MKL BLAS(Matlab也是用了MKL才快的)。BLAS有一個開源的實現是OpenBLAS,它從GotoBLAS進化而來,能做到比Intel MKL更快。
方法:下載下麵百度雲網盤裡的文件→解壓→複製所有dll文件到R的安裝目錄下的bin下的x64(不好意思我的電腦是64位的,32位系統的請點擊後文中的參考鏈接)文件夾下(比如我的是:D:\R\R-3.3.1\bin\x64,x64下的複製之前記得保存Rblas.dll文件)→OK
http://pan.baidu.com/s/1sl1XqkX
參考:http://blog.csdn.net/a358463121/article/details/42713307
OpenBLAS下載網:https://sourceforge.net/projects/openblas/files/
本文鏈接:http://www.cnblogs.com/homewch/p/5954177.html