Qu'est-ce que la programmation distribuée?

La programmation distribuée est une forme de programmation parallèle ou de calcul parallèle. La programmation parallèle implique des ordinateurs et des unités informatiques dans des ordinateurs travaillant simultanément sur un problème particulier, comme la prévision de la météo de demain. Les unités informatiques peuvent être étroitement situées et coordonnées ou peuvent être situées à part. Lorsque les unités informatiques sont séparées, elle est appelée programmation distribuée. Dans un tel scénario, très souvent les unités informatiques diffèrent les unes des autres, et la configuration du système d'exploitation et du réseau diffère également, ce qui rend la programmation de l'activité informatique particulièrement difficile.

Lors de la résolution d'un problème de manière distribuée, le programme doit être divisé afin que les parties du programme puissent fonctionner sur les différentes unités de calcul; Ces pièces sont souvent appelées «processus». Les processus s'exécutent simultanément mais doivent communiquer des entrées et des résultats les uns aux autres. Si les processus fonctionnent sur différents matériels, comme une partie exécutée sur Intel et Anotson courir sur le soleil, les programmes doivent être compilés et optimisés différemment.

Une façon de résoudre un problème suffisamment difficile est de briser les pièces d'entrée et de faire fonctionner les différentes unités informatiques sur les différentes parties en utilisant le même algorithme, l'ensemble des règles ou des étapes pour la résolution de problèmes. Par exemple, pour casser un génome de 10 000 paires, les 1 000 premières paires pourraient être attribuées à la première unité informatique, les 1 000 secondes de la deuxième unité informatique et ainsi de suite, tous utilisant le même algorithme. Avec la programmation distribuée, un avantage est que les différentes unités informatiques pourraient exécuter différents algorithmes pour résoudre le même problème, conduisant ainsi à une solution nettement meilleure. Cela s'apparente à résoudre un puzzle avec certaines personnes reconstituant la bordure tandis que d'autres ont rassemblé des pièces d'une couleur particulière.

Coordination de l'informatique distribuéeLes processus peuvent être une tâche particulièrement difficile. Certaines unités informatiques peuvent échouer ou être interrompues pour gérer d'autres travaux. Les messages contenant les entrées ou les résultats du calcul peuvent ne pas atteindre leurs destinations. Si les programmes sont écrits de manière naïve, la perte d'une unité informatique ou de certains messages peut entraîner la pendaison de l'ensemble des ordinateurs.

Dans la programmation distribuée, un processus pourrait être le processus de contrôle, effectuant essentiellement le travail par les autres processus, ou, tous les processus pourraient fonctionner de manière entre pairs sans aucun processus étant le «maître». Certains exemples de problèmes tentés par la programmation distribuée comprennent l'analyse des données géologiques pour des ressources telles que le pétrole, la modélisation des protéines et les molécules biologiques, la fissuration des messages codés et les simulations militaires. Le projet SETI pour rechercher une vie extraterrestre intelligente à partir des messages radio reçus par la Terre est peut-être l'un des exemples les plus connus.

DANS D'AUTRES LANGUES