Frage zu Dual bzw. Quadro Core Prozessoren

GreyPrinceZote

Lt. Commander
Registriert
Aug. 2008
Beiträge
1.919
Hoho,
ich würde gerne wissen wie das mit der Taktfrequenz von den Prozessoren ist. Wenn ich jetzt nen Singel Core hab mit z.B. 2 GHz und nenn Dual Core mit der Angabe 2 GHz. Hat der dann theoretisch (weils ja ehe nie genau so ist) insgesamt die doppelte Taktfrequenz von 4 GHz oder auch nur 2 GHz und die Taktfrequenz ist unabhängig von der Kernanzahl?
 
Wenn ein Porsche 300Km/h schafft. Dann fahren zwei nicht 600km/h
 
Also addiert sich die Leistung nicht ja? Danke schon mal für die Antwort, aber wenn mir jemand etwas genauer, dennoch auf leichterem Niveau, genauer erläutern könnte wie das funktioniert wärs ganz nett.
 
Also, addieren darf man das ganze nicht... Man hat halt zwei Kerne, die im besten Fall zwei Threads mit je 2ghz bearbeiten können. Wenn man nur ein Thread hat, kann halt nur der eine berechnet werden, und der andere Kern läuft im Leerlauf. Wenn man nun ein Thread "aufteilt", geht wieder was für die Parralelisierung drauf... ich hoffe das ist verständlich, ansonsten frag einfach noch mal nach..
 
Okay danke für den link, gucks mir genauer an. Hab mir zwar gedacht, dass das schonmal besprochen wurde... aber da hier so viele threads erstellt werden bei denen fast immer die gleichen wörter vorkommen war ich mir nicht sicher ob ich genau das passende finden würde.

Naja die nächsten Male nehm ich mir dann mehr Zeit dafür :)

Edit:
Hab ich das jetzt richtig verstanden, dass bei einem Quad Core mit 3 GHz jeder einzelne Kern mit 3 GHz taktet und man dadurch, dass es eben 4 gleichzeitig arbeitende Kerne sind eine Leistung von (natürlich programmabhängig etc.) 4 * 3 GHz hat? (Wobei man da jetzt vll die GHz Einheit wegkürzen müsste... hab keine Ahnung wie man solch ne Leistung benennt.)
 
Zuletzt bearbeitet:
HisN schrieb:
Wenn ein Porsche 300Km/h schafft. Dann fahren zwei nicht 600km/h

Doch schaffen sie!
Jeder von ihnen fährt in einer Stunde 300km also fahren beide zusammen 600km in einer stunde! :D

PS. natürlich nur die Autos
 
HisN schrieb:
Wenn ein Porsche 300Km/h schafft. Dann fahren zwei nicht 600km/h

Ich bin zwar kein Profi aber ich finde, dass diese Aussage nicht wirklich zutrifft.

Dem Ersteller geht es sehrwahrscheinlich darum, sich die Frage zu beantworten, ?Habe ich mehr Rechenleistung? bin ich schneller? oder so in etwa.

Dann würde es doch wohl so besser passen:

Ziel: 4 Personen von Punkt A nach Punkt B transportieren.

Single Core 2 Ghz = Ein Porsche 2 Sitzen

= Ich bekomme 2 Personen mit einer Geschwindigkeit von 300km/h von Punkt A
nach Punkt B und muss die selbe Strecke für die weiteren 2 Personen nochmals beweltigen.

Dual Core 2x2 GHz = 2 Porsche mit insgesamt 4 Sitzen

= Ich bekomme 4 Personen mit einer Geschwindigkeit von 300km/h von Punkt A nach Punkt B, muss diese aber nur einmal Fahre da ich 2 Porsche zur Verfügung habe und somit doppelt so schnell bin.




Sehr lang aber doch zutreffender, oder?

lg
 
schneller nur bei bildbearbeitung oder sowas. aber bei games imo is der dual core schneller
 
aber bei games imo is der dual core schneller

Es gibt aber auch Quad Core optimierte Spiele wie z.B. Grid. Da ist dann ein Quad Core schneller..
__________________________________
>>>http://www.sysprofile.de/id72616<<<
 
Die Rechenleistung ist, auch wenn der Prozessor natürlich weiterhin mit 2Ghz taktet, bei einem DualCore Prozessor nahezu verdoppelt.
Das Hauptproblem, weshalb sich die Leistung aber in einer Anwendung nicht verdoppelt, vermute ich in der Aufteilung der Aufgaben.

Ein Thread kann nunmal nur in einem Kern gleichzeitig bearbeitet werden.
Also müssen wir unsere Aufgaben schonmal in mindestens 2 Threads aufteilen, damit man überhaupt irgendwie 2 Kerne gleichzeitig ans Rechnen kriegt.
Es muss also 2 Berechnungsstränge geben, die komplett unabhängig voneinander berechnet werden können. Man also kein Ergebnis der ersten Stranges als Parameter für den zweiten Strang braucht.

Das wird dann wahrscheinlich meistens dazu führen, dass ein "Hauptthread" sich als der Aufwendingste herausstellt und alle anderen meist deutlich weniger aufwendig sind, da einfach nicht genügend unabhängige Berechnungen durchführbar sind.
Also haben wir einen Thread, der nunmal nur auf einem Kern gleichzeitig ausgeführt werden kann und einen oder mehrere weniger aufwendigere Thread.

