Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 18. 11. 2019 21:53 — Editoval GregoryMensonHmm3 (18. 11. 2019 21:56)

GregoryMensonHmm3
Příspěvky: 28
Reputace:   
 

Parallel.For

Dobrý den,
zkouším dělat jednoduché věci s Parallel.For, jelikož výpis s příkazem for je extrémně pomalý.

Pokud chci naprogramovat něco specifického, jako je " a*a + b*b = c*c ", tak si dopomůžu podmínkama jako b>a
viz. //forum.matweb.cz/upload3/img/2019-11/09554_parallel.jpg

Ale když se snažím udělat výpis všech kombinací všech čísel od 1 do MNOU zadaného čísla, tak se to seřazuje silně podivně. Nevím jestli to tak má být, nebo jestli mi něco uniká.
//forum.matweb.cz/upload3/img/2019-11/10324_Parallel%2Brandom.jpg

Výsledky jsou náhodně rozházené, jednou je to tak, příště je to onak.
//forum.matweb.cz/upload3/img/2019-11/10369_v%25C3%25BDsledky.jpg

LOGICKY by se mělo prvně počítat "g", pak "f" a pak "h." Nebo mi něčo uniká? Takhle by to mělo fungovat s příkazem "for"
//forum.matweb.cz/upload3/img/2019-11/10538_for.jpg

Tady se první počítá "d", pak "b" a pak "a"



Za každou radu a připomínku budu velmi vděčný. Díky

Offline

 

#2 18. 11. 2019 22:29 — Editoval edison (18. 11. 2019 22:30)

edison
Příspěvky: 2622
Reputace:   47 
 

Re: Parallel.For

Když těch paralel vložíš víc do sebe, tak se to pokouší paralelizovat na všech úrovních a tomu odpovídá pořadí výsledků: Jak to zrovna systému vyjde:-)

Nejlépe to použít jen na jedné úrovni.

Offline

 

#3 19. 11. 2019 00:34

edison
Příspěvky: 2622
Reputace:   47 
 

Re: Parallel.For

A samozřejmě, i když se to udělá na jedné úrovni, bude to rozházené, ale ne tolik.

Nejlíp to asi udělat na nejvyšší úrovni, pak bude nejméně režie s rozházením na jednotlivá jádra. Tak jak to máš, by mě nepřekvapilo, kdyby to bylo pomalejší, než když to napíšeš klasicky.

V každém případě použití paralelizace povede k zmatkům v pořadí. A běda když budeš chtít break, nebo něco takového. Pak se může stát, že se smyčka zastaví, přestože se neprovedly všechny věci, které měly proběhnout před breakem.

Offline

 

#4 19. 11. 2019 08:14

Stýv
Vrchní cenzor
Příspěvky: 5693
Reputace:   215 
Web
 

Re: Parallel.For

Já bych jenom podotknul, že paralelismus není lék na neefektivní algoritmus.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson