È improbabile che qualsiasi problema completo abbia un algoritmo parallelo efficiente. Perché ?P
L'esistenza di problemi Completa è la più importante indizio che . La domanda allora è: perché questa congettura è rilevante per il calcolo parallelo? Cominciamo con le risorse utilizzate in un calcolo. Per il calcolo sequenziale: tempo e spazio; per il calcolo parallelo: tempo e hardware (numero di processori). C'è una relazione? Sì! Spazio sequenziale ↔ tempo parallelo; Tempo sequenziale ↔ hardware parallelo. La corrispondenza tra spazio sequenziale e tempo parallelo sembra essere indipendente dal modello di calcolo parallelo adottato; questo porta alla seguente tesi di calcolo parallela non dimostrata.P(P∩POLYLOGSPACE)≠P
(Chandra e Stockmeyer) Ogni calcolo di una TM con complessità spaziale può essere simulato in un modello di calcolo parallelo nel tempo e ogni calcolo di un modello di calcolo parallelo con complessità temporale può essere simulato da una TM con complessità spaziale .T ( n ) = O ( S ( n ) O ( 1 ) ) T ′ ( n ) S ′ ( n ) = O ( T ′ ( n ) O ( 1 ) )S(n)T(n)=O(S(n)O(1))T′(n)S′(n)=O(T′(n)O(1))
La classe di problemi risolvibili in sequenza nello spazio polinomiale è e l'insieme di problemi risolvibili in tempo polinomiale è Poiché è considerato una classe di problemi molto più ampia di , la tesi quantifica l'effettivo miglioramento reso possibile dal parallelismo. Una conseguenza di questa tesi è che una PRAM può risolvere completi in tempo polinomiale ... Purtroppo no! La tesi di calcolo parallela implica che possiamo effettivamente affrontare i problemi appartenenti aP P S P A C E P N P P S P A C EPSPACEPPSPACEPNPPSPACE... ma questo richiede un numero esponenziale di processori! Sta funzionando un compromesso spazio-tempo: il tempo esponenziale sul modello di calcolo sequenziale viene trasformato in un numero esponenziale di processori sul modello di calcolo parallelo, mentre lo spazio polinomiale sul modello di calcolo sequenziale viene trasformato in un tempo polinomiale sul parallelo modello di calcolo.
Questo trade-off è più facile da capire se cerchiamo di limitare sia il tempo parallelo e hardware in parallelo: se il modello di calcolo parallelo ha un numero polinomiale di processori, allora la classe di problemi risolvibili in tempo polinomiale parallelo è . Se limitiamo il numero di processori a un polinomio, possiamo migliorare le prestazioni di una macchina sequenziale, ma non più di un fattore polinomiale. Quindi possiamo ridurre il grado del polinomio che rappresenta la complessità temporale, ma non siamo in grado di usare il parallelismo per ridurre i costi esponenziali ai costi polinomiali.P
I problemi risolti in parallelo con complessità tempo polinomiale sono quei problemi appartenenti a . Il vincolo polinomiale sul numero di processori porta a un modello di calcolo parallelo equivalente a TM. Vi sono due importanti considerazioni pratiche: quale numero polinomiale di processori è accettabile / conveniente? In pratica, il numero polinomiale di processori dovrebbe essere lineare o vicino. Quale tempo subpolinomiale è raggiungibile? Si è scoperto che quasi tutti i problemi possibili altamente paralleli possono raggiungere tempi paralleli pollogaritmici. Parallelamente, una complessità temporale logaritmica nella lunghezza dell'input rappresenta un calcolo parallelo efficiente. Un algoritmo parallelo è considerato efficace se, dato un numero polinomiale di processori, la sua complessità temporale è pollogaritmica.P
Dato un problema cui e sono costanti, la tesi di calcolo parallela implica l'esistenza di un algoritmo parallelo per con complessità temporale dove è una costante. Il confronto tra tempo sequenziale e tempo parallelo consente di classificare come un problema altamente parallelizzabile (dal punto di vista temporale).k h R O ( ( l o g n ) k ′ ) k ′ RR∈TIME_SPACETM(nk,(logn)h)khRO ( ( l o gn )K')K'R
Dalla tesi di calcolo parallela, ne consegue che è la classe di problemi altamente parallelizzabili. non contiene problemi completi per quanto riguarda le riduzioni dello spazio di registro; questo implica . Sembra cheP O L Y L O G S P A C E P O L Y L O G S P A C E ≠ PPO 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
P P - ( P ∩ P O L Y L O G S P A C E )P∩ PO L YL O G SPA CE contiene i problemi che possono essere risolti nel tempo polinomiale usando lo spazio pollogaritmico. problemi completi probabilmente appartengono a .PP- ( P∩ PO L YL O G SPA CE)
O ( ( l o g n ) k ) ) O ( f ( n ) ) f n N C ⊂ ( P ∩ P O L Y L O G S P A C E )NC (la classe di Nick - così chiamata in onore di Nicholas Pippenger, la prima a identificarla e caratterizzarla nel 1979) è la classe di problemi che possono essere risolti nel tempo pollogaritmico (cioè con complessità temporale con un numero polinomiale di processori (Ie, limitato da per alcune funzioni polinomiali dove è la dimensione del problema) La tesi di calcolo parallela implica .O ( ( l o gn )K) )O ( f( n ) )fnNC⊂ ( P∩ PO L YL O G SPA CE)
Tuttavia, sfortunatamente per definizione include anche molti problemi che non sono parallelamente efficienti. L'esempio più famigerato è la ricerca binaria parallela . Il problema è che questo problema ha una complessità temporale pollogaritmica anche per = 1. Qualsiasi algoritmo sequenziale che richiede al massimo tempo logaritmico nel peggiore dei casi è in indipendentemente dalla sua fattibilità parallela!p N CNCpNC
Ora possiamo finalmente spiegare perché i problemi completi di sono i problemi parallelizzabili più difficili. Dato un problema incompleto , è molto improbabile l'esistenza di un algoritmo parallelo efficiente: se un tale algoritmo parallelo esistesse con complessità temporale , allora la tesi del calcolo parallelo implicherà l'esistenza di un algoritmo sequenziale con complessità spaziale per lo stesso problema. Poiché è un problema -complete questo a sua volta implica che ogni problema può essere risolto in spazio poli-log: . Come già sapete, invece crediamo cheP Q O ( ( l o g n ) k ) O ( ( l o g n ) k ′ ) Q P P ( P ∩ P O L Y L O G S P A C E ) = P ( P ∩ P O L Y L O G S P A C E )PPQO ( ( l o gn )K)O ( ( l o gn )K')QPP( P∩ PO L YL O G SPA CE) = P( P∩ PO L YL O G SPA CE) ⊂ P , anche se non siamo ancora in grado di dimostrarlo.
Un'ultima osservazione, sul requisito del processore polinomiale. Bene, questa è un'affermazione teorica. In pratica: un requisito del processore che cresce più velocemente della dimensione del problema potrebbe non essere davvero utile.