Was bedeutet Single-Core- und Multi-Core-Optimierung?

4 Antworten

Das heißt das die anwendungen die meißte last auf einen oder vielleicht 2 kerne schieben. Also laufen die anwendungen besser auf prozessoren mit wenigen kernen aber höherem takt, aber es gibt auch anwendungen(wie etwa rendering) die multi core optimiert sind, also sehr viel mehr mit der anzahl der kerne skalieren.

Man optimiert die spiele nicht bewusst richtung single core. Das passiert weil man bei den berechnungen die so gemacht werden(wie etwa physik berechnungen) auf die reihenfolge achten muss, und nicht einfach alles gleichzeitig machen kann, sondern es muss halt nacheinander passieren. Also quasi der unterschied von parallel und in serie.

Wenn du dir nun vorstellst wie berechnet wird ob du den gegner getroffen hast. Erst muss der cpu ja die richtung berechnen, dann muss berechnet werden ob die flugbahn denn nun auf dem gegner liegt und dann muss der schaden berechnet werden. Da ist halt die reihenfolge in der die dinge passieren sehr wichtig.

Es ist meißt das ziel die last der spiele auf möglichst viele kerne zu verteilen, aber das ist nicht einfach zu schaffen. Die spiele werden halt auch immer eher auf wenige kerne skalieren weil es halt auf die reihenfolge ankommt.

Die meißten berechnungen bei denen es nicht auf die reihenfolge angkommt(AA, partikel, schatten, reflektionen...) werden ja heutzutage schon von der grafikkarte übernommen. Grafikkarten sind im prinzip nichts anderes als cpu's, haben allerdings tausende von kernen(oder zumindest hunderte bei den low end modellen).

Jedes Spiel hat zumindest einen Haupt Thread als Entwickler muss/kann man sich fragen, welche Berechnungen parallel ausgelagert werden.

z.b. wie das Gewand auf Wetter Effekte reagiert, das könnte unabhängig vom "gameplay" berechnet werden so kann man den hauptthread entlasten.

Andere Sachen warten nur auf einen Trigger und können dann seperat berechnet werden z.b. Zerstörbare Umgebung.

Wie jort93 richtig schreibt kann man nicht alles Parallelisieren, aber schon einiges.

Der hauptthread übernimmt trotzdem die meiste Arbeit, und da hapert es denn an den cpu mit vielen Kernen und schlechter Single Thread Performance wie die AMD FX Reihe.

GTA V z.b. kann sehr viel auf andere Kerne auslagern (KI, Verkehr, Personen, wetter, ect) und tut es auch, da laufen 4 Kerner praktisch auf voll Last.

Früher gab es keine multicore prozessoren, deswegen waren die spiele auf einen rechenkern ausgelegt. Seit etwa 2006 gibt es prozessoren mit mehreren kernen und seit dem wird versucht, die rechenlast auf mehrere kerne aufzuteilen, falls verfügbar. Da es so gut wie keine singlecore prozessoren mehr gibt, wird man eigentlich kein halbwegs aufwändiges spiel mehr finden, das nur auf einem kern läuft

MartinusDerNerd  16.02.2018, 19:43

Ich hatte mir 2005 einen Pentium 4 (3,2GHz) mit Hyperthreading gekauft.

Der Prozessor war kein Zweikerner, konnte aber Berrechungen zweigleisig ausführen (2 Threats). Dadurch lief vieles viel flüssiger.

Das war ein enormer Unterschied zum Pentium 4 ohne Hyperthreading.

Allerdings verbrauchten diese Prozessoren mit Hyperthreading deutlich mehr Energie und wurden daher auch wärmer als die Modelle ohne.

Gruss,

Martin

1

Na, das wäre ja schrecklich, wenn spiele nur Single Core optimiert wären.

"Core" = Kern, es geht hierbei um Prozessorkerne. (Dual Core, Quad Core etc.)

Pro Kern wird eine Aufgabe ("Threat" )erledigt.(Ausnahme ist Multithreading, anderes Thema) Mehrere Kerne können also Mehrere Aufgaben gleichzeitig erledigen.

Damit dies aber auch geschehen kann, muss eine Software (z.b. ein Spiel) auch so programmiert sein, dass verschiedene Aufgaben getrennt auf Prozessorkerne zugewisen werden können.

Dann wäre sie Multicore-Optimiert.

So etwas geschieht meisst etwas später im Produktionsprozess für ein Spiel...da heutzutage aber seeeehr viel "Early Access" und im "Alpha Stadium" released wird, fehlt diese Optimierung häufig noch...was sehr ärgerlich ist, da die Prozessor-kernzahl etwas ist, für das man durchaus viel geld zahlt und auch einen enormen Leistungsunterschied ausmacht.