Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

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: 5710
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