multicore cpu unterstützung
Wir veröffentlichen neue Datenschutzrichtlinien um der europäischen DS-GVO, die ab dem 25.Mai 2018 in Kraft tritt, gerecht zu werden. Die neuen Datenschutzrichtlinien können Einfluss auf die Verwendung Ihrer Daten haben. Durch die weitere Nutzung unsere Webseiten stimmen Sie der Verwendung von Cookies, den neuen Datenschutzrichtlinien und den Geschäftsbedingungen zu.
Bitte loggen sie sich ein oder registrieren sie sich.

Einloggen mit Benutzername, Passwort und Sitzungslänge Bitte loggen sie sich ein oder registrieren sie sich.
Erweiterte Suche  

Autor Thema: multicore cpu unterstützung  (Gelesen 2376 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Reat

  • Kaiser
  • *
  • :
  • Offline Offline
  • Beiträge: 1.137
multicore cpu unterstützung
« am: 10. Februar 2008, 12:24:47 »

moin,
hab gestern mal n bissl nachgedacht......
programme müssennn ja für z.b. den dualcore betrieb geschrieben sein, damit sie ordentlich funktionieren bzw beide kerne nutzen, aber jetzt gibts ja schon 4 kern cpus und was weiß ich nicht alles, für was werden denn jetzt die spiele/ progrmme geschrieben, oder kann man  können die dieprogramme auch so schreiben dass sie jede art von cpu unterstützen? nicht dass man dann so spaß wie ich hat, wenn man cs 1.6 spielt und das programm auf beiden kernen laufen lässt, man wie mit speedhack spielt und das spielen eigentlich unmöglich wird weil man alles einfach so unglaublich schnell macht.....

mfg reat
Gespeichert

jabberwoky

  • Foren Legende
  • **
  • :
  • Offline Offline
  • Beiträge: 1.791
RE: multicore cpu unterstützung
« Antwort #1 am: 11. Februar 2008, 12:41:14 »

programme werden für single-core oder für multi-core geschrieben. demnach ist es egal ob dann 2 bis n cores im rechner stecken und vom programm genutzt werden. eine portierung auf nur zwei kerne macht auch keinen sinn in der heutigen zeit.

das prob mit cs hat m.e. nichts mit den cores zu tun. valve unterstützt derzeit auch nur einen kern. somit kann das programm gar nicht auf zwei kernen laufen. dass alles schneller läuft muss einen anderen grund haben. ich kann mich aber auch täuschen, allerdings hätte so ein verhalten schon längst in cheaterkreisen für furore gesorgt.
Gespeichert
Zitat Dieter Nuhr und mein Motto: Wenn man keine Ahnung hat, einfach mal Fresse halten!

Es genügt nicht, keine Gedanken zu haben. Man muss auch unfähig sein sie auszudrücken.

***************

Board: DFI LANParty UT X58-T3eH8  | CPU: Intel® i7 XEON w3520@4000@1.25v | Kühlung: Wakü | Ram: OCZ 6GB  OCZ3P1600LV2G | VGA: ATI HD4870X2 | HDD: HD WD Raptor 300 GB | NT: Corsair TX850W | OS: XP Prof.+Vista64

<< dp >>

  • DoppelAss
  • *
  • :
  • Offline Offline
  • Beiträge: 144
multicore cpu unterstützung
« Antwort #2 am: 11. Februar 2008, 15:30:23 »

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

@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
Gespeichert

reik

  • Foren Ass
  • *****
  • :
  • Offline Offline
  • Beiträge: 89
multicore cpu unterstützung
« Antwort #3 am: 11. Februar 2008, 15:37:49 »

da hat einer das wort \"plauderecke\" aber echt wörtlich genommen ;)

is nich negativ gemeint.

mfg

jabberwoky

  • Foren Legende
  • **
  • :
  • Offline Offline
  • Beiträge: 1.791
multicore cpu unterstützung
« Antwort #4 am: 11. Februar 2008, 16:47:16 »

Zitat
Original von << dp >>
@jabberwoky: Doch, die Source-Engine unterstützt (IMHO in gepatchter Version) Multi-Core-CPUs.

haste mal einen link oder einen anderen verweis auf diese aussage. danke dir im voraus.  :]
Gespeichert
Zitat Dieter Nuhr und mein Motto: Wenn man keine Ahnung hat, einfach mal Fresse halten!