Am Ende sind wir dann so schnell, wie der langsamste Thread.

Haben wir also nur einen Thread, ist es egal, ob er auf einem Single, Dual oder OctaCore berechnet wird.

Kommt nun aber noch ein weiterer Thread dazu, so kann dieser auf dem zweiten Kern berechnet werden, was den Kern, der den aufwenigsten Thread berechnet, entlastet.
Schneller als der Hauptthread kann das Programm aber trotzdem nicht laufen, der Kern mit dem einfacher zu berechnenden Thread liegt also zum Teil brach.
Es kann natürlich auch so sein, dass alle einfacheren Threads zusammen für Kern 2 aufwenidiger sind, als der Hauptthread für Kern 1. In diesem Fall würde dann beispielsweise ein QuadCore Sinn machen, da in dem Fall Threads auf die Kerne 3 und 4 ausgelagert werden können.
Sobald jedoch ein Thread so aufwenig ist, dass er einen Kern alleine auslastet, bringen dir weitere Kerne nichts.

Wie gesagt, es ist nur eine Vermutung, aber für mich die einleuchtenste Erklärung neben anderen Falschenhälsen wie Anbindungen (RAM, FSB...).
 
@ exodus

Ja hast schon recht mir fallen auch nicht mehr als eine Hand voll Quad Core optimierte Spiele ein:-)
Denke aber das die Spiele in näherer Zukunft immer öfters Quad optimiert sein werden.
 
@ Flo89

Das man es nicht 1:1 übertragen kann ist verständlich :)

Ich glaube aber es damit so einfach und bildlich erklärt zu haben, dass es auch jemand versteht der über dieses Thema noch nichts weiß.
 
Noch mal eine weitere Vertiefung von der Problematik die bereits Lar337 angesprochen hat.

Wie so vieles im Leben ist auch dies nicht wirklich einfach zu beantworten.
Eine wirkliche Verdopplung der Leistung wirst du nicht erreichen mit dem Sprung von Dual auf Quad.
Eine Abarbeitung eines Programms läuft innerhalb einer ALU in modernen Prozessoren in einer Pipeline ab. Wenn jetzt anstatt einer ALU, zwei, drei oder vier … hier werkeln muss man darauf achten, dass sich Ergebnisse der einzelnen Berechnungen nicht gegenseitig in die quere kommen.
Beispiel: ALU 1 ließt Daten aus dem RAM ein, da diese dort vorliegen. ALU 2 kann ganz normal Arbeiten (alle Daten liegen im Register vor oder in seinem eigenen Cache). ALU 3 brauch auch Daten aus dem RAM, es gibt aber nur eine Verbindung zu diesem. Somit muss nun eine ALU warten oder der Compiler muss es so drehen, mit der Befehlsabarbeitung, das sie sich nicht gegenseitig in die quere kommen (geht aber nicht immer). Bei ALU 4 sieht es so aus, dass diese auf die Berechnung der 2. ALU angewiesen ist und dieses evtl. mittels Forwarding gelöst werden kann oder auch nicht.
Um aber allen ALU’s vernünftig Arbeit zukommen zulassen zu können ist es wichtig das die Software das auch unterstützt. Es bringt nichts wenn man X Prozessoren hat und das Programm, welches man ausführt, sequenziell abgearbeitet werden muss. Hier sollten möglichst die einzelnen Programmabschnitte parallel ausführbar sein (Stichwort: Threats). Ein super Beispiel für ein Problem, welches mittels mehreren parallelen Prozessen, schneller zu lösen ist, ist die Berechnung des nächsten Spielzuges im Schach.
 
Editiert von TheMad
Mein Beitrag war falsch und habe ihn wieder entfernt.
 
Zuletzt bearbeitet:
Ich weiß es nicht sicher, aber einen Thread von zwei Kernen bearbeiten zu lassen, dürfte theoretisch und praktisch unmöglich sein (mal abgesehen von Double Precision, aber das bringt ja keine Performancevorteile).
 
@TheMad
Okay ich muss erstmal deine Frage richtig verstehen.
Mit Apfel meinst du hoffentlich Apple und mit M$ Microsoft, wem den so ist gebe ich folgendes zu bedenken:
Apple hatte vor nicht allzu langer Zeit mal den Power Prozessor von IBM verbaut. Ich kenne mich jetzt nicht damit genau aus, aber nehmen wir mal an, dass dort bereits Mehrkern- Architektur zum Einsatz kam. Somit wurden alle Anwendungen auch daraufhin zugeschnitten, ist ja klar, die Programmierer wussten ja bei Apple das sie auf einer Mehrkern- Architektur aufsetzen können.
Anschließend kam dann der Umbruch bei Apple Power --> Intel Prozessoren. Diese Prozessoren hatten am Anfang noch keine Mehrkern- Architektur, somit würden Programme die explizit darauf aufsetzen ihre Schwierigkeiten damit haben (sie würden merklich langsamer laufen).
Aus diesem Grund würde ich mal behaupten, dass die Anwendungen von Apple nicht von vornherein auf Multicores setzten. Es kann sein das sie sich jetzt nach der Einführung dahin orientieren, aber sagen kann ich dazu nichts.
 
Zuletzt bearbeitet: (ASCII Zeichen hinzugefügt)
Zurück
Oben