Ich bin im weitesten Sinne neugierig auf das, was über Parallelisierungsalgorithmen in P bekannt ist. Ich habe den folgenden Wikipedia-Artikel zu diesem Thema gefunden:
http://en.wikipedia.org/wiki/NC_%28complexity%29
Der Artikel enthält folgenden Satz:
Es ist nicht bekannt, ob NC = P ist, aber die meisten Forscher vermuten, dass dies falsch ist, was bedeutet, dass es wahrscheinlich einige handhabbare Probleme gibt, die "von Natur aus sequentiell" sind und durch Parallelität nicht signifikant beschleunigt werden können
Hört sich das vernünftig an? Gibt es bekannte Fälle, in denen ein Problem in P nicht durch Parallelität beschleunigt werden kann?
cc.complexity-theory
complexity-classes
big-picture
Vladimir Levin
quelle
quelle
Antworten:
Es ist nicht einmal bekannt, ob NC = P ist, aber P-vollständige Probleme scheinen von Natur aus schwer zu parallelisieren zu sein. Dazu gehören Linear Programming und Horn-SAT. (Im Gegensatz dazu scheinen Probleme in NC einigermaßen leicht zu parallelisieren zu sein.)
Siehe Frage Probleme zwischen NC und P: Wie viele wurden aus dieser Liste gelöst? Hier finden Sie Referenzmaterial (einschließlich Links zu einem klassischen Lehrbuch, das jetzt kostenlos heruntergeladen werden kann) und weitere Informationen zu Problemen, die in P enthalten sind, von denen jedoch nicht bekannt ist, dass sie parallelisiert werden können.
Siehe Frage Verallgemeinertes Ladner-Theorem zur Struktur der Komplexitätsklassen zwischen NC und P. Kurz gesagt, wenn sie sich unterscheiden, gibt es unendlich viele Komplexitätsklassen, die streng zwischen NC und P liegen.
Siehe Frage NC = P Konsequenzen? für eine nette Demonstration von Ryan Williams, dass es möglich ist, Zusammenbrüche in der Hierarchie von Komplexitätsklassen innerhalb von P in vielleicht unwahrscheinlichere Zusammenbrüche wie PSPACE = EXP zu verstärken .
Es ist erwähnenswert, dass eine Konsequenz der P-Vervollständigung von Horn-SAT und der obigen Links darin besteht, dass es nicht möglich zu sein scheint, allgemeine SQL-Abfragen in Datenbanken zu parallelisieren, es sei denn, wir können eine umfangreiche Berechnung nur für die Verwendung umschreiben eine angemessene Menge an Speicher. Dies ist eine rätselhafte Diskrepanz - ich denke, es ist ziemlich unumstritten, zu behaupten, dass es Einschränkungen bei der Komprimierung gibt , aber ich sehe oft Artikel, die auf der Annahme beruhen , dass es möglich ist, jede Datenbankabfrage zu parallelisieren .
quelle
Wenn es bekannte Fälle gäbe, könnten wir P und NC trennen. Es gibt jedoch viele Probleme, von denen bekannt ist, dass sie P-vollständig sind (dh unter logarithmischen Raumverkürzungen), und sie stellen die gleichen Hindernisse für die Darstellung von P = NC dar wie NP-vollständige Probleme für P = NP. Darunter fallen lineare Programmierung und
Anpassung (undmaximale Flüsse im Allgemeinen).Ketan Mulmuley bewies bereits 1994 eine Trennung zwischen P und einer schwachen Form von NC (ohne Bitoperationen). In gewissem Sinne setzt sein aktuelles Programm für P vs NP dort an, wo es aufgehört hat ( auf sehr lockere Weise ).
Das Buch ' Limits on Parallel Computation ' enthält mehr dazu.
quelle
Ich beantwortete die ähnliche Frage. Gibt es bekannte Probleme / Algorithmen im wissenschaftlichen Rechnen, die durch Parallelisierung auf der Computational Science- Site nicht beschleunigt werden können? Lassen Sie es mich hier zitieren, weil es eine praktische Perspektive auf ein sehr konkretes Beispiel eines solchen Problems bietet:
quelle