MATLAB oferă o soluție pentru implementarea algoritmilor paraleli, și anume instrumentul pentru calcul paralel (Parallel Computing Toolbox TM). Este oferit suport pentru procesoare cu mai multe nuclee, unități de procesare grafică și clustere de calculatoare. De asemenea, se pot paraleliza algoritmi fără a fi nevoie de programare MPI sau CUDA.

Există 12 motoare de calcul MATLAB (începând cu versiunea R2011b) care fac posibilă rularea algoritmilor paraleli. Acestea pot rula și de pe un sistem de calcul multiprocesor local, cu o configurație de maxim 4 de astfel de motoare.

Paralelizarea simplă a algoritmilor Folosirea buclei parfor: parfor i=1:n task-uri end

Task-urile sunt distribuite automat către motoarele MATLAB. În cazul în care nici unul din aceste motoare nu este disponibil, atunci aplicația va rula în mod serial.

Avantaje Avantajele folosirii uneltei de calcul paralel MATLAB sunt:

- folosirea algoritmilor paraleli impliciți - distribuirea automată către resursele disponibile - nu este nevoie de cod paralelizat - eficientizarea timpului de calcul prin folosirea resurselor disponibile (procesoare multinucleu și unități grafice de procesare) - nu mai este necesară rescrierea codului, acesta poate rula pe orice sistem de calcul, indiferent de configurație, MATLAB va aloca corect resursele și instrumentele necesare.

Un aspect foarte important la scrierea unei aplicații paralele în MATLAB pentru îmbunătățirea timpilor de calcul îl reprezintă folosirea variabilelor neindexate într-o bucla "parfor" (cum ar fi tablourile) - ca in orice algoritm de calcul paralel, este important ca orice iterație dintr-o buclă "parfor" să fie independentă de celelalte. Altfel, tablourile trebuie împărțite (tehnică numită "slicing" - "feliere").

Exemplu Exemplu rulare MATLAB Paralel % Alocarea celor 8 unități centrale de prelucrare matlabpool 8 % Apel funcții ce folosesc fire de execuție % ... functieCalculParalel() %... % Dezalocarea unităților centrale de prelucrare matlabpool close

Bibliografie MathWorks: http://www.mathworks.com/products/parallel-computing/index.html;jsessionid=51c98d178b6b121d4022b8a2209e http://www.mathworks.com/help/toolbox/distcomp/bq9u0a2.html http://www-math.mit.edu/~edelman/homepage/papers/parmatlabright.pdf

Vezi și Matlab

Legături externe https://wiki.duke.edu/download/attachments/9504961/Parallel-Programming-with-Matlab.pdf http://sc08.sc-education.org/conference/engineering/mon/parallelmatlab2/ParallelMATLAB.pdf http://people.sc.fsu.edu/~jburkardt/presentations/fdi_matlab_2009.pdf http://www.icam.vt.edu/Computing/vt_2011_parfor.pdf http://wwwx.cs.unc.edu/Research/bass/images/a/a2/Parallel_Computing_in_Matlab_on_BASS.pdf

Categorie:Software Categorie:Matematică Categorie:Informatică