Parallel ODE solve using parfor-loop
显示 更早的评论
Hello, I've got the ODE system and want to solve it using the cluster. I've been trying to use parfor-loop, but the initial condition must be changed for every new call of ode-solver. And the results I received isn't correct. Maybe there are some build-in tools for such problem? Here is my attemp to parallel ode solving
parfor i=1:100
[T,X]=ode45(@rightpart,[i*500-499 i*500],X0,options);
%each worker will calculate values for T from 1-500,501-1000 and so on
Tt=cat(1,Tt,T);
Xt=cat(1,Xt,X);
%here I accumulate final value vectors
end
1 个评论
Ryan G
2013-5-13
PARFOR works by sending independent calls of the loop to each member of the pool. If your next call to the solver is dependent on a previous call, this will not work.
The cat function here will randomly order the data based on whenever the next iteration comes in. I would recommend indexing here instead.
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!