Hm, ich hatte gestern so einen schönen Text geschrieben und dann war der Server wieder weg

@jabberwoky: Doch, die Source-Engine unterstützt (IMHO in gepatchter Version) Multi-Core-CPUs.
Hier als Nachtrag:
Man schreibt Programme nicht für die Anzahl vorhandener CPU-Kerne

In der Regel versucht man, einzelne Programmteile in
Threads (einfach ausgedrückt Prozesse) aufzuteilen. Das Betriebssystem (oder man selbst) verteilt diese Prozesse dann auf die vorhandenen CPU-Kerne. Je mehr Programmteile in einzelne Prozesse ausgelagert werden, umso schneller kann ein Programm arbeiten. Wobei die Betonung auf \"kann\" liegt. Denn viele Prozesse müssen nicht unbedingt ein Garant für ein schnelles Programm sein. Das hängt letztendlich davon ab, wie gut die Entwickler die Prozesse aufeinander abgestimmt haben. Nehmen wir als Beispiel mal einen Texteditor, der in einem Prozess läuft. Schreibst du eine große Textdatei (sagen wir mal 1 Gigabyte), dann hängt der Editor in der Zeit, in der du diese Datei speichern möchtest. Denn der einzige Prozess des Editors ist mit Speichern beschäftigt. Windows quitiert sowas oft mit \"Programmname (keine Rückmeldung)\". Wäre der Editor für mehrere Prozesse ausgelegt, könnte er mit einem Prozess die Datei speichern (hat der Rechner mehrere CPU-Kerne, wäre einer davon wahrscheinlich komplett ausgelastet), mit einem anderen Prozess könnte man mit dem Editor ohne Probleme weiterarbeiten. Was bei solchen simplen Programmen noch recht einfach ist, ist bei Spielen aber sehr kompliziert. Denn Spiele sind zeitkritische Anwendungen. Soll ein Spiel auf mehrere Prozesse aufgeteilt werden, so müssen diese untereinander synchronisiert werden. Ansonsten passieren solche Sachen wie bei dir mit Counter-Strike (der Fehler bei dir hat auch etwas mit Synchronisation zu tun, glaube aber weniger, dass es an den Prozessen liegt). Man kann nicht einfach hingehen und sagen, der eine Kern versorgt die Grafikkarte mit Daten, der andere berechnet die KI, der dritte Kern berechnet Flugbahnen von Geschossen und der Vierte kümmert sich um die Netzwerkkommunikation. Natürlich kann man das so einfach sagen, nur müssen die Prozesse aufeinander abgestimmt sein - sie müssen miteinaner kommunizieren. Zum Beispiel wird die Netzwerkkommunikation immer schneller sein als die Grafikberechnung bzw. muss die Netzwerkkommunikation erst mal die Positionen und Aktionen der anderen Mitspieler feststellen, bevor der Grafikprozess die Grafikkarte mit Daten füttern kann und das aktuelle Geschehen auf den Bildschirm bringt. Aber macht es dann noch Sinn, einen Prozess auszulagern, wenn er ohnehin auf einen anderen Prozess warten muss? Nicht immer. In dem Beispiel könnte man auch die Netzwerkkommunikation mit der Grafikausgabe in einen Prozess legen und es würde wahrscheinlich keine Geschwindigkeitseinbußen geben. Warum auch? Alte Spiele liefen und laufen auch in einem Prozess ohne Probleme...
Wie du siehst, kann man zwar Programme für mehrere CPU-Kerne optimieren, aber immer sinnvoll ist es nicht bzw. gibt es speziell bei Spielen viele Probleme, da deren Prozesse in der Regel nacheinander berechnet werden wollen und nicht gleichzeitig. Aber um deine eigentliche Frage zu beantworten: Ja, Programme werden, wenn es sich lohnt, in mehrere Prozesse aufgeteilt. Die Anzahl der CPU-Kerne spielt für sie keine Rolle. Denn auch Single-Core-CPUs können mehrere Prozesse gleichzeitigt berechnen - wenn auch nicht so effektiv wie eine Multi-Core-CPU. Verwenden Programme mehrere Prozesse, so ist das Betriebssystem bemüht, diese gleichmäßig auf die CPU-Kerne aufzuteilen. Das Programm kann schneller werden, muss es aber nicht.
BTW momentan sind die Quad-Cores ja schwer im kommen. IMHO macht es zurzeit keinen Sinn, so eine CPU für einen reinen Spiele-PC zu kaufen (siehe zum Beispiel Intels Skull-Trail-System). Sicherlich sind mehrere Kerne bei mehreren Grafikkarten nicht schlecht. Nur müssen die Spiele dafür optimiert werden - das wäre übrigens der nächste Punkt: Spiele müssen nicht nur für mehrere CPU-Kerne optimiert werden, sondern auch für mehrere GPU-Kerne. Sind sie das nicht, dann werden sie trotz mehrerer GPUs sogar langsamer als mit einer GPU. Und da momentan kaum Spiele für solche Rechner optimiert wurden, macht es fast keinen Sinn, solche Hardware anzuschaffen. Alleine schon wegen der Stromkosten, ist ein schnöder Dual-Core-Rechner mit einer simplen Single-Core-Grafikkarte absolut ausreichend. Es gibt ja eh nur ein Spiel (Crysis), was so einen Rechner voll auslastet. Wobei das IMHO eher auf die schlechte Programmierung als auf die \"schlechte\" Hardware zurückzuführen ist. UT schafft es ja auch immer wieder, selbst auf älteren Rechnern gut auszusehen.
Aber jetzt komme ich vom Thema ab...
:winke