B********1 发帖数: 24 | 1 A 2000*2000
B 2000*2000
需要计算 A %*%B 但是好慢啊,有没有快些的方法呢? |
p****0 发帖数: 1786 | |
B********1 发帖数: 24 | 3 是个大程序中的几步,其他都是R写的。 R可以调用Matlab function么? |
h***i 发帖数: 3844 | 4 MapReduce
【在 B********1 的大作中提到】 : A 2000*2000 : B 2000*2000 : 需要计算 A %*%B 但是好慢啊,有没有快些的方法呢?
|
w**********n 发帖数: 55 | 5 从统计之都copy来的,大牛的解答,我是不懂:
R的矩阵运算是调用BLAS矩阵运算库,要提升速度你可以替换掉默认的Rblas.dll文件,
CRAN提供了ATLAS,http://cran.r-project.org/bin/windows/contrib/ATLAS/C2i7/Rblas.dll,还有其他的选择,如OpenBLAS等。 |
T*****u 发帖数: 7103 | |
g******2 发帖数: 234 | |
c********n 发帖数: 186 | 8 R与MATLAB交互使用指南初步(没试过):
http://cos.name/cn/topic/110397/
Package ‘R.matlab’:
http://cran.r-project.org/web/packages/R.matlab/R.matlab.pdf
【在 B********1 的大作中提到】 : 是个大程序中的几步,其他都是R写的。 R可以调用Matlab function么?
|
k*******a 发帖数: 772 | 9 多快叫快?
a = matrix(rnorm(2000*2000), nrow=2000)
b = matrix(rnorm(2000*2000), nrow=2000)
system.time(a %*% b)
user system elapsed
4.705 0.004 4.708
如果你的时间远远超过这个,那估计是硬件的问题 |
o****o 发帖数: 8077 | 10 你的也太慢了,用的default的BLAS吧
> a = matrix(rnorm(2000*2000), nrow=2000)
>
> b = matrix(rnorm(2000*2000), nrow=2000)
>
> system.time(a %*% b)
user system elapsed
1.47 0.04 0.26
【在 k*******a 的大作中提到】 : 多快叫快? : a = matrix(rnorm(2000*2000), nrow=2000) : b = matrix(rnorm(2000*2000), nrow=2000) : system.time(a %*% b) : user system elapsed : 4.705 0.004 4.708 : 如果你的时间远远超过这个,那估计是硬件的问题
|
|
|
b********1 发帖数: 291 | 11 呵呵 老问题了:
SAS 和 R PK 矩阵相承, 或者求个逆矩阵, 你们觉得谁能胜出 ? |
k*******a 发帖数: 772 | 12 果然快
【在 o****o 的大作中提到】 : 你的也太慢了,用的default的BLAS吧 : > a = matrix(rnorm(2000*2000), nrow=2000) : > : > b = matrix(rnorm(2000*2000), nrow=2000) : > : > system.time(a %*% b) : user system elapsed : 1.47 0.04 0.26
|
w**********n 发帖数: 55 | 13
速度,内存,精度什么的总要trade off的.不然为什么不都用最好的
【在 b********1 的大作中提到】 : 呵呵 老问题了: : SAS 和 R PK 矩阵相承, 或者求个逆矩阵, 你们觉得谁能胜出 ?
|
l******n 发帖数: 9344 | 14 配置?我8g i5 laptop user time居然超过10秒
【在 o****o 的大作中提到】 : 你的也太慢了,用的default的BLAS吧 : > a = matrix(rnorm(2000*2000), nrow=2000) : > : > b = matrix(rnorm(2000*2000), nrow=2000) : > : > system.time(a %*% b) : user system elapsed : 1.47 0.04 0.26
|
o****o 发帖数: 8077 | 15 你的啥机器啊,用的R自带的BLAS吧
我的i5-3570k,没超频
上一个是至强的六核CPU
> a = matrix(rnorm(2000*2000), nrow=2000)
> b = matrix(rnorm(2000*2000), nrow=2000)
> system.time(a %*% b)
user system elapsed
1.42 0.14 0.43
>
【在 l******n 的大作中提到】 : 配置?我8g i5 laptop user time居然超过10秒
|
t********e 发帖数: 1169 | |
l****i 发帖数: 398 | 17 如果嫌麻烦自己装open blas什么的, 可以直接装一个revolution r open. RRO自带
Intel Math Kernel Library (MKL)可以multi-thread矩阵运算。我用的i5-3320m, 16g
内存,只能2个线程,速度也还行。
> if(require(RevoUtilsMath)){
+ setMKLthreads(2)
+ }
Loading required package: RevoUtilsMath
>
> a = matrix(rnorm(2000*2000), nrow=2000)
> b = matrix(rnorm(2000*2000), nrow=2000)
>
> system.time(a %*% b)
user system elapsed
0.92 0.00 0.52 |
c***z 发帖数: 6348 | 18 出去抽根烟,聊聊天,溜达溜达
【在 B********1 的大作中提到】 : A 2000*2000 : B 2000*2000 : 需要计算 A %*%B 但是好慢啊,有没有快些的方法呢?
|
p******1 发帖数: 79 | 19 以前读书的时候一个同学,她的矩阵运算都用c++/c......
【在 B********1 的大作中提到】 : A 2000*2000 : B 2000*2000 : 需要计算 A %*%B 但是好慢啊,有没有快些的方法呢?
|
z******n 发帖数: 397 | 20 link?
【在 w**********n 的大作中提到】 : 从统计之都copy来的,大牛的解答,我是不懂: : R的矩阵运算是调用BLAS矩阵运算库,要提升速度你可以替换掉默认的Rblas.dll文件, : CRAN提供了ATLAS,http://cran.r-project.org/bin/windows/contrib/ATLAS/C2i7/Rblas.dll,还有其他的选择,如OpenBLAS等。
|