Ist es möglich (Schrägstrich können Sie ein Beispiel angeben), die Rechenkomplexität eines Problems durch Verwendung eines parallelen Algorithmus zu reduzieren, für den im Verhältnis zur Eingabegröße keine Anzahl von Prozessoren erforderlich ist?
Ist es möglich (Schrägstrich können Sie ein Beispiel angeben), die Rechenkomplexität eines Problems durch Verwendung eines parallelen Algorithmus zu reduzieren, für den im Verhältnis zur Eingabegröße keine Anzahl von Prozessoren erforderlich ist?
Antworten:
Wenn Sie O (1) -Prozessoren meinen, kann die Rechenkomplexität nicht reduziert werden.
Richten Sie einfach die von jedem Prozessor geleistete Arbeit aus und erledigen Sie sie auf einem einzigen. Wenn Sie sich Sorgen um die Synchronisation machen, kann ein Prozessor dies problemlos emulieren.
Es gibt ein aufstrebendes Feld grobkörniger paralleler Algorithmen, bei dem die Laufzeit (und der sonstige Rechenressourcenverbrauch) als Funktion der unabhängigen Parameter n (Eingabegröße) und p (Anzahl der Prozessoren) betrachtet werden, häufig unter der natürlichen Annahme n >> p .
Ein guter Ausgangspunkt ist Google für "Bulk-Synchronous Parallelity".
Dieses Papier könnte Sie interessieren:
Superlineare Leistung bei paralleler Echtzeitberechnung von Selim Akl.
Er liefert Beispiele für Rechenprobleme, bei denen "die sequentielle Lösung mehr als mal langsamer ist als eine parallele Lösung mit Prozessoren"; Dies geschieht durch kreative Interpretation des Konzepts eines "Rechenproblems".n
Wenn Sie die Aufgabe an Prozessoren (wobei eine Konstante ist) verteilen .p
Aber KEINE Komplexität ändert sich.
"Sie können es nicht mit 1 Prozessor berechnen, aber Sie können mit 2 berechnen."
Dies ist nicht möglich, vorausgesetzt, beide Prozessoren sind TMs oder ein weniger leistungsfähiges Modell. Aus Wikipedia für Multi-Tape-Maschinen:
Dieses Modell scheint intuitiv viel leistungsfähiger zu sein als das Einzelbandmodell, aber jedes Mehrbandgerät, egal wie groß das k ist, kann von einem Einzelbandgerät mit nur quadratisch mehr Rechenzeit simuliert werden (Papadimitriou 1994, Thrm 2.1).
Auch für Mehrkopfmaschinen aus "Lineare Zeitsimulation von Mehrkopf-Turingmaschinen mit Kopf-Kopf-Sprüngen" von Walter J. Savitch und Paul MB Vitányi:
Das Hauptergebnis dieser Arbeit zeigt, dass man bei einer Turing-Maschine mit mehreren Lese- / Schreibköpfen pro Band, die die zusätzliche Verschiebungsoperation "Verschieben eines bestimmten Kopfes in die Position eines anderen gegebenen Kopfes" hat, effektiv einen konstruieren kann Multitape-Turing-Maschine mit einem einzigen Lese- / Schreibkopf pro Band, der sie in linearer Zeit simuliert; dh wenn die ursprüngliche Maschine in der Zeit T (n) arbeitet, dann arbeitet die Simulationsmaschine in der Zeit cT (n) für eine Konstante c.
Vielleicht ist "parallel oder" (wenn zwei Funktionen einen Booleschen Wert zurückgeben, sagen Sie, ob eine von ihnen true zurückgibt, da einer von ihnen, aber nicht beide, möglicherweise nicht beendet werden kann) das, worüber Sie sprechen: Sie können nicht berechnen es mit 1 Prozessor, kann aber mit 2 berechnen.
Dies hängt jedoch stark davon ab, welches Rechenmodell Sie verwenden, ob Sie die Prozesse als Black Box oder als Beschreibung erhalten, die Sie selbst interpretieren können usw.