不能在parfor中使用的功能列表

时间:2011-03-03 10:22:43

标签: matlab parallel-processing

使用Matlab的Parallel Toolbox时遇到问题。实际上,我想在parfor循环中解压缩一系列存档,似乎untarsystem都不起作用。它们不会导致错误,它们根本不会产生任何结果。

一旦我停用并行性,完全相同的代码就会毫无问题地工作。

是否有引用列出了parfor循环中无法使用的函数?我在平行的工具箱文档中找不到它。

2 个答案:

答案 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)