[求助]matlab多核计算,调用子程序出现循环
程序1function =tfor
t=0;
matlabpool local 3;
parfor i=1:1000
t=t+inSum;
end
matlabpool close;
function =inSum
x=abs(round(normrnd(50,40,1,1000)));
s=sum(x);
程序2
function =ttfor
t=0;
matlabpool local 3;
parfor i=1:1000
t=t+tinSum;
end
matlabpool close;
function =tinSum
s=0;
parfor i=1:100
s=s+i;
end
程序1子程序里没有循环,没有问题;但程序2中有循环,就会出错,请问这种情况matlab能使用多核计算吗?
回复 1 # laplacemo 的帖子
并行计算中,parfor好像只适用于最底层的一层循环,在parfor help中可以找到说明 回复 2 # 雨人 的帖子
嗯,我也看到这样的说明,但是如何需要并行计算,不用parfor,请问有其他办法吗? 回复 3 # laplacemo 的帖子
并行计算的内容也很多啊 ,你可以参考并行计算的工具箱。我对这块也不是很熟悉,具体还是建议你看看help吧 不用parfor,你需要把数据变成distributied matrix,然后每个核心只处理自己的那部分数据就行了 跟进学习下吧,没搞过并行,不过估计以后的课题肯定会涉及到,期待高手! 可能个人经歷遇过程序一丢, 一星期还没出答案的时代, 所以总感觉现在的速度已经够快了! 所以这些工具安装时就直接不选了, 也没学过
而且现在动不动就大矩阵大迴圈, 有些可能有其必要, 但许多实在是没这需要阿
愚昧想法, 可以简单的就不必复杂!
喔, 强调下不是说并行不重要, 只是我还没此需求吧了
年轻人我还是会建议知晓下 个人感觉,并行计算其实也很有用处,考虑到现在计算机经常是有4核等,经过精心处理过的程序,速度确实要高好几倍。尤其需要反复多次求解方程,比如画分岔图时,感觉很有用处。
遗憾的是,并行计算用法限制较多,个人在使用parfor调用simulink模型时,总提示错误。还是希望,熟悉这块的朋友,路过留言!
页:
[1]