Paralelizmus - kedy áno?

Programovacie jazyky, rady, poradňa...
Kvietok
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 30
Registrovaný: 18 apr 2012, 23:32

Paralelizmus - kedy áno?

Príspevok od používateľa Kvietok »

Ahojte,

chcem sa spýtať, kedy je vhodné nahradiť sekvenčné konštrukcie za paralelné a kedy sa to nedá, teda to nepôjde alebo sa to neoplatí?

Predom ďakujem za vaše odpovede. :)
Baseilos
Light Expert
Light Expert
Príspevky: 57
Registrovaný: 01 máj 2011, 2:15

Re: Paralelizmus - kedy áno?

Príspevok od používateľa Baseilos »

Nenapada ma kedy by to nemalo byt vhodne. Kazdopadne pokial uloha ktoru riesis musi byt paralelizovatelna. A samotna paralelizacia nie je vobec jednoducha. Pokial to zle naimplementujes tak to pojde pomaly, alebo v horsom pripade to bude davat nespravne vysledky.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Paralelizmus - kedy áno?

Príspevok od používateľa harrison314 »

Baseilos: To je postoj škôlkara.


Kvietok: dnes je snaha paralelizovat vsetko co sa da, pretoze vykon procesorov a zmensovanie vyrobnej technologie dosahuje uz svoje hranice a dalsie vyrazne zvysovanie vykonu pocitaca sa zacina doshaovat zvysenim poctu jadier na procesore.
Paralelizovat sa nedaju algoritmy, ktorych kazdy nasledujuci krok sa moze vykonat az po dokonceni predchadzajuceho. Ale paralelizaciu nemusis robit nad takymto algoritmom ale zoberies si napriklad pomalsi, ktori sa da aspon ciastocne paralelizovat a v parlelnej verzii je rychlejsi ako najrychlejsi sekvencny.

Takze treba paralelizovat vtedy, ked paralelny algoritmus je rychlejsi ako najrychlejsi sekvencny algoritmus, riesiaci ten isty problem.
Baseilos
Light Expert
Light Expert
Príspevky: 57
Registrovaný: 01 máj 2011, 2:15

Re: Paralelizmus - kedy áno?

Príspevok od používateľa Baseilos »

harrison314 napísal:Baseilos: To je postoj škôlkara.
By ma zaujimalo co je na mojom prispevku skolkarske :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Paralelizmus - kedy áno?

Príspevok od používateľa harrison314 »

Baseilos napísal:
By ma zaujimalo co je na mojom prispevku skolkarske :)
Nic, sory na prvykrat som tvoj prispevok nepochopil spravne :(
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Paralelizmus - kedy áno?

Príspevok od používateľa BX »

Ja mám otázku: Ak by som chcel nejaký výpočet paralelizovať, ako vybrať počet použitých vláken?
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Paralelizmus - kedy áno?

Príspevok od používateľa harrison314 »

BX napísal:Ja mám otázku: Ak by som chcel nejaký výpočet paralelizovať, ako vybrať počet použitých vláken?
Vetcinou podla poctu jadier procesora, prosto kolko jadier tolko vlakien, ale bolo by dobre zohladnit aj pametovu priepustnost, chache pamete, algoritmus ....

Ak chces paralelizovat C/C++ pozri si OpenMP a nemusis sa kaslat z vlaknami a poctom jadier a usetris stovky riadkov kodu.
http://msdn.microsoft.com/en-us/magazine/cc163717.aspx
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Paralelizmus - kedy áno?

Príspevok od používateľa BX »

Mal som na mysli tvorbu aplikácie, ktorá neviem, kde bude bežať. Takže neviem, koľko procesorov a vôbec aký stroj to bude.
A to OpenMP vyzerá dosť pekne :) (Ja mám zatiaľ skúsenosti len s POSIX vláknami, takže v tomto som v podstate amatér. Ale rád sa o tom nechám poučiť : ))
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Paralelizmus - kedy áno?

Príspevok od používateľa harrison314 »

Zistis pocet procesorov a budes rozdelovat ulohy dynamicky. Tu sa neda odpovedat vsoubecne, pretoze kazdu ulohu je potrebne paralelizovat inak.
Ale vetcinou sa to riesi pomocou thead-poolu a fork-join modelu ( na tomto je zalozene OpenMP ).
Nemusis paralelizovat len veci na jednom PC, kludne mozes rozdelit vypocet aj na viac PC na sieti, na to je zas MPI.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Paralelizmus - kedy áno?

Príspevok od používateľa audiotrack »

prípadne využiť cudu a rozšíriť výkon CPU o GPU
Kvietok
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 30
Registrovaný: 18 apr 2012, 23:32

Re: Paralelizmus - kedy áno?

Príspevok od používateľa Kvietok »

Dakujem :)
audiotrack napísal:prípadne využiť cudu a rozšíriť výkon CPU o GPU
Prosim ta, co je to ta cuda a na co sa pouziva? Este som take nepocula... :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Paralelizmus - kedy áno?

Príspevok od používateľa harrison314 »

Kvietok napísal:Dakujem :)


Prosim ta, co je to ta cuda a na co sa pouziva? Este som take nepocula... :)
Spracovanie obrazu,zvuku, vedecke vypocty, fyzika do hier, raytracing,celularne autmaty,fraktaly, rozne simulacie ale ma to svoje obmedzenia. GPU moze mat radovo 254 ( a viac ) jadier.
Tato technyka je pouzitelna iba ak mas problem, kde pocet aritmetckych operacii vyrazne ( myslim ze aspon 100-nasobne) previsuje pocet skokov a pristupov do pamete.

Cuda je obmedzenalen na karty od NVIDIe, alternatyvou je OpenCL.
OpenCL je multyplatformove a nezavisle na HW ( ale sami viete ako to dopadne ked ten isty standard implemntuju rozne spolocnosti :D ).
Je tu este moznost pouzit GLSL alebo CG, ale v tom pripade treba rieseny problem zakodovat ako bitmapu nechat ju transformovat na grafike pomocou tychto jazykov a vyslednu novu bitmapu prekodovat ako vysledok riesenia ( myslim ze Gimp takto riesi niektore efekty ).
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: Paralelizmus - kedy áno?

Príspevok od používateľa javatar »

Taktiez si treba davat pozor na vela "kratkych" vlakien. Teda vlakien ktore budu pocitat minimum a nasledne zaniknu a potom sa zase v istej casti vytvoria atd. Vytvorenie vlakna je totiz pomerne draha zalezitost.
pershing
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2974
Registrovaný: 23 dec 2006, 15:08

Re: Paralelizmus - kedy áno?

Príspevok od používateľa pershing »

len dodam ze staci mat vytvorene vlakna a uspavat ich (blocked stav)
Napísať odpoveď