并行化matlab代码

时间:2014-09-03 12:19:57

标签: matlab parallel-processing

在我的Matlab脚本中,我运行了一个带有for循环的算法,其中,在每次迭代中,我需要进行梯度下降。所有梯度下降都是独立的。这是我的脚本的结构:

for i=1:p

x=gradient_descent(x_init,grad_g,opts(i));

end

其中opts(i)是包含梯度下降所必需的变量的结构。在这种情况下,$ p = 145 $。我的脚本在我的机器上运行$ 8 $秒(不使用任何并行技巧)。 我的印象是我的脚本可以并行化,因为每个梯度都是独立的。当我在计算机上取消matlabpool时,我最多可以使用4个实验室。同时,每个实验室都可以运行梯度下降,而不是一次做一个梯度下降,我可以做4.但我不知道如何并行化我的脚本。根据我在互联网上发现的内容,我可以使用batch功能,对吗?

1 个答案:

答案 0 :(得分:4)

我认为这应该有效:

parfor i=1:p
    x{i}=gradient_descent(x_init,grad_g,opts(i));
end