Ich finde das schon witzig: Immer wenn irgendwo ein neuer CPU auftaucht der in irgend einer Form "mehr Kerne" hat schauen alle auf und ein Teil sagt dann: "Es gibt kaum Software die gerade mal meine vier Kerne nutzt - was soll der Unsinn?".
Schaut doch mal über den Tellerrand - es gibt auch noch andere Anwendungen als Spiele und Office Programme. Und Jeder Zocker hat schon einen Multikern Chip in seinem Rechner: die Grafikkarte. Die haben schon so etwas wie 100+ CPUs. Je nach Betrachtungsweise. Aber mal davon abgesehen - man kann ohne Probleme schon heute 192 Kerne CPUs kaufen.
Hier etwa. Imho ist der Clearspeed Kram von IBM bin aber nicht 100 % sicher. Es gibt doch von IBM jetzt neue Cell oder Power CPUs mit bis zu 12 Kernen, oder? Da war doch was...
Warum macht man sowas, wozu braucht man das?
- Wissenschaftliche Anwendungen
- Simulationen
- Optimierungsaufgaben
- Finanzsoftware
Ich habe an der Uni letztes Jahr für ein Labor gearbeitet, habe nur Messungen gemacht, Rohdaten gesammelt und dann Modelle dazu entwickelt. Wir hatten 4x Sun Server mit je 8 Kernen (Xeons 3.2 Ghz, ganz net) und noch "ältere" Server (naja sie waren keine zwei Jahre alt).
Ich habe damit meine Modelle durchgerechnet und geschaut ob die Modelle die selben Ergebnisse bringen wie die Messungen. Meine Rechnungen haben aber immer nur ein paar Sekunden gedauert.
Ein anderes Team hat über Nacht Chipdesigns optimiert. Wenn man eine analoge Schaltung hat kann man mit den Designparametern spielen. Man kennt das ja aus Mathe: wenn man ein bestimmtes Integral lösen möchte gibt es eine analytische Lösung oder eine numerische. Numerisch rechnet man immer wenn man keine Ahung hat oder eine analytische zu aufwändig (ich schreibe das mit ä - basta!) wäre. Ein Computer löst Integrale immer numerisch, auch euer Taschenrechner. Es ist einfacher ein Programm zu schreiben das einfach Lösungen nacheinander "probiert" bzw. die richtige Lösung annähert als ein Programm zu schreiben welches analytisch löst. Wenn das genügend genau geschehen soll kann man aktuelle CPUs schonmal ein paar Stunden oder Tage beschäftigen.
Was wir damit auch getrieben haben: CPU simulationen. Wenn man einen CPU "bauen" will in einem FPGA etwa sollte man ihn simulieren bzw. das was man damit vorhat - in unserem Fall war das ein spezieller DSP. Um zu überprüfen ob das Teil die Operationen die es ausführen soll überhaupt packt muss man das "zu Fuß" durchrechnen... hmm ich hoffe das zumindest einige sich etwas darunter vorstellen können.
Ein weiteres Beispiel ist evtl. FEM. Finite Elemente Methode. Wenn man ausprobieren will wie sich sein Auto im Crashfall verhält aber nicht jedes mal ein neues Auto bauen will und dann sofort zerstören will, zerstört man seine Autos eben virtuell. Dazu braucht man Rechenleistung.
Ein weiterer "guter Kunde" für solche Rechner sind Wetterdienste...
Wenn man intensives Backtesting von irgendwelchen Handelssystemen machen möchte kann viel Rechenleistung auch hilfreich sein - es gibt Leute die automatisierte Handelssysteme entwickeln und mit echtem Geld auf die Finanzmärkte loslassen. Wenn man das macht sollte man das vorher vielleicht mal ausprobieren
Und ganz am Ende: Server. Wenn man einen starken Datenbankserver braucht, oder Webserver oder Mailserver oder DNS Server oder was auch immer... solche Software nutzt ohne weiteres viele viele Kerne.
Nun gut - Ende vom Lied: Multi CPU Systeme sind nicht immer völliger Unsinn und es gibt sehr wohl Software die das nutzt, allerdings zugegebenermaßen kaum für den Endanwender.