Das ging mir gerade auch durch den Kopf , beim K10 ist das doch kein Problem mehr. Bleibt die Frage ob der niedrigere Rechenaufwand durch den höheren Kommunikationsaufwand wieder relativiert wird.
Wenn eine multithreaded Application viel mit den anderen Threads (Kernen) kommunizieren muss was passiert dann? Es entsteht Rechenaufwand. Umso mehr Rechenaufwand entsteht umso langsamer wird eine multithreaded Application. Daher hält man die Kommunikation (den Rechenaufwand) der Threads (Kerne) untereinander so gering wie möglich.
Meint ihr nicht das der Kommunkationsaufwand je nach Anwendung eine mehr oder weniger feste Größe ist? Entweder sind die Berechnungen voneinander abhängig und eine gewisse Datenmenge muss übertragen werden oder nicht, dass man einfach künstlich Kommunikation "erzeugt", um damit eine Berechnung beschleunigen zu wollen kann ich mir nicht wirklich vorstellen... Wo sind die Multithread-Programmierer, sagt mal was dazu
Feste größe? Da gibts keine feste Größe. Das hängt von jedem Programmierer und dessen Applications ab wieviel da kommuniziert wird.
Ich habe in ein paar Posts weiter oben dazu alles erklärt. Egal ob man AMD oder Intel oder Sparc oder sonst was als Plattform benutzt. Zusätzlicher Rechenaufwand verringert die Performance der Application.
Daher ist es das Ziel der multithreaded Programmierung den Rechenaufwand der Threads untereinander so gering wie möglich zu halten.
Man kann auf keinem Fall durch viel Kommunikation der Kerne die Performance erhöhen. Genau das Gegenteil ist der Fall.
Im Enterprise Segment entsteht durch Kommunikation ein weiteres großes Problem. Denn durch den hohen Rechenaufwand der Threads untereinander wäre die Application ncht mehr gut skalierbar. Es ist sehr wichtig, dass sich Enterprise Applications oder HPC Applications sehr gut skalieren lassen.
Daher ist die Vorgabe immer so zu programmieren, dass man den Rechenaufwand der Kerne untereinander so gering wie möglich hält.
Zuletzt bearbeitet: