Mehrverarbeitung

Mehrverarbeitung ist der Gebrauch von zwei oder mehr in einer Prozession gehenden Haupteinheiten (Zentraleinheiten) innerhalb eines einzelnen Computersystems. Der Begriff bezieht sich auch auf die Fähigkeit eines Systems, mehr als einen Verarbeiter und/oder die Fähigkeit zu unterstützen, Aufgaben zwischen ihnen zuzuteilen. Es gibt viele Schwankungen auf diesem grundlegenden Thema, und die Definition der Mehrverarbeitung kann sich mit dem Zusammenhang, größtenteils als eine Funktion dessen ändern, wie Zentraleinheiten definiert werden (vielfache Kerne darauf, stirbt man, vielfach stirbt in einem Paket, vielfachen Paketen in einer Systemeinheit, usw.).

Mehrverarbeitung bezieht sich manchmal auf die Ausführung von vielfachen gleichzeitigen Softwareprozessen in einem System im Vergleich mit einem einzelnen Prozess in irgendwelchem Moment. Jedoch sind die Begriffe stark mehrbeanspruchend oder Mehrprogrammierung passender, um dieses Konzept zu beschreiben, das größtenteils in der Software durchgeführt wird, wohingegen Mehrverarbeitung passender ist, um den Gebrauch von vielfachen Hardware-Zentraleinheiten zu beschreiben. Ein System kann sowohl mehrbearbeiten und, nur ein der zwei oder keiner von zwei von ihnen mehrprogrammieren.

Typen

Verarbeiter-Symmetrie

In einem in einer Prozession mehrgehenden System können alle Zentraleinheiten gleich sein, oder einige können zu speziellen Zwecken vorbestellt werden. Eine Kombination der Hardware und Betriebssystem-Softwaredesignrücksichten bestimmt die Symmetrie (oder haben Sie an davon Mangel) in einem gegebenen System. Zum Beispiel können Hardware oder Softwarerücksichten verlangen, dass nur eine Zentraleinheit auf alle Hardware-Unterbrechungen antwortet, wohingegen ganze andere Arbeit im System ebenso unter Zentraleinheiten verteilt werden kann; oder die Ausführung des Kernweise-Codes kann auf nur einen Verarbeiter eingeschränkt werden (entweder ein spezifischer Verarbeiter oder nur ein Verarbeiter auf einmal), wohingegen Benutzerweise-Code in jeder Kombination von Verarbeitern durchgeführt werden kann. In einer Prozession mehrgehende Systeme sind häufig leichter zu entwickeln, wenn solche Beschränkungen auferlegt werden, aber sie neigen dazu, weniger effizient zu sein, als Systeme, in denen alle Zentraleinheiten verwertet werden.

Systeme, die alle Zentraleinheiten ebenso behandeln, werden symmetrische Mehrverarbeitung (SMP) Systeme genannt. In Systemen, wo alle Zentraleinheiten nicht gleich sind, können Systemmittel auf mehrere Weisen, einschließlich der asymmetrischen Mehrverarbeitung (ASMP), Mehrverarbeitung des ungleichförmigen Speicherzugangs (NUMA) geteilt werden, und haben Mehrverarbeitung gebündelt.

Instruktion und Datenströme

In der Mehrverarbeitung können die Verarbeiter verwendet werden, um eine einzelne Folge von Instruktionen in vielfachen Zusammenhängen (einzelne Instruktion, vielfache Daten oder SIMD durchzuführen, der häufig in der Vektor-Verarbeitung verwendet ist), vielfache Folgen von Instruktionen in einem einzelnen Zusammenhang (vielfache Instruktion, einzelne Daten oder MISD, der für die Überfülle in ausfallsicheren Systemen verwendet ist und manchmal angewandt ist, um pipelined Verarbeiter oder das Hypereinfädeln zu beschreiben), oder vielfache Folgen von Instruktionen in vielfachen Zusammenhängen (vielfache Instruktion, vielfache Daten oder MIMD).

Verarbeiter-Kopplung

