Att rendrerar grafik är "embarrassingly parallel" då varje pixel på skärmen kan beräknas utan att det påverkar beräkningen för något annat pixel. Men detta gör ju på en GPU idag och att detta problem är "embarrassningly parallel" är anledning till att moderna GeForce/Radeon har så många "stream processorer".
Utföra cyklisk perturbation (t.ex. träd/flaggor som vajar i "vinden") är också något som kan utföras relativt oberoende av varandra, men visst beroende finns. Om toppen på en gren rör sig uppåt så måste ju resten av grenen fortfarande sitta ihop. Så olika objekt kan beräknas oberoende av varandra, men varje objekt (gren, flagga, etc) är beroende.
Nästa steg är AI där varje objekt kan beräknas var för sig under ett kort tag, men då och då måste man ta hänsyn till en större del av värden då det kan påverkar besluten AI:n ska ta. I extremfallet ska denna synkronisering göras många gånger per sekund.
Andra saker är extremt beroende, t.ex. kollisionsdetektering.
Till det kommer att spelmotorer har till relativt nyligen varit helt enkeltrådade och en modern spelmotor är en väldigt stort och komplex programvara så det tar tid att göra dessa multi-CPU vänliga.
Tycker 8 kärnor låter mycket ens för en desktopdator inom de närmaste åren och rätt meningslöst på en bärbar enhet. 8 kärnor som jobbar effektivt kommer betyda närmare 8 gånger så högt tryck på RAM-bussen. RAM-bussen på dagens mobila enheter är MYCKET långsammare än dagens PC och trots det blir RAM-bussen ofta en stor flaskhals redan vid 4 kärnor. Men visst går det att effektivt använda 8 CPU-kärnor bara man har ett problem som till största del kan hållas sig i CPU-cache.
Tittar man runt på lite spel-utvecklar siter, så verkar många sucka lite över att koden ofta skalar någonstans mellan sqrt(N) till log(N) där N är antalet CPU kärnor, inte alls linjärt alltså. Amdahl's lag ger också lite insikt i hur svårt det är att dra nytta av så många som 8 kärnor i ett spel. Låt oss jämföra ett program som är 50%, 75%, 90% och 95% parallel och se hur mycket snabbare det MAXIMALT kan bli på 2, 4 och 8 kärnor S(N)=prestandaökning med N kärnor
50%: S(2)=1.30, S(4)=1.60, S(8)=1.78
75%: S(2)=1.60, S(4)=2.29, S(8)=2.91
90%: S(2)=1.82, S(4)=3.08, S(8)=4.71
95%: S(2)=1.90, S(4)=3.48, S(8)=5.93
Tvivlar på att en spelmotor ens är nära att vara 90% parallel. Amdahl förutsätter också att den parallela delen är oändligt parallel, vilket kanske inte är sant. Man ser här att 2 kärnor är hyfsat enkelt att utnyttja, men redan 4 så blir effektiviteten rätt låg om man programmet inte är fullt parallelserbart till mer än 90%.
Så håller med de "teknikfientliga" kommentarerna här. Känns som det vore bättre att satsa på lägre strömförbrukningen alt. lägga transistorbudgeten på mer cache eller liknande för att få upp prestanda per tråd.