Seite 1 von 2

Dual-Core-Taktfreq.?

Verfasst: 03.06.2006 13:29
von Jilocasin
Hi!
Mich würde es nur mal interessieren, ob ein "Dual-Core" Prozessor genau doppelt so schnell ist wie ein einfacher...
Wer hat da Ahnung? /:->

Verfasst: 03.06.2006 13:53
von manunidi
Theoretisch ja, praktisch nein!!!

Du spürst die Performance nur, wenn du z.b. spielt, und gleichzeitig video enkodierst!! Dann erledigt ein prozessor das spielen, der andere das encodieren!! Du kannst im taskmanager die verschiedenen Prozessoren zu den verschiedenen tasks zuordnen!

Verfasst: 03.06.2006 13:56
von Jilocasin
Wenn ich dess richtig verstanne hab, kann also ein Prozess immer nur einem Prozessor zugeordnet werden. Daher können sie sich also "viel Arbeit" teilen, aber nicht gemeinsam einen Baum fällen? :lol: :lol: /:->

Verfasst: 08.08.2006 15:38
von Tafkadasom2k5
Jilocasin hat geschrieben:...aber nicht gemeinsam einen Baum fällen? :lol: :lol: /:->
Das kommt auf das Programm an.
Eine normale AUfgabe können die Beiden sich nicht teilen, ABER:

Nehmen wir an, du nutzt WinAPI für irgendetwas und die WinAPI ist schon auf D-Core optimiert. Du willst jetzt einen Sound abspielen, der vorher aber irgendwie dekodiert werden muss.

Die WinAPI (oder jedes andere Programm, was so geschrieben wurde) öffnet dann 2 Threads: Einen zum Encodieren während der Andere die Soundhardware vorbereitet.
So ergänzen sich die Aufgaben (das war jetzt ein banales Beispiel, aber irgendwie muss ich es ja veranschaulichen.)

So kann man auch Spiele beschleunigen, indem die Spielehersteller die "Funkeneffekte" oder ähnlichen Krimskrams nur auf einen Core legen, während der andere die ganze Zeit an der KI werkelt. Wenn man davon ausgehen könnte, dass ALLE Menschen D-Core hätten, so würden schon viele Spiele darauf optimiert sein, also "ihre Last ausgleichen" und somit Luft für noch mehr Details und KI machen.

Auch Programme, die in den richtigen Prozeduren Threads starten werden damit erheblich schneller, weil z.B. der Datensatz durch einen Core gejagt wird, während der Dialog vom anderen Core gemacht wird.
Wenn ich das richtig weiß, so legt sogar schon Windows XP diverse Prozesse nur auf einen der beiden Kerne und der Andere bleibt für Anwendungen dafür freier.

Ich hoffe, ich konnte dir das Prinzio ein wenig verdeutlichen.

Gr33tz
Tafkadasom2k5

Verfasst: 08.08.2006 19:09
von Proton
Grundsätzlich kann der User nicht bestimmen, welcherm Prozessor welche Aufgabe
zukommt (es sei denn, in den unergründlichen Tiefen der API's gibt es einen ganz
versteckten Prozess). Das verwaltet das BS ganz alleine. Für XP gibt es seit
einiger Zeit einen Patch, der die MultiProzessor-Auslastung besser verwaltet.

ich habe einen Intel DualCore T2400(*). Die Systemauslastung (beide Kerne werden
angezeigt) liegt bei ca.40 laufenden (Hintergrund-)Prozessen schön gleichmässig
bei ca.0-1%. Schätzungsweise werden 20 Prozesse von Core 1, und 20 Prozesse von
Core 2 bearbeitet.

Starte ich nun eine Anwendung, steigt die Belastung bei einem Core (im extremfall
auf 100%) an, bei dem anderen nicht (bzw. merkt man bei dem 2.Core ein
gelegentliches pulsieren, was auf ausgelagerte Threads hindeutet).

Starte ich nun gleichzeitig noch "Battlefield Vietnam" mit 64 Bots, läuft BF auf
dem Core 2 unbeeindruckt von der Belastung auf Core 1 mit voller Power.

Fazit: DualCore bringt doppelte Leistung wenn paralleles arbeiten möglich ist.

Damit Programme (z.B. mit Purebasic geschrieben) in den Genuss der parallelen
Verarbeitung kommen können, muss man viel mit Threads arbeiten (fire and forget).
Der Rest macht Windows.


(*) Hies der Kern des Terminators nicht "T5000" von Cybersystems ? Mann oh Mann,
wenn das mal gut geht :mrgreen:

Verfasst: 08.08.2006 20:26
von Jilocasin
dann sag ich mal hut-ab <)
wenn die dual-cores in zukunft logischerweise noch besser werden... oho
respekt 8)

Verfasst: 08.08.2006 20:37
von Proton
wenn die dual-cores in zukunft logischerweise noch besser werden

Was mit 2 Cores geht, geht auch mit 4 oder 8 oder was weiss ich . Hier
wird vermutlich in die gleiche Richtung gegangen, wie mit den GPU's
(>Pipelines) auf den Grafikkarten. :)

Verfasst: 09.08.2006 08:09
von Leonhard
Ich würd Spiele nicht für Dual-Core optimieren. Ein Spiel ist normalerweise nicht Prozessorendlastend weil es immer eine endlosschleife bis zum Spielende durchläuft. Was das optimieren bringt ist nur schnelligkeit im Spiel und wenn man ein zweites Programm startet ist dies nicht so schnell wie normal da beide Kernel schon vom Spiel besetzt sind.

Glaub ich, das das so funktioniert.

Verfasst: 09.08.2006 15:05
von Tafkadasom2k5
Ja, da hast du soweit schon Recht, aber das ist doch heute auch schon so.
Wenn ich spielen will, will ich nicht nebenbei einen VIrenscanner fahren, sondern das Spiel genießen.
Und war so realistisch wie möglich.

Wenn er da mit 2 Cores logischerweise besser auskommt, dann würde ich auch beide nutzen, alleine der Möglichkeiten der Programmierer wegen...
Was die da alles rausholen könnten...

Beim Spielen will ich eben nicht noch nebenbei irgendwas großes kompilieren oder so.

Gr33tz
Tafkadasom2k5

Verfasst: 09.08.2006 18:15
von Zaphod
Einzelne Programme können von mehreren CPU-Kernen profitieren, wenn sie entsprechend geschrieben sind. Das gilt auch für einige Spiele (zb Quake 1,2,3, Doom 3).
Wenn ein Programm jedoch nicht mit multithreaded geschrieben wurde (wafür es gute gründe gibt - eine anwendung multithreaded zu schreiben ist aufwändiger) dann profitiert es nur dahingehend, dass mehrere Programme gleichzeitig besser laufen.

Es ist leider nicht so, dass Programme von immer mehr prozessoren immer weiter profitieren können. Wieso das so ist kann man in erfahrung bringen, wenn man sich über "Amdahls Gesetz" informiert.