Ansätze der Optimierung per Hardware (Fortsetzung)
Symmetric
Multi-Processing
Dies ist die wohl bekannteste und etablierteste Art, die Leistung eines Computers
möglichst günstig zu steigern: Man behalte alles wie es ist und füge
einfach einen zweiten Prozessor hinzu. Dass jedoch die Rechnung 2 x 1 GHz CPU
= 2 GHz auf keinen Fall aufgeht, ist logisch.
Auch die Tatsache, dass mehrere Prozessoren lediglich bei bestimmten, nicht
heimtypischen Anwendungen wirklich Sinn machen, wird in der aufkommenden Euphorie
der Taktfrequenzverdopplung gerne übersehen.
Symmetric
Multi-Processing (kurz SMP) Computer haben nicht nur Vorteile und können
unter Umständen sogar langsamer sein als Ein-Prozessor Systeme. Doch der
Reihe nach:
Bei SMP-Systemen
wird die komplette externe Peripherie behalten, lediglich die Anzahl der Prozessoren
steigt. Dies bedeutet, dass weiterhin lediglich ein Speicherkanal zur Verfügung
steht (respektive zwei, bei Dual-Channel Interface Chipsätzen), ein AGP-Bus
und ein PCI-Bus. Verdoppelt wird hingegen die Anzahl sowie Größe
der Caches, die lokalen APIC-Controller sowie die Anzahl der Prozessoren.
Ein ausbalanciertes Ein-Prozessorsystem wird also durch Verdopplung einer Einheit
gehörig aus dem Gleichgewicht gebracht. Bei Ein-Prozessor Systemen gibt
es unterschiedliche Schwachstellen, unter anderem den niedrigen FSB im Verhältnis
zum Prozessortakt sowie den langsamen Arbeitsspeicher.
Dass die Speicherbandbreite jedoch bei Verdopplung der Prozessoren konstant
bleibt, kann sich nur negativ auf die Performance auswirken. Und in der Tat
ist es so, dass je klaffender das Loch zwischen Prozessortakt und Speichertakt,
desto geringer der effektive Leistungsgewinn durch eine zweite CPU. Als hervorragendes
Beispiel kann man die PowerMac DP von Apple verwenden. Beim Dual G4/400 oder
G4/500 mit herkömmlichem PC100 Arbeitsspeicher ist der Performancegewinn
gegenüber einer Ein-Prozessor Maschine deutlich spürbar, wohingegen
der Dual 1 GHz mit PC133 Arbeitsspeicher kaum schneller arbeitet als die Ein-Prozessor
Variante. Und das, obwohl der Speicher- als auch der Bustakt von 100 MHz auf
133 MHz angehoben wurden. Dennoch macht das Verhältnis von CPU-Takt zu
Speichertakt von 7.5:1 beim Dual 1 GHz den zu erwartenden Performancegewinn
einen Strich durch die Rechnung.
Die nächste
Einschränkung betrifft den AGP-Bus. Für mehrere Prozessoren steht
bis einschließlich AGP 2.0 lediglich ein einzelner AGP-Bus zur Verfügung.
Mit AGP 3.0 hat Intel zwar die Möglichkeit der multiplen AGP-Busse spezifiziert,
bis die entsprechenden Motherboards jedoch im Handel erhältlich sind, wird
erfahrungsgemäß noch einige Zeit vergehen.
Bei grafisch intensiven Anwendungen wie beispielsweise 3D-Spielen kann es durchaus
vorkommen, dass die Performance eines Computers sinkt, je mehr Prozessoren man
hinzufügt. Der Grund liegt schlicht und ergreifend an den Konflikten und
daraus resultierenden Stillständen der Prozessoren, sog. stalls (engl.:
to stall = zum Stillstand bringen, stillstehen). Je mehr Prozessoren versuchen
simultan auf einen AGP-Bus zuzugreifen, desto mehr Rechenzeit wird mit Stillstand
vergeudet.
Der gleiche Effekt
tritt im übrigen auch beim Arbeitsspeicher auf, hierfür existiert
das sog. Locking (to lock = sperren, am Zugang hindern). Multi-Prozessor Kernel
von Betriebssystemen müssen grundsätzlich einige zusätzliche
Befehle implementieren, die beispielsweise den Arbeitsspeicher vor parallelen
Zugriffen schützen, um die Datenkonsistenz zu wahren. Greift ein Mikroprozessor
in einem SMP-System auf den Arbeitsspeicher zu, so wird zunächst der Zugriff
auf diesen für alle weiteren, vorhandenen Mikroprozessoren gesperrt und
dem wartenden Mikroprozessor der exklusive Zugriff gewährt. Anschließend
muss der Arbeitsspeicher wieder für alle Prozessoren freigegeben werden.
Das Problem an diesem Prozedere ist, dass der dabei entstehende Overhead gigantisch
ist. Im schlimmsten Fall kann es vorkommen, dass alle Prozessoren eines SMP-Systems
sich für die Dauer des Speichersperrvorgangs im Stillstand befinden. Im
Normalfall betrifft dies jedoch lediglich den auf den Arbeitsspeicher zugreifenden
Mikroprozessor.
Dass dieser Vorgang, der den ohnehin schon ausbremsenden Zugriff auf den Speicher
noch weiter verlangsamt, nicht sonderlich leistungsfördernd wirkt, kann
sich wohl jeder, der den Artikel bis hierher durchgehalten hat,
ausmalen. Das problematische an diesem Locking ist die Tatsache, dass nicht
nur Single-Threaded Applications, also Programme die nicht
für den Betrieb auf mehreren Prozessoren konzipiert sind, dieses Locking
verursachen, sondern auch verstärkt Multi-Threaded Applications.
Diesen Artikel bookmarken oder senden an ...