Alles -komplette Problem ist unwahrscheinlich , dass ein effizienten parallelen Algorithmus haben. Warum ?P
Die Existenz von vollständigen Problemen ist der wichtigste Hinweis darauf, dass ( P ∩ P O L Y L O G S P A C E ) ≠ PP(P∩POLYLOGSPACE)≠P. Die Frage ist also, warum diese Vermutung für das parallele Rechnen relevant ist. Beginnen wir mit den in einer Berechnung verwendeten Ressourcen. Für sequentielles Rechnen: Zeit und Raum; für paralleles Rechnen: Zeit und Hardware (Anzahl der Prozessoren). Gibt es eine Beziehung? Ja! Sequentieller Raum ↔ parallele Zeit; Sequenzielle Zeit ↔ parallele Hardware. Die Entsprechung zwischen sequentiellem Raum und paralleler Zeit scheint unabhängig von dem angewendeten parallelen Rechenmodell zu sein; dies führt zu der folgenden sogenannten parallelen rechentheorie, die nicht bewiesen ist.
(Chandra und Stockmeyer) Jede Berechnung eines TM mit Raumkomplexität kann in einem Parallelrechenmodell in der Zeit T ( n ) = O ( S ( n ) O ( 1 ) ) und jede Berechnung eines Parallelrechnens simuliert werden Modell mit Zeitkomplexität T ' ( n ) kann durch ein TM mit Raumkomplexität S ' ( n ) = O ( T ' ( n ) O simuliert werdenS(n)T(n)=O(S(n)O(1))T′( n ).S′( n ) = O ( T′( n )O ( 1 ))
Die Klasse der im Polynomraum sequentiell lösbaren Probleme ist und die Menge der in der Polynomzeit lösbaren Probleme ist P. Da P S P A C E als viel größere Klasse von Problemen angesehen wird als P , die These quantifiziert die effektive Verbesserung, die durch Parallelität ermöglicht wird. Eine Konsequenz dieser These ist, dass ein PRAM N P -komplette Probleme in der Polynomzeit lösen kann … Leider nein! Die parallele Rechnerthese impliziert, dass wir uns tatsächlich mit Problemen befassen können, die zu P S P A C E gehörenPSPA CEPPSPA CEPNPPSPA CE… Aber das erfordert eine exponentielle Anzahl von Prozessoren! Ein Zeit-Raum-Kompromiss funktioniert: Die Exponentialzeit im sequentiellen Rechenmodell wird im parallelen Rechenmodell in eine exponentielle Anzahl von Prozessoren umgewandelt, während der Polynomraum im sequentiellen Rechenmodell in eine Polynomzeit im parallelen Rechenmodell umgewandelt wird Rechenmodell.
Dieser Kompromiß ist leichter zu verstehen , wenn wir beide parallel Zeit und parallel Hardware zu beschränken versuchen: Wenn das parallele Rechenmodell eine Polynom Anzahl der Prozessoren hat, dann ist die Klasse von Problemen parallel Polynomzeit auflösbar ist . Wenn wir die Anzahl der Prozessoren auf ein Polynom beschränken, können wir die Leistung einer sequentiellen Maschine verbessern, jedoch nicht mehr als einen Polynomfaktor. Auf diese Weise können wir den Grad des Polynoms reduzieren, der die zeitliche Komplexität darstellt, aber wir können Parallelität nicht verwenden, um exponentielle Kosten auf Polynomkosten zu reduzieren.P
Die Probleme, die parallel zur polynomiellen Zeitkomplexität gelöst werden, sind die Probleme, die zu . Die polynomielle Beschränkung auf die Anzahl der Prozessoren führt zu einem parallelen Rechenmodell, das TM entspricht. Es gibt zwei wichtige praktische Überlegungen: Welche polynomiale Anzahl von Prozessoren ist akzeptabel / erschwinglich? In der Praxis soll die Polynomzahl der Prozessoren linear oder nahe sein. Welche subpolynomiale Zeit ist erreichbar? Es stellte sich heraus, dass fast alle hochparallelen möglichen Probleme eine polylogarithmische Parallelzeit erreichen können. Parallel dazu repräsentiert eine Zeitkomplexität, die in der Eingangslänge logarithmisch ist, eine effiziente parallele Berechnung. Ein paralleler Algorithmus wird als effizient angesehen, wenn seine zeitliche Komplexität bei einer gegebenen polynomiellen Anzahl von Prozessoren polylogarithmisch ist.P
Bei einem Problem , wobei k und h Konstanten sind, die parallele Berechnung Arbeit wird die Existenz eines parallelen Algorithmus impliziert für R mit Zeitkomplexität O ( ( l o g n ) k ' ) wobei k 'R ∈ TichME_ SPA CETM( nk, ( l o gn )h)khRO ( ( l o gn )k′)k′ist eine Konstante. Der Vergleich zwischen sequentieller und paralleler Zeit erlaubt es, als ein Problem zu klassifizieren, das (aus zeitlicher Sicht) stark parallelisierbar ist.R
Aus der parallelen Berechnung These, folgt, dass die Klasse von Problemen höchst parallelisierbaren ist. P O L Y L O G S P A C E enthält keine Probleme in Bezug auf die Reduzierung des Speicherplatzes; Dies bedeutet , P O L Y L A G S P A C E ≠ P . Es scheint, dassPO L YL O G SPA CEPO L YL O G SPA CEPO L YL O G SPA CE≠ P
- PO L YL O G SPA CE⊄ P
- P⊄ PO L YL O G SPA CE
enthält die Probleme, die in der Polynomzeit unter Verwendung des polylogarithmischen Raums gelöst werden können. P- vollständige Probleme gehören wahrscheinlich zu P - ( P ∩ P O L Y L O G S P A C E ) .P∩ PO L YL O G SPA CEPP- ( P∩ PO L YL O G SPA CE)
(Nicks Klasse - so genannt zu Ehren von Nicholas Pippenger, der es 1979 als erster identifizierte und charakterisierte) ist die Klasse von Problemen, die in polylogarithmischer Zeit (dh mit Zeitkomplexität O ( ( l o g n ) k ) ) mit einer Polynomzahl von Prozessoren (dh, begrenzt durch O ( f ( n ) ) für eine Polynomfunktion f, wobei n die Problemgröße ist) Die parallele Berechnungsarbeit impliziert N C ⊂ ( P ∩ P ONCO ( ( l o gn )k) )O ( f( n ) )fn .NC⊂ ( P∩ PO L YL O G SPA CE)
Doch leider definitions enthält auch eine Menge Probleme , die sind nicht effizient parallelizable. Das berüchtigtste Beispiel ist die parallele binäre Suche . Das Problem ist , dass dieses Problem polylogarithmischen Zeitkomplexität auch für hat p = 1. Jeder sequentiellen Algorithmus höchstens logarithmische Zeit im schlimmsten Fall erfordert , ist in N C unabhängig von ihrer parallelen Machbarkeit!NCpNC
Nun können wir endlich erklären, warum vollständige Probleme die am schwersten parallelisierbaren Probleme sind. Bei einem P- vollständigen Problem Q ist es sehr unwahrscheinlich, dass ein effizienter Parallelalgorithmus existiert: Wenn ein solcher Parallelalgorithmus mit der Zeitkomplexität O ( ( l o g n ) k ) existieren würde , würde die parallele Berechnungsthese die Existenz implizieren eines sequentiellen Algorithmus mit Raumkomplexität O ( ( l o g n ) k ' ) für das gleiche Problem. Da Q ein P istPPQ.O ( ( l o gn )k)O ( ( l o gn )k′)Q.P-komplette Problem Dies wiederum impliziert wird , dass jedes Problem in in Poly-log Raum gelöst werden können: ( P ∩ P O L Y L A G S P A C E ) = P . Wie Sie bereits wissen, glauben wir stattdessen, dass ( P ∩ P O L Y L O G S P A C E ) ⊂ P , obwohl wir dies noch nicht beweisen können.P( S.∩ PO L YL O G SPA CE) = P( S.∩ PO L YL O G SPA CE) ⊂ P
Eine letzte Bemerkung zur Polynomprozessoranforderung. Nun, das ist eine theoretische Aussage. In der Praxis: Eine Prozessoranforderung, die schneller als die Problemgröße wächst, ist möglicherweise nicht wirklich nützlich.