Tout problème P complet, a peu de chances d'avoir un algorithme parallèle efficace. Pourquoi ?
L'existence de problèmes P complets est l'indice le plus important que (P∩POLYLOGSPACE)≠P. La question est alors de savoir pourquoi cette conjecture est pertinente pour le calcul parallèle? Commençons par les ressources utilisées dans un calcul. Pour l'informatique séquentielle: temps et espace; pour le calcul parallèle: temps et matériel (nombre de processeurs). Y a-t-il une relation? Oui! Espace séquentiel time temps parallèle; Temps séquentiel hardware matériel parallèle. La correspondance entre l'espace séquentiel et le temps parallèle semble indépendante du modèle de calcul parallèle adopté; cela conduit à la thèse de calcul parallèle suivante, qui n'est pas prouvée.
(Chandra et Stockmeyer) Chaque calcul d'une MT avec complexité spatiale peut être simulé dans un modèle de calcul parallèle dans le temps T ( n ) = O ( S ( n ) O ( 1 ) ) et chaque calcul d'un calcul parallèle le modèle à complexité temporelle T ′ ( n ) peut être simulé par une MT à complexité spatiale S ′ ( n ) = O ( T ′ ( n ) OS(n)T(n)=O(S(n)O(1))T′(n).S′(n)=O(T′(n)O(1))
La classe des problèmes solubles séquentiellement dans l' espace polynôme est et l'ensemble des problèmes solubles en temps polynomial est P .Comme P S P A C E est considéré comme une classe beaucoup plus de problèmes que P , la thèse quantifie l'amélioration effective rendue possible par le parallélisme. Une conséquence de cette thèse est qu'une PRAM peut résoudre des problèmes complets en N P en temps polynomial… Malheureusement non! La thèse du calcul parallèle implique que nous pouvons réellement traiter des problèmes appartenant à P S P A C EPSPACEPPSPACEPNPPSPACE… Mais cela nécessite un nombre exponentiel de processeurs! Un compromis espace-temps fonctionne: le temps exponentiel sur le modèle de calcul séquentiel est transformé en un nombre exponentiel de processeurs sur le modèle de calcul parallèle, tandis que l'espace polynomial sur le modèle de calcul séquentiel est transformé en un temps polynomial sur le parallèle modèle informatique.
Ce compromis est plus facile à comprendre si nous essayons de limiter le temps à la fois parallèle et matériel parallèle: si le modèle de calcul parallèle a un nombre polynôme de processeurs, la classe des problèmes résoluble en temps polynomial parallèle est . Si nous limitons le nombre de processeurs à un polynôme, nous pouvons améliorer les performances d'une machine séquentielle, mais pas plus qu'un facteur polynomial. Ainsi, nous pouvons réduire le degré du polynôme représentant la complexité temporelle, mais nous ne pouvons pas utiliser le parallélisme pour réduire les coûts exponentiels aux coûts polynomiaux.P
Les problèmes résolus en parallèle avec la complexité polynomiale sont les problèmes appartenant à . La contrainte polynomiale sur le nombre de processeurs conduit à un modèle de calcul parallèle équivalent à TM. Il y a deux considérations pratiques importantes: quel nombre polynomial de processeurs est acceptable / abordable? En pratique, le nombre polynomial de processeurs est censé être linéaire ou proche. Quel temps sous-polynomial est réalisable? Il s'est avéré que presque tous les problèmes réalisables hautement parallèles peuvent atteindre un temps parallèle polylogarithmique. En parallèle, une complexité temporelle logarithmique dans la longueur d'entrée représente un calcul parallèle efficace. Un algorithme parallèle est considéré comme efficace si, étant donné un nombre polynomial de processeurs, sa complexité temporelle est polylogarithmique.P
Étant donné un problème où k et h sont des constantes, la thèse du calcul parallèle implique l'existence d'un algorithme parallèle pour R avec complexité temporelle O ( ( l o g n ) k ′ ) où k ′R ∈ TjeME_ SPA CETM( nk, ( l o gn )h)khRO((logn)k′)k′est une constante. La comparaison entre le temps séquentiel et le temps parallèle permet de classer comme un problème hautement parallélisable (dans une perspective temporelle).R
De la thèse du calcul parallèle, il s'ensuit que est la classe de problèmes hautement parallélisable. P O L Y L O G S P A C E ne contient pas de problèmes complets en ce qui concerne les réductions d'espace logarithmique; cela implique P O L Y L O G S P A C E ≠ P . Il paraît quePOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACE≠P
- POLYLOGSPACE⊄P
- P⊄POLYLOGSPACE
contient les problèmes qui peuvent être résolus en temps polynomial en utilisant l'espace polylogarithmique. Les problèmes P -complets appartiennent probablement à P - ( P ∩ P O L Y L O G S P A C E ) .P∩POLYLOGSPACEPP−(P∩POLYLOGSPACE)
(classe de Nick - ainsi appelée en l'honneur de Nicholas Pippenger, le premier à l'identifier et à le caractériser en 1979) est la classe de problèmes qui peuvent être résolus en temps polylogarithmique (c'est-à-dire avec la complexité temporelle O ( ( l o g n ) k ) ) avec un nombre polynomial de processeurs (Ie, délimité par O ( f ( n ) ) pour une fonction polynomiale f où n est la taille du problème) La thèse du calcul parallèle implique N C ⊂ ( P ∩ P ONCO((logn)k))O(f(n))fn .NC⊂(P∩POLYLOGSPACE)
Cependant, malheureusement, par définition, comprend également de nombreux problèmes qui ne sont pas efficacement parallélisables. L'exemple le plus tristement célèbre est la recherche binaire parallèle . Le problème est que ce problème a une complexité temporelle polylogarithmique même pour p = 1. Tout algorithme séquentiel nécessitant au plus le temps logarithmique dans le pire des cas est en N C quelle que soit sa faisabilité parallèle!NCpNC
Maintenant, nous pouvons enfin expliquer pourquoi les problèmes complets sont les problèmes parallélisables les plus difficiles. Étant donné un P problème -complete Q , il est très peu probable l'existence d'un algorithme parallèle efficace: si un tel algorithme parallèle existerait avec la complexité du temps O ( ( l o g n ) k ) , la thèse de calcul parallèle impliquera l'existence d'un algorithme séquentiel de complexité spatiale O ( ( l o g n ) k ′ ) pour le même problème. Puisque Q est un PPPQO((logn)k)O((logn)k′)QP-complete problème à son tour , impliquera que tous les problèmes de peut être résolu dans l' espace poly-log: ( P ∩ P O L Y L O G S P A C E ) = P . Comme vous le savez déjà, nous pensons plutôt que ( P ∩ P O L Y L O G S P A C E ) ⊂ P , même si nous ne sommes pas encore en mesure de le prouver.P(P∩POLYLOGSPACE)=P(P∩POLYLOGSPACE)⊂P
Une dernière observation, au sujet de l'exigence du processeur polynomial. Eh bien, c'est une déclaration théorique. En pratique: une exigence de processeur qui croît plus vite que la taille du problème peut ne pas être vraiment utile.