Next: 2.2 Topologien
Up: 2.1 Klassifikationen
Previous: 2.1.3 Grobklassifikation nach Flynn
2.1.4 Klassifikation nach Speicherzugriff
Shared Memory (konkurrierende Prozesse) :
Speicher, auf den verschiedene Prozesse
''gleichzeitig'' zugreifen, d.h. sie teilen sich den Speicher.
-
- Jeder Prozeß kann auf sämtliche Daten zugreifen.
Serielles Programm kann ohne größere Schwierigkeiten
zum Laufen gebracht werden. Führt in der Regel bei kleinen
Prozessorzahlen (
)
schnell zu einer ersten
Leistungssteigerung.
-
- Anwachsen der Zugriffskonflikte (z.B. Bankkonflikte) bei größeren
Prozesszahlen. Somit ist die Skalierbarkeit
(d.h. Leistung
Prozessanzahl) nicht mehr gewährleistet.
-
- Zur Verringerung der Zugriffskonflikte sind sehr leistungsfähige
Bussysteme bzw. Zugriffsverwaltungen notwendig.
Verteurung des Gesamtsystems.
Distributed Memory (kommunizierende Prozesse) :
besteht aus Speicherteilen, auf welche
im gesamten Programmablauf stets nur jeweils ein Prozeß zugreifen kann.
Werden Daten eines anderen Prozesses benötigt kann dies nur über
explizite Kommunikation zwischen den Prozessen erfolgen.
-
- Keine Zugriffskonflikte bei Datenoperationen (Lokalität).
-
- Relativ preiswerte Hardware
(sehr leistungsstarke hat aber auch Ihren Preis)
-
- Fast beliebig skalierbar.
-
- Kein direkter Zugriff auf die Daten anderer Prozesse.
Nachrichtenaustausch (Kommunikation) über spezielle
Kanäle (Links) notwendig.
Serielles Programm ist nicht lauffähig, es werden
spezielle parallele Algorithmen benötigt.
-

- Aufwand für Kommunikation noch vor ca. 20 Jahren vernachlässigt,
heute aber ist er mitentscheidend für die Qualität eines
parallelen Algorithmus
(u.a. Verhältnis Kommunikation zu Arithmetik).
-

- Geschwindigkeit der Verbindungsnetzwerke von großer Bedeutung.
Distributed Shared Memory (DSM) :
(auch Virtual Shared Memory)
ist der intelligente Versuch eines Kompromisses zwischen
Shared und Distributed Memory. Ein dem Distributed Memory aufgesetztes
Message-Passing-System simuliert das Vorhandensein eines
globalen Shared Memory (KSR: ''Meer von Adressen'',
SGI: ''Interconnection fabric'').
-
- Auf diesem Speichermodell können serielle Programme sofort zum Laufen
gebracht werden. Wenn die benutzen Algorithmen die Lokalität der Daten
ausnutzen (d.h. mehrheitlich auf den dem Prozeß zugeordneten Speicher
zugreifen) ist auch eine gute Skalierbarkeit erreichbar.
Mittlerweile (Frühjahr 97), hat
SGI
die
Origin2000
mit dem
Skalierbaren Symmetrischen Multiprocessing (S2MP) auf den Markt
gebracht2.1.
Jeder Prozessor dieser Maschine besitzt seinen eigenen lokalen Speicher,
für die Gesamtmaschine ist der Gesamtspeicher aber als Shared Memory
verfügbar. Möglich wurde dies durch den sehr schnellen Crossbar Switch
von Cray
(seit 1996
Tochtergesellschaft von SGI).
Bemerkung :
Im Rahmen des EUROPORT-Projektes
wurden 1995-1997 38 kommerzielle Codes parallelisiert.
Bzgl. der Parallelisierbarkeit auf verschiedenen parallelen
Programmiermodellen und Parallelrechnern sind
interessante Vergleiche
verfügbar. Insbesondere zeigte sich, daß
ein distributed-memory-Konzept zur Datenlokalität in
einem shared-memory Programm auf DSM-Hardware
sehr erfolgreich eingesetzt werden kann und derart gestaltete Programme
den automatisch parallelisierten im allgemeinen überlegen ist.
Next: 2.2 Topologien
Up: 2.1 Klassifikationen
Previous: 2.1.3 Grobklassifikation nach Flynn
Gundolf Haase
1998-12-22