Giu*_*ppe 5 parallel-processing multicore r matrix linear-algebra
我正在寻找矩阵A = B'C的迹线(迹线(A))的R中的快速计算.我能想到的最快的方法如下:
set.seed(123)
n <- 10^6
B <- matrix(rnorm(n), ncol=sqrt(n))
C <- matrix(rnorm(n), ncol=sqrt(n))
ptm <- proc.time()
A <- tcrossprod(B,C)
traceA <- sum(diag(A))
proc.time() - ptm
Run Code Online (Sandbox Code Playgroud)
我问自己是否有更快的方法(特别是如果矩阵B和矩阵C是对称的,甚至是幂等的).我的意思是A <- tcrossprod(B,C)我正在计算整个矩阵A的行,尽管我只需要矩阵的对角元素之和(trace(A)).
为了加快速度,我想到了并行计算tcrossprod,但我没有找到一个实现(另外我不知道这是不是一个好主意).有人有想法吗?