Comme l'a souligné @Raphael, l'informatique distribuée est un sous-ensemble de l'informatique parallèle; Parallèlement, l'informatique parallèle est un sous-ensemble de l'informatique concurrente.
La simultanéité fait référence au partagedes ressources dans le même laps de temps. Par exemple, plusieurs processus partagent le même CPU (ou les mêmes cœurs), partagent de la mémoire ou un périphérique d'E / S. Les systèmes d'exploitation gèrent les ressources partagées. Les machines multiprocesseurs et les systèmes distribués sont des architectures dans lesquelles le contrôle de la concurrence joue un rôle important. La simultanéité se produit tant au niveau du matériel que du logiciel. Plusieurs périphériques fonctionnent en même temps, les processeurs ont un parallélisme interne et travaillent sur plusieurs instructions simultanément, les systèmes ont plusieurs processeurs et les systèmes interagissent via la communication réseau. La simultanéité se produit au niveau des applications dans la gestion des signaux, dans le chevauchement des E / S et du traitement, dans la communication et dans le partage des ressources entre processus ou entre threads dans le même processus.
Deux processus (ou threads) s'exécutant sur le même système, de sorte que leur exécution soit imbriquée dans le temps, sont simultanés: les processus (threads) partagent la ressource CPU. J'aime la définition suivante: deux processus (threads) s'exécutant sur le même système sont simultanés si et seulement si le deuxième processus (thread) commence à s'exécuter alors que le premier processus (thread) n'a pas encore terminé son exécution.
La simultanéité devient parallélisme lorsque les processus (ou les threads) s'exécutent sur différentes CPU (ou cœurs du même CPU). Le parallélisme dans ce cas n’est pas «virtuel» mais «réel».
Lorsque ces processeurs appartiennent à la même machine, nous appelons le calcul "parallèle"; lorsque les processeurs appartiennent à des machines différentes , peuvent être dispersés géographiquement, on parle de calcul "distribué".
Par conséquent, l'informatique distribuée est un sous-ensemble de l'informatique parallèle, qui est un sous-ensemble de l'informatique simultanée.
Bien entendu, il est vrai qu'en général, l'informatique parallèle et l'informatique distribuée sont considérées comme différentes. L'informatique parallèle est liée à des applications étroitement couplées et est utilisée pour atteindre l'un des objectifs suivants:
- Résoudre les problèmes de calcul intensif plus rapidement;
- Résoudre des problèmes plus importants dans le même laps de temps;
- Résolvez les problèmes de même taille avec une précision accrue dans le même temps.
TX5 xTXXmais avec une plus grande précision en utilisant un modèle beaucoup plus complexe, plus d'équations, de variables et de contraintes). Le calcul parallèle peut utiliser la mémoire partagée, la transmission de messages ou les deux (par exemple, un noeud interne à mémoire partagée utilisant OpenMP, un noeud intermédiaire de transmission de messages utilisant MPI); il peut également utiliser des accélérateurs GPU. Étant donné que l'application fonctionne sur un superordinateur parallèle, nous ne prenons généralement pas en compte des problèmes tels que les pannes, les partitions réseau, etc., car la probabilité de ces événements est pratiquement nulle. Cependant, les grandes applications parallèles, telles que les simulations de changement climatique, qui peuvent durer plusieurs mois, concernent généralement les défaillances et utilisent le mécanisme de contrôle / redémarrage pour éviter de recommencer la simulation dès le début en cas de problème.
L'informatique distribuée est liée aux applications à couplage lâche, dans lesquelles l'objectif (pour le calcul intensif ) est de résoudre des problèmes autrement trop importants ou dont l'exécution peut être divisée en différents composants qui pourraient bénéficier d'une exécution sur différentes architectures. Il existe plusieurs modèles, notamment client-serveur, poste à poste, etc. Les problèmes liés à l'informatique distribuée, tels que la sécurité, les défaillances, la partition réseau, etc. doivent être pris en compte au moment de la conception, car dans ce contexte, les défaillances sont la règle. pas l'exception.
Enfin, l'informatique en grille et en nuage sont deux sous-ensembles de l'informatique distribuée. Le paradigme de l'informatique en grille est apparu comme un nouveau domaine distingué de l'informatique distribuée traditionnelle en raison de son accent mis sur le partage de ressources à grande échelle et les applications innovantes hautes performances. Les ressources partagées appartiennent généralement à plusieurs domaines administratifs différents (appelées organisations virtuelles ). Le Grid Computing, bien que très utilisé par les scientifiques au cours de la dernière décennie, est traditionnellement difficile pour les utilisateurs ordinaires. Le cloud computing tente de combler le fossé en permettant aux utilisateurs ordinaires d’exploiter facilement plusieurs machines co-localisées dans le même centre de données et non réparties géographiquement, grâce à l’utilisation de machines virtuelles.qui peuvent être assemblés par les utilisateurs pour exécuter leurs applications. En raison du matériel, en particulier du manque habituel d'interconnexion réseau hautes performances (Infiniband, etc.), les clouds ne sont pas destinés à l'exécution d'applications MPI parallèles. Les applications distribuées exécutées sur des nuages sont généralement implémentées pour exploiter le paradigme Map / Reduce. En passant, beaucoup de gens voient Map / réduire comme un modèle de flux de données parallèle.