MATLAB R2007a a paralelní výpočty

Jan Houska Houska at humusoft.cz
Thu Mar 15 10:19:46 CET 2007


Dobrý den,


v nové verzi MATLABu R2007a, která byla nedávno uvolněna, je jednou z 
nových vlastností možnost urychlení výpočtu jeho paralelizací na 
počítačích s více výpočetními jádry. Vzhledem k tomu, že podobné počítače 
jsou stále dostupnější, urychlení výpočtu je poměrně výrazné, a použití 
této vlastnosti poměrně snadné, doufám, že informace o této vlastnosti 
budou užitečné.

Veškeré testy byly prováděny na čtyřjádrové pracovní stanici Humusoft 
HeavyHorse <http://www.humusoft.cz/heavyhorse/indexcz.htm>, ale lze 
očekávat, že výsledky na jiných počítačích budou podobné úměrně počtu 
výpočetních jader.

Paralelizace algoritmů je v MATLABu R2007a implementována na dvou 
úrovních. První z nich jsou nově dodávané základní matematické knihovny s 
podporou více jader. K využití této vlastnosti stačí pouze základní 
MATLAB, žádný dodatečný toolbox není potřeba. Není ani nutné nijak 
upravovat existující programy, zrychlení se projeví automaticky.

Podpora více jader v základních matematických knihovnách je po 
nainstalování nové verze MATLABu vypnuta. Je třeba ji nejprve zapnout v 
menu File->Preferences, položce General->Multithreading. Je vhodné zvolit 
automatickou volbu počtu vláken. Po zvolení příslušného nastavení není 
potřeba restartovat MATLAB. Zvýšení výkonu je možné ihned otestovat 
pomocí demostračního souboru "multithreadedcomputations", který zobrazí 
relativní zvýšení výkonu pro jednotlivé elementární maticové operace.

Bohužel soubor "multithreadedcomputations" byl navržen pouze pro počítače 
s dvěma výpočetními jádry. Máte-li stroj s více jádry, je možné použít 
mírně upravenou verzi tohoto souboru, který je v příloze. S jeho pomocí 
jsem naměřil 3.5 až 4-násobné zrychlení pro operace prováděné po prvcích 
(násobení, sinus, odmocnina), a asi dvojnásobné pro operace na celé 
matici (LU faktorizace, QR dekompozice).

Pro operační systém Linux a procesory AMD je k využití paralelních 
matematických knihoven ještě nutné pozměnit soubor "blas.spec" v adresáři 
matlab/bin/glnx86 nebo matlab/bin/glnxa64 a restartovat MATLAB. Příklad 
pozměněného souboru je také v příloze. Pro operační systém Windows toto 
není potřeba a není vhodné do souboru "blas.spec" zasahovat.


Druhou úrovní implementace paralelních algoritmů je Distributed Computing 
Toolbox (DCT). Ten v nové verzi umožňuje běh až čtyř paralelních procesů 
na jednom počítači (nikoliv v síti počítačů) bez nutnosti licence MATLAB 
Distributed Computing Engine (MDCE). To výrazně zjednodušuje a instalaci, 
protože DCT se instaluje jako každý jiný toolbox a nepotřebuje další 
nastavení - nemluvě o úspoře peněz za licenci MDCE. Po instalaci DCT 
stačí pouze přejít do paralelního režimu příkazem "pmode start" a je 
možné začít vyvíjet paralelní algoritmy. Ty jsou potom beze změny 
přenosné do prostředí MDCE, kdyby výpočetní výkon čtyř jader nestačil. 
Nové okno "Parallel Command Window" umožňuje snadno sledovat průběh 
výpočtu všech čtyř paralelních procesů zároveň.


Doufám, že výše uvedené informace pomůžou k tomu, abyste z nového MATLABu 
vhodným nastavením dostali co největší výpočetní výkon.


Zdraví

Jan Houška

--
Jan Houska                                           HUMUSOFT s.r.o.
houska at humusoft.com                                  Pobrezni 20
http://www.humusoft.com                              186 00 Praha 8
tel: ++ 420 284 011 730                              Czech Republic
fax: ++ 420 284 011 740


-------------- next part --------------
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any other MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  blas.spec
     Date:  15 Mar 2007, 9:31
     Size:  205 bytes.
     Type:  Text
-------------- next part --------------
A non-text attachment was scrubbed...
Name: blas.spec
Type: application/octet-stream
Size: 204 bytes
Desc: not available
Url : http://listserv.vscht.cz/pipermail/csmug/attachments/20070315/09a1640e/blas.obj
-------------- next part --------------
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any other MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.

   ---- File information -----------
     File:  multithreadedcomputations.m
     Date:  15 Mar 2007, 9:32
     Size:  5247 bytes.
     Type:  Text
-------------- next part --------------
A non-text attachment was scrubbed...
Name: multithreadedcomputations.m
Type: application/octet-stream
Size: 5247 bytes
Desc: not available
Url : http://listserv.vscht.cz/pipermail/csmug/attachments/20070315/09a1640e/multithreadedcomputations.obj


More information about the CsMUG mailing list