To whom it may concern: Wo bleibt der Multicore-Patch?

Wer heute einen Computer kauft, bekommt fast immer ein Gerät, in dessen Prozessor nicht nur ein, sondern zwei oder vier, manchmal sogar sechs oder mehr Kerne – sogenannte „Cores“ -schlummern. Spiele verwenden aber oft nur einen dieser Kerne, sind also „Single Core Applikationen“. Warum ist das so und warum ändert sich da nichts?

In letzter Zeit werde ich oft gefragt: „Wo bleibt der Multicore-Patch für …“. Was hier gefragt wird erschließt sich vielleicht aus den Einleitungsworten. Wann wird das Spiel dahingehend ausgebessert, also gepatcht, um mehrere Kerne zu nutzen und nicht nur einen, also zur „Multi-Core Applikation“ umfunktioniert? Bei vielen Spielen, speziell Wirtschaftssimulationen, würde das nämlich auch Sinn machen. Diese Spiele haben nämlich selten eine sehr aufwendige Graphik, dafür aber komplexe Berechnungen, die in Echtzeit ablaufen. Börsenkurse, Verkehrsstaus, Computergegner und vieles mehr. Mehr Kerne würde da bedeuten: Mehr Möglichkeiten, größere Karten und Welten, mehr Gegner, größere Städte und so fort.

Meine Antwort auf die Frage „Wo bleibt der Patch?“ ist in den meisten Fällen relativ einfach: „Vermutlich nie“.

Um zu verstehen, dass es nicht genügt ein paar Schalter in der Software umzulegen, sprich ein paar Zeilen im Quellcode zu verändern, muss man kein Programmierer sein. Wenn ich Freunden, die den Computer als reine Nutzer kennen, erklären will, warum es so schwer ist „das einfach umzustellen“, nutze ich gerne folgendes Beispiel:


Stell Dir vor, Du musst alleine etwas zusammenbauen, z.B. ein Möbelstück und das dauert 1 Stunde. Das hast Du schon sehr oft gemacht und kennst Dich gut aus. Das Werkzeug ist vorhanden, Du hast genug Platz und die Abläufe, also wie ist die Reihenfolge, sind klar: Schraube, Brett, Regal, Rückwand, Türen und so weiter.

Eines Tages aber beschließt Du: Es soll in 15 Minuten erledigt sein statt in einer Stunde und Du lädst Dir 3 Freunde ein, um die Arbeit zu teilen. Ihr stellt fest: So einfach ist die Sache plötzlich gar nicht mehr – ihr müsst euch das Werkzeug teilen, das nicht 4 mal, sondern 1 mal vorhanden ist, ihr braucht auch mehr Platz und bei den Abläufen kommt alles durcheinander:  Zum Beispiel gehen die Regale nicht mehr in den Kasten, weil jemand die Türen schon angeschraubt hat.

Und nächstes Mal machst Du es doch wieder alleine. Dauert länger, ist aber einfacher.


Um das jetzt auf die Welt der Prozessoren umzumünzen: Die einzelnen Kerne müssen wie im Beispiel oben wissen, wer sich gerade um was kümmert, sich Werkzeuge bzw. Ressourcen wie Speicher und Graphikkarte teilen und wenn ein Kern auf den anderen wartet, kann die gewonnen Zeit schnell wieder verloren gehen. Es ist sehr schwer, ein optimales Konzept zu erstellen, ohne vorher zu wissen wie viel „Freunde mithelfen”.

Es ist natürlich nicht unmöglich, für Multicore zu programmieren. Aber es ist ein komplexes Thema und erfordert ganz andere Abläufe und Strukturen. Software, wie eben ein Spiel, muss dafür komplett neu geschrieben werden, darum wird es fast nie den ersehnten „Multicore-Patch“ geben.


von tomdotio – aus der Reihe “to whom it may concern”


tomdotio ist im Privatleben bekennender Geek und Simulations-Gamer und umgibt sich beruflich mit allerlei Hard- und Software.
HomepageYoutubeTwitter