Es genügt nicht, keine Gedanken zu haben. Man muss auch unfähig sein sie auszudrücken.

***************

Board: DFI LANParty UT X58-T3eH8  | CPU: Intel® i7 XEON w3520@4000@1.25v | Kühlung: Wakü | Ram: OCZ 6GB  OCZ3P1600LV2G | VGA: ATI HD4870X2 | HDD: HD WD Raptor 300 GB | NT: Corsair TX850W | OS: XP Prof.+Vista64

<< dp >>

  • DoppelAss
  • *
  • :
  • Offline Offline
  • Beiträge: 144
multicore cpu unterstützung
« Antwort #5 am: 11. Februar 2008, 17:21:43 »

Jup, hier die Ankündigung und hier gibt es einen etwas älteren Benchmark...

 :winke

@reik:
Joh, und das Forum hat mir einen dicken Strich durch die Rechnung gemacht ;(
Gespeichert

Reat

  • Kaiser
  • *
  • :
  • Offline Offline
  • Beiträge: 1.137
multicore cpu unterstützung
« Antwort #6 am: 11. Februar 2008, 19:05:11 »

achso, also hat die dualcore tauglichkeit nicht direkt was mit der \"programierung\" zu tun sonder einfach nur ob das spiel mehrere prozesse hat......

ja aber wegen counter strike, wenn ich die hlf.exe auf einen kern beschrenke läufts ganz normal, oder liegt es daran, dass das bs immer den kern wechselt auf dem die exe ausgeführt werden soll und es somit zu diesem fehler kommt......

achja und ich dnek nciht, dass das in einem cheaterforum vorkommt, das ist so etrem schnell, dass man fallschaden bekommt wenn man gegen ne wand läuft, oder was das fürn schaden ist, jedenfalls ist es unmöglich so zu spielen =)
Gespeichert

jabberwoky

  • Foren Legende
  • **
  • :
  • Offline Offline
  • Beiträge: 1.791
multicore cpu unterstützung
« Antwort #7 am: 11. Februar 2008, 20:05:20 »

Zitat
Original von << dp >>
Jup, hier die Ankündigung und hier gibt es einen etwas älteren Benchmark...

da steht nirgendwo was, daß das bereits produktiv ist. wenn ich das alles schon hätte was valve mal angekündigt hat, dann............

meines wissens ist das nie freigschaltet worden. sprich die hl-engine läuft seit jahr und tag als single-core-applikation.
Gespeichert
Zitat Dieter Nuhr und mein Motto: Wenn man keine Ahnung hat, einfach mal Fresse halten!

Es genügt nicht, keine Gedanken zu haben. Man muss auch unfähig sein sie auszudrücken.

***************

Board: DFI LANParty UT X58-T3eH8  | CPU: Intel® i7 XEON w3520@4000@1.25v | Kühlung: Wakü | Ram: OCZ 6GB  OCZ3P1600LV2G | VGA: ATI HD4870X2 | HDD: HD WD Raptor 300 GB | NT: Corsair TX850W | OS: XP Prof.+Vista64

<< dp >>

  • DoppelAss
  • *
  • :
  • Offline Offline
  • Beiträge: 144
multicore cpu unterstützung
« Antwort #8 am: 11. Februar 2008, 20:38:11 »

... naja, laut den Ankündigungen soll der Multi-Core-Support ab der \"Episode 2\", die seit Weihnachten letzten Jahres erhältich ist, verfügbar sein. Laut einigen Forenberichten benutzt die Source-Engine immer noch nur einen Kern. Allerdings gehört die Source-Engine zu den wenigen Grafik-Engines, die sehr gut auf verschiedenen Systemen skaliert. Daher finde ich es gar nicht mal so schlimm, dass sie nur einen Kern verwendet. Mir tun nur alle Kinder (und deren Eltern) leid, die sich voller Vorfreude \'nen Quad-Core gekauft haben. Ich kann mir ein Lachen nicht verkneifen *kicher* Momentan unterstützen nur sehr wenige Spiele (Crysis, Supreme Commander,  UT3, Lost Planet *glaub*) mehrere Kerne. Der Rest läuft ganz klassisch auf einem Kern. An der Synchronisation werden sich die Entwickler noch einige Zeit die Zähne ausbeißen...
Gespeichert