Mehrere Anweisungen, mehrere Daten

MIMD.svg

Im Computer, Mehrere Anweisungen, mehrere Daten (Mimd) ist eine Technik, die eine Parallelität erreicht hat. Maschinen mit MIMD haben eine Reihe von Prozessoren diese Funktion asynchron und unabhängig. Zu jeder Zeit können verschiedene Prozessoren unterschiedliche Anweisungen für verschiedene Datenstücke ausführen.

MIMD -Architekturen können in einer Reihe von Anwendungsbereichen wie z. B. verwendet werden computergestütztes Design/Computergestützte Herstellung, Simulation, Modellierenund als Kommunikation wechselt. MIMD -Maschinen können von beiden sein geteilte Erinnerung oder Verteilter Speicher Kategorien. Diese Klassifikationen basieren darauf, wie MIMD -Prozessoren auf Speicher zugreifen. Gemeinsame Speichermaschinen können von der sein Busbasis, erweitert oder Hierarchisch Typ. Verteilte Speichermaschinen können haben Hypercube oder Gittergewebe Verbindungsschemata.

Beispiele

Ein Beispiel für das MIMD -System ist Intel Xeon Phi, Stammt ab von Larrabee Mikroarchitektur.[2] Diese Prozessoren verfügen über mehrere Verarbeitungskerne (bis zu 61 ab 2015), die verschiedene Anweisungen für verschiedene Daten ausführen können.

Die meisten parallele Computer sind ab 2013 MIMD -Systeme.[3]

Shared Memory Model

Im gemeinsam genutzten Speichermodell sind die Prozessoren alle über beide mit einem "global verfügbaren" Speicher verbunden Software oder Hardware bedeutet. Das Betriebssystem Normalerweise beibehält seine Gedächtniskohärenz.[4]

Aus Sicht eines Programmierers wird dieses Speichermodell besser verstanden als das verteilte Speichermodell. Ein weiterer Vorteil ist, dass die Speicherkohärenz vom Betriebssystem und nicht vom schriftlichen Programm verwaltet wird. Zwei bekannte Nachteile sind: Skalierbarkeit über zweiunddreißig Prozessoren ist schwierig, und das gemeinsame Speichermodell ist weniger flexibel als das verteilte Speichermodell.[4]

