Les systèmes distribués sont-ils un concept complètement indépendant par rapport au multiprocesseur symétrique (puisque dans la distribution, nous avons une mémoire/disque individuelle par CPU alors que dans le symétrique, nous avons plusieurs CPU utilisant le même stockage mémoire/disque) ?
Réponses
Trop de publicités?Je ne dirais pas qu'ils sont des concepts complètement différents, car il est possible d'avoir une mémoire partagée dans les systèmes distribués (en utilisant la mémoire partagée distribuée), et plusieurs processus s'exécutant sur la même machine ne partagent pas leur espace d'adressage. Ainsi, les deux environnements peuvent exister sur les deux architectures, mais avec un coût. En général, la mémoire partagée est plus facile à programmer mais plus difficile à construire (du point de vue matériel), et les systèmes distribués sont plus difficiles à programmer mais plus faciles à construire.
Donc, les concepts différents sont en fait la mémoire partagée et la mémoire non partagée, du moins du point de vue de la programmation.
L'informatique distribuée et le SMP ne sont pas les mêmes, bien que l'ID puisse utiliser le SMP. L'ID est une façon de paralléliser des charges de travail-données indépendantes vers des systèmes différents hétérogènes et peu couplés.
Un système SMP est une machine avec des unités centrales et de la mémoire fortement couplées, bénéficiant d'un accès mémoire à faible latence et partageant des données entre les unités centrales pendant que les calculs se déroulent.
Exemple d'informatique distribuée :
Einstein@Home est un projet essayant de trouver des ondes gravitationnelles à partir de données expérimentales collectées à partir de grands interféromètres laser. Les données à traiter sont assez indépendantes, donc distribuer les données à plusieurs machines différentes n'est pas un problème.
- Stockage : Aucun stockage partagé nécessaire.
- Mémoire partagée : Non nécessaire, puisque les routines FFT utilisées pour trouver les résultats désirés travaillent sur des morceaux de données indépendants.
- Distribution des charges de travail : Se fait sur un ensemble de machines hétérogènes.
Exemple de multiprocesseur symétrique :
Exécuter des calculs sur de grandes tables/matrices nécessite une certaine proximité des nœuds de calcul (« CPU » / « nœuds DC ») pour pouvoir terminer le calcul. Si le résultat d'un calcul dépend du résultat d'un nœud « voisin », le paradigme de l'informatique distribuée ne vous sera pas très utile.
- Stockage : Doit être partagé et accessible le plus rapidement possible.
- Mémoire partagée : Nécessaire pour échanger des résultats intérimaires.
- Distribution des charges de travail : Se fait dans une boucle for-compound ; le programmeur doit veiller à concevoir ses boucles de manière à ce que les calculs connexes se produisent presque en même temps.
J'espère que cela vous aide... Alex.