Was bringen mehrere Rechenkerne?



  • Ist anscheinend Trend, mehrere Prozessorkerne in eine CPU zu integrieren.
    Was aber bringt das für die Leistung? Laufen Prozesse bzw. sogar Threads real gleichzeitig ab?
    Wenn ja, hat das doch fatale Auswirkungen auf Multithreading oder?
    Wenn ich mir überlege, dass so 2 oder mehrere Threads wirklich gleichzeitig in einen gemeinsamen Buffer schreiben könnten.



  • TomTom85 schrieb:

    Was aber bringt das für die Leistung?

    n-kerne == n-fache leistung.

    Laufen Prozesse bzw. sogar Threads real gleichzeitig ab?

    das haengt vom programmierer bzw dessen program ab.

    Wenn ja, hat das doch fatale Auswirkungen auf Multithreading oder?

    wenn mehrere threads gleichzeitig laufen (ich nenne das Multithreading) hat es fatale auswirkungen auf Multithreading? ist das nicht irgendwie paradox?

    Wenn ich mir überlege, dass so 2 oder mehrere Threads wirklich gleichzeitig in einen gemeinsamen Buffer schreiben könnten.

    das musst du dir nicht ueberlegen, das ist auch so. der/die programmierer hat/haben die verantwortung das es richtig laeuft.



  • TomTom85 schrieb:

    Wenn ja, hat das doch fatale Auswirkungen auf Multithreading oder? Wenn ich mir überlege, dass so 2 oder mehrere Threads wirklich gleichzeitig in einen gemeinsamen Buffer schreiben könnten.

    Deshalb muß man (Auch bereits auf einen Prozessor mit Multithreading) bereits die gemeinsamen Ressourcen vor gleichzeitigen Zugriff schützen (Critical Sections...).

    Und ja, natürlich laufen dann Threads real paralell - sprich "echtes" Multithreading.

    Je nach Prozessorplattform ist es auch so das die internen Speicherbereiche (Cache) entweder nach Prozessorkernen aufgesplittet, oder anderweitig geschützt werden.

    cu André



  • rapso schrieb:

    ]n-kerne == n-fache leistung.

    Das ist nicht richtig. Siehe Amdahl’s Law.



  • Das Problem ist, dass der Strom zu langsam fliesst, man daher nicht mehr Hertz reinpumpen kann. Bei ~3GHz steht man technisch an. Jetzt muss man sich andere techniken überlegen um mehr Performance zu bekommen.



  • Amdahl0r schrieb:

    rapso schrieb:

    ]n-kerne == n-fache leistung.

    Das ist nicht richtig. Siehe Amdahl’s Law.

    lesen
    verstehen
    posten.

    Shade Of Mine schrieb:

    Das Problem ist, dass der Strom zu langsam fliesst, man daher nicht mehr Hertz reinpumpen kann. Bei ~3GHz steht man technisch an. Jetzt muss man sich andere techniken überlegen um mehr Performance zu bekommen.

    Gibt auch CPUs ausserhalb der x86 welt, z.b. PowerPC und afaik gibt es die schon mit 4.7GHz.
    Probleme hat man eher mit der kuehlung. ein kleiner core bei 4ghz generiert mehr waerme als zwei cores bei 2ghz. die zwei cores haben zudem mehr flaeche zum abfuehren der waerme, somit eine win-win situation *MitBuzwordsWirft*



  • rapso schrieb:

    lesen
    verstehen
    posten.

    Aha. Haste auch noch sowas wie Argumente? N Kerne bringen definitiv NICHT eine N-fache Leistung. Das ist ein unerreichbares theoretisches Maximum.



  • rapso schrieb:

    Amdahl0r schrieb:

    rapso schrieb:

    ]n-kerne == n-fache leistung.

    Das ist nicht richtig. Siehe Amdahl’s Law.

    lesen
    verstehen
    posten.

    Die Steigerung der Leistung verläuft langsamer als die Steigerung der Kernanzahlen.

    Nehmen wir einfach mal ein fiktives Beispiel:
    1 Kern = 100%
    2 Kerne = 180%
    3 Kerne = 250%
    ...

    So in etwa könnte es aussehen. Das Optimum eines linearen Anstieges im Verhältnis wird niemals erreicht und ist auch technisch unmöglich.

    cu André



  • rapso schrieb:

    Probleme hat man eher mit der kuehlung. ein kleiner core bei 4ghz generiert mehr waerme als zwei cores bei 2ghz. die zwei cores haben zudem mehr flaeche zum abfuehren der waerme, somit eine win-win situation *MitBuzwordsWirft*

    http://de.wikipedia.org/wiki/Win-Win

    asc schrieb:

    ... und ist auch technisch unmöglich.

    Das ist aber auch Quatsch. Technisch und theoretisch möglich, nur in praktischen Anwendungen wird es wohl nur sehr selten auftreten. Aber ich kann mir sogar (theoretische) Beispiele ausdenken wo ich bei (N)-Kernen (N+X)-fache Rechenleistung erziele.



  • Tim schrieb:

    rapso schrieb:

    Probleme hat man eher mit der kuehlung. ein kleiner core bei 4ghz generiert mehr waerme als zwei cores bei 2ghz. die zwei cores haben zudem mehr flaeche zum abfuehren der waerme, somit eine win-win situation *MitBuzwordsWirft*

    http://de.wikipedia.org/wiki/Win-Win

    asc schrieb:

    ... und ist auch technisch unmöglich.

    Das ist aber auch Quatsch. Technisch und theoretisch möglich, nur in praktischen Anwendungen wird es wohl nur sehr selten auftreten. Aber ich kann mir sogar (theoretische) Beispiele ausdenken wo ich bei (N)-Kernen (N+X)-fache Rechenleistung erziele.

    Beispiel?



  • asc schrieb:

    rapso schrieb:

    Amdahl0r schrieb:

    rapso schrieb:

    ]n-kerne == n-fache leistung.

    Das ist nicht richtig. Siehe Amdahl’s Law.

    lesen
    verstehen
    posten.

    Die Steigerung der Leistung verläuft langsamer als die Steigerung der Kernanzahlen.

    Nehmen wir einfach mal ein fiktives Beispiel:
    1 Kern = 100%
    2 Kerne = 180%
    3 Kerne = 250%
    ...

    So in etwa könnte es aussehen. Das Optimum eines linearen Anstieges im Verhältnis wird niemals erreicht und ist auch technisch unmöglich.

    cu André

    In Parallelprogrammierung unter Java hatten einige ein Speedup von 2,1 bei 2 Kerne geschaft - Wie willst du das erklären? Übrings es wurde Bitronic Merging implementiert.



  • Zeus schrieb:

    asc schrieb:

    rapso schrieb:

    Amdahl0r schrieb:

    rapso schrieb:

    ]n-kerne == n-fache leistung.

    Das ist nicht richtig. Siehe Amdahl’s Law.

    lesen
    verstehen
    posten.

    Die Steigerung der Leistung verläuft langsamer als die Steigerung der Kernanzahlen.

    Nehmen wir einfach mal ein fiktives Beispiel:
    1 Kern = 100%
    2 Kerne = 180%
    3 Kerne = 250%
    ...

    So in etwa könnte es aussehen. Das Optimum eines linearen Anstieges im Verhältnis wird niemals erreicht und ist auch technisch unmöglich.

    cu André

    In Parallelprogrammierung unter Java hatten einige ein Speedup von 2,1 bei 2 Kerne geschaft - Wie willst du das erklären? Übrings es wurde Bitronic Merging implementiert.

    Quelle? Behaupten kann jeder viel. 🙄



  • Zeus schrieb:

    In Parallelprogrammierung unter Java hatten einige ein Speedup von 2,1 bei 2 Kerne geschaft - Wie willst du das erklären? Übrings es wurde Bitronic Merging implementiert.

    Dadurch, dass der 1. Kern Leistung für Dinge außerhalb des eigentlichen Programms verbraucht. Im Fall von Java kann das zum Beispiel Leistung für die JVM sein, ansonsten gibt es aber natürlich auch noch einen gewissen Overhead für das Betriebssystem. Oder Leistung für den Virenscanner, der im Hintergrund läuft oder sonstiges.

    Generell liegt in diesem Thread glaube ich ein Missverständnis vor. Die einen beziehen sich auf die Performance von Programmen, die anderen auf die Rechenleistung, die die CPU bietet. Die Rechenleistung der CPU kann man vermutlich tatsächlich mehr oder weniger so abschätzen, wie rapso das vorgeschlagen hat. Aber die Programme profitieren davon nicht im gleichen Maß. Da schlägt dann Amdahl's Gesetz zu und die Performance der Programme steigt nicht im gleichen Verhältnis wie die Rechenleistung des Prozessors an.



  • Die meisten Programme arbeiten heute doch sowieso nur mit einem Thread.



  • und warum? @Gregor



  • -.-



  • Zeus: "Bitronic Merging" gibt es laut google nicht.



  • Zeus schrieb:

    -.-

    EDIT: Auch -.- 😃



  • nachgehackt schrieb:

    und warum? @Gregor

    Warum was? @nachgehackt



  • Langsam wird der Thread Lustig - Braucht wer ne Flasche Bier? XD



  • Gregor schrieb:

    Aber die Programme profitieren davon nicht im gleichen Maß. Da schlägt dann Amdahl's Gesetz zu und die Performance der Programme steigt nicht im gleichen Verhältnis wie die Rechenleistung des Prozessors an.

    Warum das?


Anmelden zum Antworten