Habt ihr schon mal einen Superlinearen Speedup bemerkt oder gemessen?

M-D

Cadet
Mitglied seit
13.07.2009
Beiträge
16
Renomée
2
Hallo, ich weiß jetzt nicht genau, ob das unter "Spekulation" fällt.

Da ich hier mit meiner 462er Gurke rumkrückel, kann ich leider selbst nichts nachprüfen, was im entferntesten auch nur nach nicht "leicht angeschimmelter Hardware" aussieht.

Ok, also um es mal kurz zu machen. Ich habe vor einiger Zeit mal in einer PC-Zeitschrift (Ich kann leider nicht mehr sagen welche, vllt. PC-Praxis, sorry) einen Test über Mehrkehrnprozessoren gelesen (unter anderem wie sich ein X3er so schlägt, was er taugt)

Naja, ich meine da wurde PhenomI&II sowie Core2&i7 jeweils als Singel,- Dual-, Tripel-(Bei Intel durch abschalten eines Cores) und Quadcore bei vergleichbaren Taktfrequenzen gemessen. Naja, jedenfalls ist das erstaunlichste Ergebnis, welches mir im Gedächtnis geblieben ist, folgendes: Es wurde ein Benchmark gemacht, bei dem jede CPU zuerst mit nur einem Kern lief und danach mit allen.

Der Nehalem hatte mit vier Kernen mehr als die vierfache Leistung gegenüber dem einem Kern. Also einen Effizienzfaktor von > 100%; Das schien für mich so unglaublich wie ein Perpetuum Mobile, das Energie erzeugen kann. Ich habe das als schlampige Durchführung seitens der Redaktion angesehen oder sonst einen Fehler, der sich eingeschlichen hat. Das Ergebnis wurde nicht mal groß kommentiert oder als Besonderheit herausgestellt, naja wie dem auch sei.

Später habe ich dann auf Wikipedia gelesen, dass in der Informatiktheorie durchaus eine superlineare Beschleunigung möglich ist und ich Frage mich nun, ob dieser spezielle Fall mit Nehalem erstmals grenzweise im Heimanwenderbereich angekommen ist und ob das mit kommenden Architekturen (evt. auch von AMD) vermehrt auftauchen wird. Habt ihr sowas schon mal gemessen oder kennt ihr Tests in denen dieses Phänomen aufgetaucht und kommentiert oder diskutiert wurde?

^^Eigentlich wollte ich das noch im Themenabend ansprechen, aber es war 22Uhr ;D





Edit:

Also bisher habe ich mich immer aufgeregt, wenn die Leute "2 * 3Ghz = 6Ghz!!!" oder "4 * 2Ghz = 8Ghz! ergo besser als als 2 * 3Ghz" gerechnet und damit auch noch versucht haben zu argumentieren. Aber in Spezialfällen der Parallelisierung hieße es dann ja vllt bald:

10 * 2,5Ghz sind zwischen 2,5- und >25Ghz (nicht ernst gemeint)
 
Zuletzt bearbeitet:
Gebencht hab sowas noch ned, aber das Vorhandensein solcher Effekte ist mir vollkommen klar und einsehbar.

Superlinearen Anstieg von Arbeitsleistung gibts in ganz vielen Bereichen und ist absolut alltäglich!
V.a. in der Natur, aber auch in der menschlichen Arbeitswelt gibts dafür zahllose, leicht begreifbare Beispiele. Solche Effekte treten immer dann auf, wenn eine Zusammenarbeit im Team neue, effektivere Wege zum Erledigen einer Aufgabe eröffnet.
So ist das Erlegen eines Hirschs für ein Wolfsrudel kein Problem - ein einziger, in Körperkraft dem Rudel Wölfe durchaus gleichgestellter Bär hingegen, hat dabei so gut wie keine Chance.
Ein einzelner Maurer braucht für das Erstellen des Rohbau eines Hauses ungleich viel länger, als ein eingespieltes Team - falls es der Einzelne überheupt schafft.
Und so gibt es unzählige weitere Beispiele, die verdeutlichen, welchen unschätzbaren Vorteil die gezielte Bündelung von Ressourcen haben kann.

So kann man IMHO durchaus mit Fug und Recht sagen, dass superlinearer Leistungszuwachs eigentlich völlig selbstverständlich zu erwarten wäre bei Multiprozessorsystemen und sein bislang sehr seltenes Auftreten von dem noch sehr frühen Anfangsstadium zeugt, in dem sich unsere Hard- und Software befindet!
Mit der Biologie verglichen, ist unsere IT noch auf der Stufe der allerprimitivsten Zellkolonien - selbst Quallen sind deutlich teamfähiger und somit effizienter organisiert...
 
Zuletzt bearbeitet:
Wenn eine CPU ausgelastet ist, dann sind selten wirklich alle Elemente voll beschäftigt, normalerweise limitiert immer ein Glied der Verarbeitungskette und die anderen hätten noch Kapazität.

