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에서 Parallel for-Loops (parfor)에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!