使用Matlab的Parallel Toolbox时遇到问题。实际上,我想在parfor循环中解压缩一系列存档,似乎untar
和system
都不起作用。它们不会导致错误,它们根本不会产生任何结果。
一旦我停用并行性,完全相同的代码就会毫无问题地工作。
是否有引用列出了parfor
循环中无法使用的函数?我在平行的工具箱文档中找不到它。
答案 0 :(得分:1)
system
应该在PARFOR循环中正常工作 - 假设您调用的可执行文件不需要用户输入。
>> matlabpool('size')
ans =
3
>> parfor ii=1:2, system('pwd'), end
/tmp
ans =
0
/tmp
ans =
0
PARFOR循环体内无法直接直接的函数的主要约束与“工作空间透明度”有关 - 您不能使用修改工作空间的函数,例如assignin
,{{ 1}},load
等。有关详情,请参阅this page。 (当然,您可以从调用clear
等的PARFOR循环体调用函数。)
答案 1 :(得分:0)
你可以尝试这样的事情。
function parallel_stuff
parfor i = 1:10
b = my_untar(a)
端
端
功能b = my_untar(a)
b =解压缩(a)
端