Es gibt viele Beispiele für gemeinsames Speicher (Multiprozessoren): Uma (UMA (Einheitlicher Speicherzugriff), Koma (Nur-Cache-Speicherzugriff).[5]

Busbasis

MIMD -Maschinen mit gemeinsamem Speicher haben Prozessoren, die einen gemeinsamen zentralen Speicher teilen. In der einfachsten Form sind alle Prozessoren an einen Bus angeschlossen, der sie mit dem Speicher verbindet. Dies bedeutet, dass jede Maschine mit gemeinsamem Speicher ein bestimmtes CM, ein gemeinsames Bussystem für alle Clients, teilt.

Wenn wir beispielsweise einen Bus mit den Kunden A, B, C auf einer Seite und P, Q, R auf der gegenüberliegenden Seite betrachten, kommuniziert jeder der Kunden mit der anderen mit der Busschnittstelle zwischen ihnen.

Hierarchisch

MIMD -Maschinen mit hierarchisch geteiltem Speicher verwenden eine Hierarchie von Bussen (zum Beispiel in einem "Fettbaum") Um den Prozessoren den Zugriff auf den Speicher des anderen zu gewähren. Die Prozessoren in verschiedenen Boards können durch inter-oberste Busse kommunizieren. Busse unterstützen die Kommunikation zwischen den Boards. Mit dieser Art von Architektur kann die Maschine über neuntausend Prozessoren unterstützen.

Verteilter Speicher

In verteilten Speicher -MIMD -Maschinen (Mehrfachbefehl, mehreren Daten) hat jeder Prozessor einen eigenen individuellen Speicherort. Jeder Prozessor hat keine direkten Kenntnisse über das Gedächtnis eines anderen Prozessors. Damit die Daten gemeinsam genutzt werden, muss sie als Nachricht von einem Prozessor an einen anderen übergeben werden. Da es keinen gemeinsamen Speicher gibt, ist die Behauptung mit diesen Maschinen kein so großes Problem. Es ist wirtschaftlich nicht machbar, eine große Anzahl von Prozessoren direkt miteinander zu verbinden. Eine Möglichkeit, diese Vielzahl direkter Verbindungen zu vermeiden, besteht darin, jeden Prozessor mit nur wenigen anderen zu verbinden. Diese Art von Design kann aufgrund der zusätzlichen Zeit ineffizient sein, die erforderlich ist, um eine Nachricht von einem Prozessor an einem anderen entlang des Nachrichtenpfads weiterzugeben. Die Zeitspanne, die für Prozessoren erforderlich ist, um einfaches Nachrichtenrouting durchzuführen, kann erheblich sein. Systeme wurden entwickelt, um diesen Zeitverlust zu verringern und Hypercube und Gittergewebe gehören zu zwei der beliebten Verbindungsschemata.

Beispiele für verteilten Speicher (mehrere Computer) umfassen MPP (massiv parallele Prozessoren), Kuh (Cluster von Workstations) und numa (ungleichmäßiger Speicherzugriff). Ersteres ist komplex und teuer: Viele Super-Computer-Unternehmen, gekoppelt von Breitbandnetzwerken. Beispiele sind Hypercube- und Mesh -Verbindungen. Kuh ist die "hausgemachte" Version für einen Bruchteil des Preises.[5]

Hypercube -Verbindungsnetzwerk

In einer MIMD verteilten Speichermaschine mit a Hypercube Systemverbindungsnetzwerk mit vier Prozessoren, einem Prozessor und einem Speichermodul werden an jedem Scheitelpunkt eines Quadrats platziert. Der Durchmesser des Systems ist die minimale Anzahl von Schritten, die ein Prozessor benötigt, um eine Nachricht an den Prozessor zu senden, der am weitesten entfernt ist. Zum Beispiel beträgt der Durchmesser eines 2-Kube 2. in einem Hypercube-System mit acht Prozessoren und jedem Prozessor- und Speichermodul, der in den Scheitelpunkt eines Würfels platziert wird ^N Prozessoren mit jedem Prozessor, der direkt mit n anderen Prozessoren verbunden ist, ist der Durchmesser des Systems N. Ein Nachteil eines Hypercube -Systems besteht darin Prozessoren, die für die Anwendung wirklich benötigt werden.

Netzwerkverbindungsnetzwerk

In einer MIMD-verteilten Speichermaschine mit einem Netzwerkverbindungsnetzwerk werden Prozessoren in ein zweidimensionales Netz platziert. Jeder Prozessor ist mit seinen vier unmittelbaren Nachbarn verbunden. Wrap um Verbindungen können an den Rändern des Netzes bereitgestellt werden. Ein Vorteil des Mesh -Verbindungsnetzwerks gegenüber dem Hypercube besteht darin, dass das Mesh -System nicht in Kräften von zwei konfiguriert werden muss. Ein Nachteil ist, dass der Durchmesser des Netznetzes größer ist als der Hypercube für Systeme mit mehr als vier Prozessoren.

Siehe auch

Verweise

  1. ^ Flynn, Michael J. (September 1972). "Einige Computerorganisationen und ihre Effektivität" (PDF). IEEE -Transaktionen auf Computern. C-21 (9): 948–960. doi:10.1109/tc.1972.5009071.
  2. ^ "Die Gefahren parallel: Larrabee gegen Nvidia, Mimd vs. Simd". 19. September 2008.
  3. ^ "Archivierte Kopie". Archiviert von das Original Am 2013-10-16. Abgerufen 2013-10-16.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  4. ^ a b Ibaroudene, Djaffer."Parallele Verarbeitung, EG6370G: Kapitel 1, Motivation und Geschichte."Vorlesungsfolien. St. Mary's University, San Antonio, Texas. Frühjahr 2008.
  5. ^ a b Andrew S. Tanenbaum (1997). Strukturierte Computerorganisation (4 ed.).Prentice-Hall.S. 559–585. ISBN 978-0130959904. Archiviert von das Original Am 2013-12-01. Abgerufen 2013-03-15.