Dicht verbundene Mehrverarbeiter-Systeme enthalten vielfache Zentraleinheiten, die am Busniveau verbunden werden. Diese Zentraleinheiten können Zugang zu einem geteilten Hauptgedächtnis (SMP oder UMA) haben, oder können an einer Speicherhierarchie sowohl mit dem lokalen als auch mit geteilten Gedächtnis (NUMA) teilnehmen. IBM p690 Regatta ist ein Beispiel eines hohen Endes SMP System. Verarbeiter von Intel Xeon haben den Mehrverarbeiter-Markt für Geschäfts-PCs beherrscht und waren die einzige x86 Auswahl bis zur Ausgabe der Opteron Reihe von AMD von Verarbeitern 2004. Beide Reihen von Verarbeitern hatten ihr eigenes geheimes Lager an Bord, aber haben Zugang zum geteilten Gedächtnis zur Verfügung gestellt; die Verarbeiter von Xeon über eine allgemeine Pfeife und die Verarbeiter von Opteron über unabhängige Pfade zum System-RAM.

Span-Mehrverarbeiter, auch bekannt als Mehrkerncomputerwissenschaft, schließen mehr als einen Verarbeiter ein, der auf einem einzelnen Span gelegt ist, und können von der am meisten äußersten Form der dicht verbundenen Mehrverarbeitung gedacht werden. Großrechner-Systeme mit vielfachen Verarbeitern sind häufig dicht verbunden.

Lose verbundene Mehrverarbeiter-Systeme (häufig gekennzeichnet als Trauben) basieren auf vielfachen eigenständigen einzelnen oder Doppelverarbeiter-Warencomputern, die über ein hohes Geschwindigkeitsnachrichtensystem miteinander verbunden sind (Gigabit Ethernet ist üblich). Eine Linux Beowulf Traube ist ein Beispiel eines lose verbundenen Systems.

Dicht verbundene Systeme leisten besser und sind physisch kleiner als lose verbundene Systeme, aber haben größere anfängliche Investitionen historisch verlangt und können schnell im Preis sinken; Knoten in einem lose verbundenen System sind gewöhnlich billige Warencomputer und können als unabhängige Maschinen auf den Ruhestand von der Traube wiederverwandt werden.

Macht-Verbrauch ist auch eine Rücksicht. Dicht verbundene Systeme neigen dazu, viel mehr Energie zu sein, die effizient ist als Trauben. Das ist, weil beträchtliche Wirtschaft durch das Entwerfen von Bestandteilen begriffen werden kann, um vom Anfang in dicht verbundenen Systemen zusammenzuarbeiten, wohingegen lose verbundene Systeme Bestandteile verwenden, die spezifisch für den Gebrauch in solchen Systemen nicht notwendigerweise beabsichtigt waren.

Softwaredurchführungsprobleme

SISD Mehrverarbeitung

In einem einzelnen Instruktionsstrom einzelner Datenstrom-Computer bearbeitet ein Verarbeiter folgend Instruktionen, jede Instruktion bearbeitet einen Datenartikel. Ein Beispiel ist die Architektur "von von Neumann" mit RISC.

SIMD Mehrverarbeitung

In einem einzelnen Instruktionsstrom vielfacher Datenstrom-Computer behandelt ein Verarbeiter einen Strom von Instruktionen, von denen jede Berechnungen in der Parallele auf vielfachen Datenpositionen durchführen kann.

SIMD Mehrverarbeitung wird der Parallele oder Vektor-Verarbeitung gut angepasst, in der ein sehr großer Satz von Daten in Teile geteilt werden kann, die identischen, aber unabhängigen Operationen individuell unterworfen werden. Ein einzelner Instruktionsstrom leitet die Operation von vielfachen in einer Prozession gehenden Einheiten, um dieselben Manipulationen gleichzeitig auf potenziell großen Datenmengen durchzuführen.

Für bestimmte Typen von Rechenanwendungen kann dieser Typ der Architektur enorme Zunahmen in der Leistung in Bezug auf die verbrauchte Zeit erzeugen, die erforderlich ist, eine gegebene Aufgabe zu vollenden. Jedoch besteht ein Nachteil zu dieser Architektur darin, dass ein großer Teil des Systems müßig fällt, wenn Programme oder Systemaufgaben durchgeführt werden, der in Einheiten nicht geteilt werden kann, die in der Parallele bearbeitet werden können.

