AW: AMD reicht Patent für Stapelspeicher-Kühler ein
Stur immer zu behaupten Amdahls Gesetz ist allgemein gültig, ist echt zu kurz gegriffen.
Es ist ein unvollständiges mathematisches Modell. Wie üblich trifft es wohl in den mit Abstand meisten Fällen nie ganz zu.
Das Amdahlsche Gesetz wird häufig genannt, wenn man aussagen möchte, dass Software kaum parallelisierbar sei. Allerdings sagt dies das Amdahlsche Gesetz nicht aus.
Es sagt nur aus, dass es einen Grenzwert Beschleunigung durch Parallelisierung in Abhängigkeit von der Anzahl der Arbeitsprozesse gibt.
Oft werden dann Schaubilder gezeigt, wo man schon bei 8 oder 16 Threads keinen Geschwindigkeitsvorteil mehr hat. Diese wurden oft nur zur Verständlichkeit so deutlich kreiert, sind aber irreführend, weil man bei vielen Aufgaben pro Thread fast 100% Performancegewinn hat - es lohnt sich also teils auch, hunderte Arbeiter zu erzeugen.
Das Amdahlsche Gesetz ist sicherlich nicht falsch, sondern ein guter Hinweis darauf, dass die Parallelisierung gewisse (theoretische) Grenzen hat. Allerdings werden die Grenzen oft zu pessimistisch eingeschätzt (Teils unter Umständen auch deshalb, weil der Aussager in dem Fall eine CPU hat, die besonders viel Leistung pro Kern hat, zu Kosten der Anzahl an Kernen).
Für manche Aufgaben könnten selbst 1.000-Kern-CPUs noch nützlich sein, bei bei Virtualisierung, um ein Beispiel zu nennen, wo die Aufgaben(=die virtuellen Maschinen) eine quasi-unendliche Laufzeit haben und es keine Race-Conditions zwischen ihnen geben kann, zudem ist die Verwaltung der Maschinen selbst sehr billig, weil sie im Grunde selbst alle notwendigen Ressourcen zur Verfügung haben (oftmals fest zugeteilt).
Vereinfachtere Programmierungen speziell zur Parallelisierung, würde entscheidend helfen, nur das liegt wohl eher nicht am CPU-Hersteller, sondern an den Softwareentwicklern, die sich immer noch nicht tiefgreifend an dieses Thema heranwagen.
Das ist aktuell ein entscheidender Grund, insbesondere bei der Softwareentwicklung, wo häufig die Entwicklungskosten und dass ein Programm überhaupt läuft über Parallelisierung, bzw. Geschwindigkeit allgemein, gestellt werden.
Es ändert sich aber bereits. Dass 3 Kerne von vieren brach liegen, hat manche bisher nicht gestört. Wenn jetzt teilweise 16 Kerne nicht arbeiten können, wird es kaum noch Programmierer geben, die der Ansicht sind, dass es sich gar nicht lohne, über Parallelisierung/asynchrone Programmierung nachzudenken. Das ist heute ein Standardskill, der bei der Konzeption neuer Programme schon automatisch einfließen muss.