[問題]有好幾組ode45,該如何用parfor來平行運算?已回收

看板MATLAB作者 (123木頭人)時間14年前 (2011/07/28 18:13), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
我有好幾組ode45的方成組 每一組的ode數量、初值、時間都不一樣 由於ode45的組數太多,電腦用單核心跑要跑很久 我希望能讓電腦每個核心都能分別跑一組ode45,不知道這想法可不可行 以下是我的code function y=fun(k) ga=[91 70 38 28 22 20 12]; gb=[92 67 32 23 18 16 9]; %第一組ode45 tind1=(0:30000); n01=[3.94e19 zeros(1,ga(1)-1) 3.94e19 zeros(1,gb(1)+3)]; options1=odeset('events',@evntfun1); [t1,n1,te1]=ode45(@(t,n) odefun1(t,n,k,ga,gb),tind1,n01',options1); function f1=odefun1(t,n,k,ga,gb) (ode方程式很多就略過不寫) function [value,isterminal,direction] = evntfun1(t,n) %第二組ode45 tind2=(0:20000); n02=[4.18e19 zeros(1,ga(2)-1) 4.18e19 zeros(1,gb(2)+3)]; options2=odeset('events',@evntfun2); [t2,n2,te2]=ode45(@(t,n) odefun2(t,n,k,ga,gb),tind2,n02',options2); function f2=odefun2(t,n,k,ga,gb) function [value,isterminal,direction] = evntfun2(t,n) %第三組 %第四組... y=[te1 te2 te3 .....]; 想請問以上code想改寫成用parfor表示要怎麼改比較好?? 我改寫後一直都不對,麻煩板上高手指點一下 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.126.66.160

07/28 18:44, , 1F
多開幾個MATLAB分別跑??
07/28 18:44, 1F
因為上面的code只是副程式,主程式會丟很多組k值進來做疊帶,沒辦法分開跑@@ ※ 編輯: yichen1006 來自: 122.126.66.160 (07/28 22:57)
文章代碼(AID): #1ECJO_Gl (MATLAB)