2014-08-28 33 views
0

林使用Matpower - matlab工具箱并行计算和建立计算机集群来模拟其在下面示出的方案:这可以并行实现Matlabpool吗?

matlabpool open job1 5 % matlabpool means computer cluster 

spmd %the statement from the Parallel computing toolbox 
    % Run all the statements in parallel 
    % first part of code 
    if labindex==1 
     runopf('casea'); 
    end 
    % second part of code 
    if labindex==2 
     runopf('caseb'); 
    end 
end 

matlabpool close; 

当labindex是1的代码在此程序中的第一部分是在运行“计算机1“,当labindex为2时,则程序中的第二部分代码”正在计算机2中运行“。我的问题是上面显示的主代码依次或并行运行?

我的意思是,第二部分代码是否必须等待执行,直到执行代码的第一部分,或者可以在集群中的两台不同计算机上并行执行两部分代码?

回答

0

spmd和相应end之间的代码发送到所有工人(在你的情况5),他们在并行执行这些指令。然后,在您的代码中,您指示工人#1执行runopf('casea');和工人#2 runopf('caseb');。工人#3到#5将无效。

从技术上说,工人#2会稍后执行runopf('caseb');。出现延迟是因为工号2还将检查第一个if语句(但不会执行其中的代码)。

+0

工作者#2的这个延迟是否直到工人#1执行或仅仅是由于if语句? – 2014-08-28 02:06:12

+0

是的,仅仅是因为if语句。 “并行计算”意味着工作人员在其他工作人员执行自己的代码的同时执行自己的代码。 – anandr 2014-08-28 02:53:32

相关问题