Zusätzlich müssen Programme besonders sorgfältig und geschrieben werden, um maximalen Vorteil der Architektur zu nehmen, und häufig müssen spezielle Optimierungsbearbeiter, die entworfen sind, um Code spezifisch für diese Umgebung zu erzeugen, verwendet werden. Einige Bearbeiter in dieser Kategorie stellen spezielle Konstruktionen oder Erweiterungen zur Verfügung, um Programmierern zu erlauben, in der Parallele durchzuführende Operationen direkt anzugeben (z.B, TUN SIE FÜR ALLE Behauptungen in der Version von FORTRAN, der auf dem ILLIAC IV verwendet ist, der ein SIMD in einer Prozession mehrgehender Supercomputer war).

SIMD Mehrverarbeitung findet breiten Gebrauch in bestimmten Gebieten wie Computersimulation, aber ist in der Mehrzweckarbeitsfläche und dem Geschäft Rechenumgebungen wenig nützlich.

MISD Mehrverarbeitung

MISD in einer Prozession mehrgehende Angebote hauptsächlich der Vorteil der Überfülle da führen vielfache in einer Prozession gehende Einheiten dieselben Aufgaben auf denselben Daten durch, die Chancen von falschen Ergebnissen reduzierend, wenn eine der Einheiten scheitert. MISD Architekturen können mit Vergleichen zwischen in einer Prozession gehenden Einheiten verbunden sein, um Misserfolge zu entdecken. Abgesondert vom überflüssigen und ausfallsicheren Charakter dieses Typs der Mehrverarbeitung ist es im Vorteil, und es ist sehr teuer. Es verbessert Leistung nicht. Es kann in einem Weg durchgeführt werden, der zur Software durchsichtig ist. Es wird in Reihe-Verarbeitern verwendet und wird in der Schuld tolerante Maschinen durchgeführt.

Ein anderes Beispiel von MISD ist pipelined Bildverarbeitung, wo jedes Bildpixel piped durch mehrere Hardware-Einheiten ist, die mehrere Schritte der Bildtransformation durchführen.

MIMD Mehrverarbeitung

In einer Prozession mehrgehende Architektur von MIMD ist für ein großes Angebot an Aufgaben passend, in denen die völlig unabhängige und parallele Ausführung von Instruktionen, die verschiedene Sätze von Daten berühren, zum produktiven Gebrauch gestellt werden kann. Deshalb und weil es leicht ist durchzuführen, herrscht MIMD in der Mehrverarbeitung vor.

Verarbeitung wird in vielfache Fäden, jeden mit seinem eigenen Hardware-Verarbeiter-Staat innerhalb eines einzelnen softwaredefinierten Prozesses oder innerhalb von vielfachen Prozessen geteilt. Insofern als ein System vielfache Fäden hat, die Absendung erwarten (entweder System oder Benutzerfäden), macht diese Architektur guten Gebrauch von Hardware-Mitteln.

MIMD bringt wirklich Themen des toten Punktes und Quellenstreits jedoch auf, da Fäden in ihrem Zugang zu Mitteln auf eine unvorhersehbare Weise kollidieren können, die schwierig ist, sich effizient zu behelfen. MIMD verlangt das spezielle Codieren im Betriebssystem eines Computers, aber verlangt Anwendungsänderungen nicht, wenn die Programme selbst vielfache Fäden nicht verwenden (MIMD ist zu Einzeln-Gewindeprogrammen unter am meisten Betriebssystemen durchsichtig, wenn die Programme Kontrolle zum OS nicht freiwillig aufgeben). Sowohl System als auch Anwendungssoftware müssen eventuell Softwarekonstruktionen wie Semaphore (auch genannt Schlösser oder Tore) verwenden, um einen Faden davon abzuhalten, einen anderen zu stören, wenn sie zufällig Pfade durchqueren sollten, indem sie in denselben Daten Verweise anbringen. Dieser gating oder Prozess-Zunahme-Codekompliziertheit schließend, senkt Leistung, und vergrößert außerordentlich den Betrag, erforderlich zu prüfen, obwohl man nicht gewöhnlich genug die Vorteile der Mehrverarbeitung verneint.

Ähnliche Konflikte können am Hardware-Niveau zwischen Verarbeitern (Streit des geheimen Lagers und Bestechung, zum Beispiel) entstehen, und müssen gewöhnlich in der Hardware, oder mit einer Kombination der Software und Hardware (z.B, dem geheimem Lager klare Instruktionen) aufgelöst werden.

Siehe auch

Links


Das Reiten der Kugel / Mehrverarbeiter
Impressum & Datenschutz