Multi Core Programmering

User avatar
ZeroHero
Level 36 - Tron
Posts: 362
Joined: 21 Jul 2009, 19:03
Location: England
Contact:

Multi Core Programmering

Unread post by ZeroHero » 11 Sep 2009, 14:29

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

User avatar
ZeroHero
Level 36 - Tron
Posts: 362
Joined: 21 Jul 2009, 19:03
Location: England
Contact:

Re: Multi Core Programmering

Unread post by ZeroHero » 11 Sep 2009, 14:33

Nå ja, glemte lige at nævne at jeg bruger C++ :)

User avatar
ZeroHero
Level 36 - Tron
Posts: 362
Joined: 21 Jul 2009, 19:03
Location: England
Contact:

Re: Multi Core Programmering

Unread post by ZeroHero » 11 Sep 2009, 14:39

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?

Zee
Level 22 - Imp
Posts: 229
Joined: 10 Mar 2008, 10:40

Re: Multi Core Programmering

Unread post by Zee » 16 Sep 2009, 11:42

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.

Gorm
Level 24 - Cyber demon
Posts: 243
Joined: 10 Mar 2008, 00:11
Location: London, UK
Contact:

Re: Multi Core Programmering

Unread post by Gorm » 16 Sep 2009, 20:25

Hvis man er interesseret i multi-core programmering, synes jeg lige ville være så fræk at plugge denne tråd.
Gorm - Senior Creative Technologist
Blog
Twitter
Global Game Jam

Bergur
Level 0 - Null
Posts: 1
Joined: 17 Sep 2009, 07:26

Re: Multi Core Programmering

Unread post by Bergur » 17 Sep 2009, 07:33

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.

Zinck
Level 0 - Null
Posts: 3
Joined: 17 Sep 2009, 13:24

Re: Multi Core Programmering

Unread post by Zinck » 17 Sep 2009, 13:30

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

User avatar
ZeroHero
Level 36 - Tron
Posts: 362
Joined: 21 Jul 2009, 19:03
Location: England
Contact:

Re: Multi Core Programmering

Unread post by ZeroHero » 05 Oct 2009, 18:28

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?

Zinck
Level 0 - Null
Posts: 3
Joined: 17 Sep 2009, 13:24

Re: Multi Core Programmering

Unread post by Zinck » 12 Oct 2009, 16:25

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

Post Reply