它需要(在我的MBP上使用2.9 GHz Intel Core i7和16 GB内存)超过20秒才能获得40,000 x 1,000矩阵的交叉产品:
> system.time(a <- crossprod(matrix(pi,40000,1000)))
user system elapsed
23.808 0.139 24.001
Run Code Online (Sandbox Code Playgroud)
有没有办法让它更快?谢谢你的帮助.
通过更改您的代码?基本上没有.crossprod直接调用已编译的代码,您将很难找到任何性能提升,而您发现的任何内容都会很小.
(除非情有可原 - 你的矩阵有多密集?如果你有很多0,那么使用稀疏矩阵可能会有所帮助.我还假设你的矩阵不仅仅是一个常数矩阵,如你的例子所示.)
您也可以使用Microsoft的Revolution R Open,它被编译为使用不同的BLAS,或者使用更优化的BLAS自己编译R. 这个链接有很好的细节.对于纯线性代数操作,这可能会产生相当大的影响.该站点显示了矩阵乘法,cholesky分解等的数量级加速.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |