我在matlab中使用长时间运行的parfor循环.
parfor iter=1:1000
chunk_of_work(iter);
end
Run Code Online (Sandbox Code Playgroud)
每次运行通常有大约2-3个定时异常值.也就是说,每执行1000次大量的工作,其中2-3次比其余工作长约100倍.随着循环接近完成,评估异常值的工人继续运行,而其余工人没有计算负荷.
这与静态分配工作的parfor循环一致.这与此处的并行计算工具箱的文档形成对比:
"工作分配是动态的,而不是被分配一个固定的迭代范围内,工人被分配一个新的迭代后,才处理完自己的当前迭代,这导致即使工作负荷分配."
关于发生了什么的任何想法?