Matlab og multithreading
-
Höfundur - Besserwisser
- Póstar: 3963
- Skráði sig: Fim 08. Jún 2006 18:40
- Reputation: 0
- Staðsetning: Seltjarnarnes
- Staða: Ótengdur
Matlab og multithreading
Einhver hérna sem er über klár á Matlab og kann að forrita multithreaded scripts fyrir það? Er að forrita script sem að teiknar upp mandelbrot, og vill fá sem besta mynd, og næ ekki að nýta nema 24% af örgjörvanum.
"Knowledge is knowing that a tomato is a fruit,
wisdom is knowing not to put one in a fruit salad."
wisdom is knowing not to put one in a fruit salad."
-
- </Snillingur>
- Póstar: 1034
- Skráði sig: Fim 24. Jún 2004 12:36
- Reputation: 132
- Staða: Ótengdur
Re: Matlab og multithreading
Matlab er "single threaded" by nature. Hinsvegar, þá eru nokkur functions í Matlab multicore aware að uppfylltum ákveðnum skilyrðum. Sjá: http://www.walkingrandomly.com/?p=1894
Ef þú vilt búa til alvöru multithreaded forrit, þá væri sniðugast að nota mex fæla (C / C++ / Fortran) eða nota java með skipuninni java (að mig minnir)
Ef þú vilt búa til alvöru multithreaded forrit, þá væri sniðugast að nota mex fæla (C / C++ / Fortran) eða nota java með skipuninni java (að mig minnir)
-
Höfundur - Besserwisser
- Póstar: 3963
- Skráði sig: Fim 08. Jún 2006 18:40
- Reputation: 0
- Staðsetning: Seltjarnarnes
- Staða: Ótengdur
Re: Matlab og multithreading
Verst er að ég er bundinn við Matlab í verkefninu sem ég er að gera. En ef einhver nennir að rýna í kóðann og sjá hvort að það sé möguleiki á að fínstilla hann til að auðvelda reikningana væru ábendingar vel þegnar. Þetta er í raun bara grunn kóðinn, er búinn að bæta slatta af "user inputti" t.d. að stilla fjölda ítrana og upplausn. Það er held ég bara for lykkjan sem gæti verið hægt að fikta í til að klippa út einhverja óþarfa reikninga.
Kóði: Velja allt
raunMin = -2;
raunMax = 1;
tvinnMin = -1.25;
tvinnMax = 1.25;
itranMax = 1000;
raunSkref = 15;
tvinnSkref = 15;
raunBreidd = raunMax - raunMin;
tvinnBreidd = tvinnMax - tvinnMin;
fjSkrefRaun = raunBreidd/(raunSkref -1);
fjSkrefTvinn = tvinnBreidd/(tvinnSkref -1);
[x,y] = meshgrid([0:raunSkref-1]*fjSkrefRaun+raunMin, ...
[0:tvinnSkref-1]*fjSkrefTvinn+tvinnMin);
Zgildi = ones(size(x));
upphafZ=zeros(size(x));
c=(x+i*y);
z=upphafZ;
h_z=1:(raunSkref*tvinnSkref);
for j=1:itranMax
z(h_z)=z(h_z).^2 +c(h_z);
h_z=h_z(find(abs(z(h_z))<2));
Zgildi(h_z)=Zgildi(h_z)+1;
end
"Knowledge is knowing that a tomato is a fruit,
wisdom is knowing not to put one in a fruit salad."
wisdom is knowing not to put one in a fruit salad."