Dual Core CPUs programmieren
-
Bei Cinema4D (Raytracing-Software) von MAXON kenne ich es so, das man sein Rendering auf Threads aufteilen kann. Dann wird ein Bild in mehreren Threads aufgeteilt, entsprechend kann man bei 2 Threads beobachten, wie das Bild in zwei hälften aufgeteilt wird (obere und untere Hälfte). Ich glaub max. 16 Threads kann man einstellen, so das entsprechend eine Renderfarm mit 16 CPUs ausgelastet werden kann. Wer ein Board mit 2 CPUs hat, stellt dann 2 Threads ein.
Games benutzen wie gesagt bisher keine Threads (man könnte natürlich die Backgroundmusic als Thread ansehen, aber das spielt ja heute eigentlich die Sound-CPU selbst ab). Hyperthreading im P4 war ja nur die Vorbereitung für die Games-Industrie. Intel hat ja auch bei den großen Game-Publishern gefragt, ob diese etwas mit Multicore-CPUs anfangen können (stand mal bei golem.de). Ergebnis: Nö, die sind froh wenn sie die Dualcore-CPUs sinnvoll ausnutzen werden können. Bei Multicore hätten sie noch gar keine Konzepte.
-
@Artchi Besten Dank!
-
es ist viel zu schwierig ein spiele mit mehreren threads zu programmieren.
-
Spieleprogrammmierer schrieb:
es ist viel zu schwierig ein spiele mit mehreren threads zu programmieren.
ne, spieleprogrammierer sind nur zu doof dazu.
-
@net! Sehr witzig!
-
Mit Performancekritisch meinte ich Zeitkritisch, soll heißen, das Ergebnis muss innerhalb von Sekundenbruchteilen da sein.
Spiele multithreaded zu programmieren ist durchaus möglich, z.B. die Physikengine oder KI kann man auslagern.
Die Sachen die im Taskmanager alle angezeigt werden sind zum größten Teil Systemsachen oder sowas wie Virenscanner oä.
Zarniwoop
-
net schrieb:
Spieleprogrammmierer schrieb:
es ist viel zu schwierig ein spiele mit mehreren threads zu programmieren.
ne, spieleprogrammierer sind nur zu doof dazu.
-
Die Sachen die im Taskmanager alle angezeigt werden sind zum größten Teil Systemsachen oder sowas wie Virenscanner oä.
Im Task-Manager kannst du dir Anzeigen lassen wieviele Threads ein Programm am Laufen hat. Einfach die Spalte hinzufügen.
-
Hm, die meisten Programme, die ich jetzt grad im TM hab und die mehrere Threads haben, sind nicht sehr Performancehungrig und machen die meiste Zeit nichts. Sind meistens Systemsachen.
Zarniwoop
-
Spieleprogrammmierer schrieb:
es ist viel zu schwierig ein spiele mit mehreren threads zu programmieren.
Ok, das hört man immer wieder.
Ich gehe mal davon aus, dass du dich da auskennst, also: Warum eigentlich? Warum kann man Spiele nicht sehr parallel gestalten. Man hört immer so eine "semantische" Threadaufteilung, die man da haben möchte: Physik-Thread, KI-Thread usw.! Warum macht man diese Dinge nicht weiterhin sequentiell hintereinander und parallelisiert stattdessen zum Beispiel im KI-Teil selbst. Kann man da bei 10 Computergegnern nicht problemlos 10 Threads draus machen? Im Physik-Bereich sollte Parallelisierung IMHO auch keine große Sache sein. Gibt es Rechenintensive Bereiche, die gar nicht parallelisierbar sind?
-
Bestimmte Algorithmen sind nicht parallelisierbar, aber die meisten größeren Bereiche sollte man schon irgendwie aufteilen können.
-
Artchi schrieb:
@net! Sehr witzig!
du bist mal ganz ruhig. wie ich dich einschätze, benutzt du bestimmt pthreads oder boost::thread oder irgend so'n anderen aufgepfropften kram. da hätt' ich auch keine lust drauf.
-
net schrieb:
Artchi schrieb:
@net! Sehr witzig!
du bist mal ganz ruhig. wie ich dich einschätze, benutzt du bestimmt pthreads oder boost::thread oder irgend so'n anderen aufgepfropften kram. da hätt' ich auch keine lust drauf.
*lol*
-
net schrieb:
Artchi schrieb:
@net! Sehr witzig!
du bist mal ganz ruhig. wie ich dich einschätze, benutzt du bestimmt pthreads oder boost::thread oder irgend so'n anderen aufgepfropften kram. da hätt' ich auch keine lust drauf.
Wie ich Artchi einschätze, ist er äußerst kompetent. Ich gehe davon aus, dass er beim Programmieren weiß, was er macht und sich der Vor- und Nachteile seiner Entscheidungen stets bewußt ist.
-
Gregor@Home schrieb:
net schrieb:
Artchi schrieb:
@net! Sehr witzig!
du bist mal ganz ruhig. wie ich dich einschätze, benutzt du bestimmt pthreads oder boost::thread oder irgend so'n anderen aufgepfropften kram. da hätt' ich auch keine lust drauf.
Wie ich Artchi einschätze, ist er äußerst kompetent. Ich gehe davon aus, dass er beim Programmieren weiß, was er macht und sich der Vor- und Nachteile seiner Entscheidungen stets bewußt ist.
klar, deswegen schlägt er auch std::complex vor, wenn jemand mit großen Zahlen arbeiten will.
-
net panther schrieb:
klar, deswegen schlägt er auch std::complex vor, wenn jemand mit großen Zahlen arbeiten will.
Wo hat er das denn gemacht?
-
-
net panther schrieb:
klar, deswegen schlägt er auch std::complex vor, wenn jemand mit großen Zahlen arbeiten will.
Sorry das ich nicht perfekt bin. Steinigt mich!
-
net schrieb:
Artchi schrieb:
@net! Sehr witzig!
du bist mal ganz ruhig. wie ich dich einschätze, benutzt du bestimmt pthreads oder boost::thread oder irgend so'n anderen aufgepfropften kram. da hätt' ich auch keine lust drauf.
Was hat boost::thread damit zu tun, das ich Spieleprogrammierer nicht für dumm halte? Ich glaube nicht das Firmen wie SEGA (fällt mir spontan ein) sich von dir als unfähige Programmierer beschimpfen lassen müssen.
-
Artchi schrieb:
Ich glaube nicht das Firmen wie SEGA (fällt mir spontan ein) sich von dir als unfähige Programmierer beschimpfen lassen müssen.
die nicht, aber die stopfen sicher nicht alles in eine 'game loop', sondern können mit multithreading umgehen.