Tristan.s schrieb:
Dann eben 99%, aber 15 - 30% ist völlig daneben
Hallo,
die 15-30% sind nicht so daneben wie die 99% oder 100%, denn das wirst du nie erreichen. 2 völlig unabhängige Systeme erreichen 100%, aber da SMP immer voneinander abhänigig ist wirst du nicht mal annähernd 100% erreichen.
Ein praktisches Beispiel veranschaulicht das. Ich starte auf meinem Xeon ein DivX-Encoder der nur auf einem Prozessor läuft und weise ihm jeweils genau einem Prozessor (CPU 1 und CPU 2 sind die echten Prozessoren, CPU 3 und CPU 4 die HT Einheiten) zu und beobachte die Framerate:
1 Thread (CPU1) : 22,5 fps
2 Threads (CPU1 + CPU2) : je 19,5 fps = 39 fps
2 Threads (CPU1 + CPU3) : je 15,8 fps = 30,6 fps
4 Threads : je 13,2 fps = 52,8 fps
während hier HT schon einen Zuwachs von 36% bringt, bringt eine zweite CPU 73%. Gegenüber dem Einsatz einer HT-CPU bringt der Einsatz einer zweiten CPU ebenfalls rund 72%. Wie de 22,5 fps jetzt zustande kommen ist erst einmal ohne belang, habe festgestellt dass sich dieses Verhältnis beibehält. Bei parallelisierbarer Software liegt der Gewinn an Rechenpower unter diesen 73%, da hier der Verwaltungsaufwand noch beim Programm liegt. Dies haben wir (ein paar Kumpels und ich) mit MS-SQL Server 2000 und z.b. Excel verifiziert
Auf einem Opteron haben wir festgestellt mit den gleichen Bedingungen dass hier der Vorteil bei 2 Threads statt einem bei knapp 80% liegt, er skaliert ein wenig besser (trotzdem liegt die Framerate bei einem Opteron 244 gegenüber meinem Xeon 3,06 deutlich niedriger!). Bei hochparallelem Kompelieren zeigt sich die Stärke des Opterons, denn während der Xeon auf rund 160% der Performance eines einzelnen Prozessors einbricht, bleibt der Opteron bei rund 175% recht stabil.
Wieviel der Xeon oder der Opteron vom Tandem-Betrieb nun profitiert hängt von der Art und dem Maße der Parallelisierung ab, es gibt durchaus Programme die nur 30% durch den 2. Prozessor gewinnen.
Gruß
w@w