Intel hat dafür das Hyperthreading entwickelt, um auf diesen nicht ausgelasteten Bereichen einer "100%"-belasteten CPU trotzdem noch was rechnen zu können. Bei mehreren Kernen dürfte der Effekt auch größer sein als bei einem einzelnen, das könnte die Ergebnisse schon erklären.

Weiterhin kann es auch sein, daß beim Abschalten der Kerne auch gewisse Bremswirkungen auftreten. Wenn die CPU intern auf 4 Kerne ausgelegt ist, z.B. die Timings des Cachezugriffs oder ähnliche Algorithmen, dann "verhaspeln" die sich ggf., wenn ein Kern abgeschaltet wird. Nicht so stark, daß Fehler auftreten, aber eben gewisse kleine Wartezeiten, die die Performance negativ beeinflussen.

Diese Effekte bedeuten aber nicht, daß vier Kerne mehr als 4mal besser sind als 4 einzelne, sondern daß ein Viertel eines 4-Kern-Prozessors auch schlechter als 25% werden kann.

Im Allgemeinen sind diese Effekte aber selten und nicht sehr stark und werden meist von Gesetz des abnehmenden Ertrags überdeckt. D.h. wenn man eine Komponente im System stärkt, ohne daß die anderen mitwachsen, kann diese Zusatzleistung nicht 1:1 umgesetzt werden. Das kommt nur dann nicht zum Tragen, wenn die anderen leistungsbestimmenden Komponenten bereits stark genug sind, so daß sie vorher schon nicht ausgelastet waren, man also die schwächste Komponente im System stärkt.

Beim Core i7 im Sockel 1366 ist es nun mal so, daß eigentlich zuviel Speicherbandbreite vorhanden ist, man hier also nicht damit rechnen muß, daß die CPU durch den RAM ausgebremst wird. Wäre z.B. nur ein einzelner Kanal mit langsamem vorhanden, würden 4 Kerne ausgebremst, ein einzelner Kern hätte jedoch wohl noch genug RAM-Bandbreite und wäre nicht oder kaum gebremst. Ergo würde man eine schlechte Skalierung von 1 auf 4 Kerne messen, sicher nicht über 100%, sondern deutlich darunter.
 
Der Nehalem hat dank HyperThreading 8 logische Kerne, was einen Speed-Up von einem zu allen Kernen von mehr als 4x erklärt. Gemeint sein könnte gut der Speed-Up in CineBench, der beim Nehalem leicht über 4x liegt:

 
Gebencht hab sowas noch ned, aber das Vorhandensein solcher Effekte ist mir vollkommen klar und einsehbar.

Superlinearen Anstieg von Arbeitsleistung gibts in ganz vielen Bereichen und ist absolut alltäglich!
V.a. in der Natur, aber auch in der menschlichen Arbeitswelt gibts dafür zahllose, leicht begreifbare Beispiele. Solche Effekte treten immer dann auf, wenn eine Zusammenarbeit im Team neue, effektivere Wege zum Erledigen einer Aufgabe eröffnet.
So ist das Erlegen eines Hirschs für ein Wolfsrudel kein Problem - ein einziger, in Körperkraft dem Rudel Wölfe durchaus gleichgestellter Bär hingegen, hat dabei so gut wie keine Chance.
Ein einzelner Maurer braucht für das Erstellen des Rohbau eines Hauses ungleich viel länger, als ein eingespieltes Team - falls es der Einzelne überheupt schafft.
Und so gibt es unzählige weitere Beispiele, die verdeutlichen, welchen unschätzbaren Vorteil die gezielte Bündelung von Ressourcen haben kann.

So kann man IMHO durchaus mit Fug und Recht sagen, dass superlinearer Leistungszuwachs eigentlich völlig selbstverständlich zu erwarten wäre bei Multiprozessorsystemen und sein bislang sehr seltenes Auftreten von dem noch sehr frühen Anfangsstadium zeugt, in dem sich unsere Hard- und Software befindet!
Mit der Biologie verglichen, ist unsere IT noch auf der Stufe der allerprimitivsten Zellkolonien - selbst Quallen sind deutlich teamfähiger und somit effizienter organisiert...

Fail!:-/
 
Es kann auch durch algorithmische Sachen auftreten dass es deutliche speeups gibt.
Beispiel: Jeder Speicherzugriff ist "teuer" in Sachen Performance.
Rechne ich mit 1 Kern auf den Daten herum und muss sie Fetchen, ergibt das einen gewissen Faktor, den das laden aus dem Speicher an der gesamten Laufzeit ausmacht.
Hab ich nun 4 Kerne, die mit den selben Daten arbeiten, kann ich danke L3-Cache, 1 mal fetchen und alle 4 kerne dafür Versorgen, d.h. nicht mur meine rohe Rechenleistung ist vervierfacht, sondern auch die Kosten einer Operation die alle Kerne gemeinam betrifft ist wesentlich verringert. 4 Fache Leistung und nur 1/4 der Kosten eines Speicherzugriffs im verhältnis zu 1:1 beim einzelnen Kern. Ich habe also nicht nur meine Leistung erhöht bei nutzung mehrerer Kerne, sondern auch meine Kosten verringert.
Ergo könnte es durchaus mehr als 4 mal schneller gehen, sofern es wirklich so ist, dass die Kerne in dem Beispiel mit den selben Daten arbeiten können.
Das ist zwar nicht wahrscheinlich, aber auch nicht unmöglich.

grüßchen
ich
 
Ich ziehe die Antwort vor, die explizit auf die SMT-Funktionalität des Nehalem hinweist. So wächst die Anzahl der Kerne von 4 auf 8 Logische Prozessoren.

So gesehen ist der Geschwindigkeitsgewinn um den Faktor von etwas mehr als 4 eher ernüchternd bei 8 logischen Prozessorkernen. Es gibt durchaus Fälle, wo mit SMT-Technik ein deutlich höherer Leistungssteigerung möglich ist.

MFG Bobo(2009)
 
Der Nehalem hat dank HyperThreading 8 logische Kerne, was einen Speed-Up von einem zu allen Kernen von mehr als 4x erklärt. Gemeint sein könnte gut der Speed-Up in CineBench, der beim Nehalem leicht über 4x liegt:


In dem Fall wäre der Speedup aber etwas bescheiden, bei 8 logischen Kernen
gegenüber 1 Kern!
Da ist AMD mit "nur" 3,9x Speedup und nur 4 logischen Kernen durchaus effektiver!?

Natürlich ist das nur auf Cinebench zu übertragen, bei neuer Software (optimiert) wird es wieder ganz anders aus sehen! ;)

Gruß
 
In dem Fall wäre der Speedup aber etwas bescheiden, bei 8 logischen Kernen
gegenüber 1 Kern!
Da ist AMD mit "nur" 3,9x Speedup und nur 4 logischen Kernen durchaus effektiver!?

Natürlich ist das nur auf Cinebench zu übertragen, bei neuer Software (optimiert) wird es wieder ganz anders aus sehen! ;)

Gruß
Oder der Nehalem wird durch CineBench einfach sehr gut ausgelastet. ;) Trifft ja auch durchaus zu, dass der Nehalem beim Single-Render-Test alles andere ziemlich nass macht.


Je besser die Anbindung und je schlechter die Rechenleistung, desto höher kann so ein Speed-Up ausfallen. Deshalb sieht es beim Phenom I so gut und beim Core 2 Quad so "schlecht" aus, obwohl beide nur vier reale Kerne haben.
 
In der ct war ein Test, wahrscheinlich meinst du diesen http://www.heise.de/kiosk/archiv/ct/2009/7/96_kiosk da gab es ein Speedup von 6x und mehr.
Es ist mehr als eine Beschleunigung als 4x bei einem Quad- Core im vergleich zum Singel- Core möglich, wenn die Thread oder Prozesse sich auf dem Singel Core gegenseitig im weg stehen und die Software für Multi-Core ausgelegt ist.
Die Prozesse müssen z.b. auf die Ergebnisse des anderen warten, und ein SC muss nun die Daten in den Cache löschen, laden, Prozess bearbeiten, löschen laden...

Das ist dann ein ähnlicher Effekt wie beim Swappen vom BS wenn der Ram nicht reicht und auf die HDD zurück greift, und der PC sehr langsam wird.

3Dcenter.de hast in diesem Test unter Supreme Commander auch den Effekt entdeckt, allerdings ging es damals Singel vs. DualCore (bzw. HTT)

Bei großen Schlachten liegt der Faktor deutlich über 2x.


Deswegen empfehle ich schon länger QuadCores, denn im besten Fall ist ein DC 15% schneller im schlimmsten Fall ist des auf einem DC unbrauchbar.
Das eine Anwendung unter einem QC wegen ein Paar Mhz nicht läuft wird wohl es nicht geben und selbst, wenn mit ein bisschen OC kann man das ausgleichen, ein DC hilft dann auch kein OC mehr.

Wenn ich dann solche Thread wie: "Wie lange ist ein DC noch aktuell?" lese und dann solche antworten wie 2 Jahre noch dann stellen sich mir die Nackenhaare, ich denke das DC in 1 bis max 2 Jahren häufiger in die Situation kommen werden gegen einen QC mehr als nur die hälfte der Performance zu "verlieren"... das ist meine Meinung die natürlich nicht eintreten muss.
 
Hallo, nach vielen Jahren schreibe ich nochmal.

Ich fand es damals immer blöd von mir mich nicht mehr gemeldet zu haben, aber ich bin ein recht introvertierter Mensch der echt ungerne schreibt/redet. Ich möchte es nochmal mit ein paar neuen Beiträgen hier versuchen, doch zuvor wollte ich das hier endlich abschließen.

Vielen Dank an die damaligen Antworter und es war übrigens wirklich der CineBench damals.

Sorry für mein unhöfliches rüberkommen.
 
Du elender Leichenschänder. :)
 
Zurück
Oben Unten