我不确定我是否发现了matlab错误或者做错了什么,但似乎在parfor循环中调用匿名函数会显着降低它的速度(甚至比串行性能慢)
这是对的吗?
请参阅此代码:
tic; parfor i=1:6, min(randn(10000000,1)); end; toc
tic; for i=1:6, min(randn(10000000,1)); end; toc
平行经过时间为0.510345秒。
连续经历时间为0.932137秒。
除了使用anon函数外,同样的事情:
q = @(x) min(randn(10000000,1));
tic; parfor i=1:6, q([]); end; toc %parelel
tic; for i=1:6, q([]); end; toc %serial
平行经过时间是4.208346秒。
连续经历时间为0.933594秒。