我有一个关于sum
matlab的问题。
对于向量(1xN 矩阵),sum
似乎是并行化的。例如,
a=rand(1,100000000);
maxNumCompThreads(2);
tic;for ii=1:20;b=sum(a,2);end;toc
maxNumCompThreads(1);
tic;for ii=1:20;b=sum(a,2);end;toc
> Elapsed time is 1.219342 seconds.
> Elapsed time is 2.393047 seconds.
但如果我考虑一个 2xN 矩阵,
a=rand(2,100000000);
maxNumCompThreads(2);
tic;for ii=1:20;b=sum(a,2);end;toc
maxNumCompThreads(1);
tic;for ii=1:20;b=sum(a,2);end;toc
> Elapsed time is 7.614303 seconds.
> Elapsed time is 7.432590 seconds.
在这种情况下,sum
似乎并没有从额外的核心中受益。
以前有人遇到过这个吗?我想知道这是否可能是由于索引开销以及sum
在 2xN 矩阵的情况下是否可以更快。
非常感谢。