Paralleler Algorithmus

In der Informatik, einem parallelen Algorithmus oder gleichzeitigem Algorithmus, im Vergleich mit einem traditionellen folgenden (oder Serien-) Algorithmus, ist ein Algorithmus, der ein Stück auf einmal auf vielen verschiedenen in einer Prozession gehenden Geräten durchgeführt, und dann zurück wieder am Ende zusammengestellt werden kann, um das richtige Ergebnis zu bekommen.

Einige Algorithmen sind leicht, in Stücke wie das zu zerteilen. Zum Beispiel sich den Job scheiden zu lassen, alle Zahlen von ein bis hunderttausend zu überprüfen, um zu sehen, die Blüte sind, konnte durch das Zuweisen einer Teilmenge der Zahlen zu jedem verfügbaren Verarbeiter, und dann das Zusammenstellen der Liste von positiven Ergebnissen zurück getan werden.

Die meisten verfügbaren Algorithmen, um Pi (π) zu schätzen, können andererseits in parallele Teile nicht leicht aufgeteilt werden. Sie verlangen die Ergebnisse von einem vorhergehenden Schritt, mit dem nächsten Schritt effektiv fortzufahren. Solche Probleme werden von Natur aus Serienprobleme genannt. Wiederholende numerische Methoden, wie die Methode von Newton oder das Drei-Körper-Problem, sind auch Algorithmen, die von Natur aus Serien-sind. Einige Probleme sind zu parallelize sehr schwierig, obwohl sie rekursiv sind. Ein solches Beispiel ist die Tiefensuche von Graphen.

Parallele Algorithmen sind wegen wesentlicher Verbesserungen in in einer Prozession mehrgehenden Systemen und dem Anstieg von Mehrkernverarbeitern wertvoll. Im Allgemeinen ist es leichter, einen Computer mit einem einzelnen schnellen Verarbeiter zu bauen, als einer mit vielen langsamen Verarbeitern mit demselben Durchfluss. Aber Verarbeiter-Geschwindigkeit wird in erster Linie durch das Schrumpfen des Schaltsystemes vergrößert, und moderne Verarbeiter stoßen physische Größe und heizen Grenzen. Diese Zwillingsbarrieren haben die Gleichung geschnipst, Mehrverarbeitung praktisch sogar für kleine Systeme machend.

Die Kosten oder Kompliziertheit von Serienalgorithmen werden in Bezug auf den Raum (Gedächtnis) und Zeit geschätzt (Verarbeiter-Zyklen), dass sie nehmen. Parallele Algorithmen müssen eine mehr Quelle, die Kommunikation zwischen verschiedenen Verarbeitern optimieren. Es gibt zwei Weg-Parallele-Verarbeiter, kommunizieren geteiltes Gedächtnis oder Nachrichtenübergang.

Geteilte Speicherverarbeitung braucht zusätzliche Blockierung für die Daten, erlegt die Gemeinkosten des zusätzlichen Verarbeiters und der Buszyklen auf, und veröffentlicht auch einen Teil des Algorithmus in Fortsetzungen.

Nachrichtenübergang, der Gebrauch-Kanäle und Nachrichtenkästen, aber diese Kommunikation bearbeitet, fügt Übertragung oben auf dem Bus, zusätzlichen Speicherbedürfnis nach Warteschlangen und Nachrichtenkästen und Latenz in den Nachrichten hinzu. Designs von parallelen Verarbeitern verwenden spezielle Busse wie Querbalken, so dass die Kommunikation oben klein sein wird, aber es ist der parallele Algorithmus, der das Volumen des Verkehrs entscheidet.

Ein anderes Problem mit parallelen Algorithmen stellt sicher, dass sie angemessen erwogene Last sind. Zum Beispiel ist Überprüfung aller Zahlen von ein bis hunderttausend für primality leicht, sich unter Verarbeitern aufzuspalten; jedoch werden einige Verarbeiter veranlassen, dass mehr Arbeit tut als andere, die müßig bis zu den geladenen abgeschlossenen Verarbeitern sitzen werden.

Ein Subtyp von parallelen Algorithmen, verteilte Algorithmen sind Algorithmen hat vorgehabt, in der Traube-Computerwissenschaft zu arbeiten, und hat Rechenumgebungen verteilt, wo zusätzliche Sorgen außer dem Spielraum von "klassischen" parallelen Algorithmen gerichtet werden müssen.

Siehe auch

Links


Amerikanischer Bobtail / Japanischer Bobtail
Impressum & Datenschutz