Page 1 of 1

Multi Core Programmering

Posted: 11 Sep 2009, 14:29
by ZeroHero
Jeg har set forskellige renderer benytte sig af Multi Core Processing. Jeg sidder med en AMD Phenom Quad-Core og kunne godt tænke mig at få min egen raytracer til at benytte alle fire processor når den renderer. Er der nogen der kan guide mig igang eller har links til artikler der behandler emnet?

Mange tak

Søren

Re: Multi Core Programmering

Posted: 11 Sep 2009, 14:33
by ZeroHero
Nå ja, glemte lige at nævne at jeg bruger C++ :)

Re: Multi Core Programmering

Posted: 11 Sep 2009, 14:39
by ZeroHero
Hvis jeg laver en multi threaded renderer vil Windows automatisk allokere mine threads til de tilgægelige CPU eller skal jeg manuelt fortælle Windows hvilke CPU jeg vil anvende for en angivet thread? Hvis så hvordan finder man ud af hvormange CPU'er der er tilgængelig på dit system?

Re: Multi Core Programmering

Posted: 16 Sep 2009, 11:42
by Zee
Du skal bare sørge for at bruge f.eks. 4 tråde til at eksekvere de tunge udregningsopgaver, så skulle Windows meget gerne selv sørge for at fordele trådene på de forskellige kerner.

Re: Multi Core Programmering

Posted: 16 Sep 2009, 20:25
by Gorm
Hvis man er interesseret i multi-core programmering, synes jeg lige ville være så fræk at plugge denne tråd.

Re: Multi Core Programmering

Posted: 17 Sep 2009, 07:33
by Bergur
Først vil jeg anbefale at du kigger på multithreading og som minimum forstå concurrency, ellers risikerer du bare noget hø på den front.
Når du siger multi core er det som nævnt ovenfor, at du laver nogle tråde så bliver de fordelt.
Men der er ingen garanti at to tråde eksekveres på hver sin kerne.
Man kan sætte processor affinity hvor du tvinger en tråd at eksekvere på en given kærne. Dette skal man dog passe på med og du mister dynamikken ved at styresystemet kan fordele belastningen efter behov.
Så overvej lige hvor nødvændigt det er før du går over åen efter vand.

Re: Multi Core Programmering

Posted: 17 Sep 2009, 13:30
by Zinck
Vi brugte OpenMP på vores speciale om Multithreaded Game Engines. Den er dog ikke specifik til rendering, men er lavet til at multithreade matamatiske funktioner.

Den er med i Visual Studio 2005+ hvis du er M$'er :)

Re: Multi Core Programmering

Posted: 05 Oct 2009, 18:28
by ZeroHero
Jeg vil gerne i gang med OpenMP. Har læst om den og den ser meget spændende ud. Jeg har dog kun MS Visual Studio 2003. Nogen der ved hvordan jeg kan få OpenMP til at virke med version VC++ 2003?

Re: Multi Core Programmering

Posted: 12 Oct 2009, 16:25
by Zinck
Vi endte med at opgradere til 2005. Vi startede også med 2003 og der er nogle lib's men de virker ikke ret godt.

Find en ven med MSDNAA adgang :)

Morten