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

La programmation distribuée est une forme de programmation parallèle ou d’informatique parallèle. La programmation parallèle implique des ordinateurs et des unités informatiques au sein d'ordinateurs travaillant simultanément sur un problème particulier, tel que la prévision du temps qu'il fera. Les unités de calcul peuvent être très proches et coordonnées ou peuvent être séparées. Lorsque les unités de calcul sont séparées, on parle de programmation distribuée. Dans un tel scénario, très souvent, les unités de calcul diffèrent les unes des autres, de même que la configuration du système d'exploitation et du réseau, ce qui rend la programmation de l'activité de calcul particulièrement difficile.

Lors de la résolution d'un problème de manière distribuée, le programme doit être scindé afin que certaines parties du programme puissent être exécutées sur les différentes unités de calcul. ces parties sont souvent appelées "processus". Les processus s'exécutent simultanément mais doivent communiquer les entrées et les résultats les uns aux autres. Si les processus s'exécutent sur un matériel différent, tel qu'une partie sous Intel et une autre sous SUN, les programmes doivent être compilés et optimisés différemment.

Une façon de résoudre un problème suffisamment difficile consiste à décomposer les parties en entrée et à faire en sorte que les différentes unités de calcul travaillent sur les différentes parties en utilisant le même algorithme, le même ensemble de règles ou d'étapes pour la résolution de problèmes. Par exemple, pour craquer un génome de 10 000 paires, les 1 000 premières paires pourraient être attribuées à la première unité de calcul, les 1 000 autres paires attribuées à la deuxième unité de calcul, etc., toutes utilisant le même algorithme. Avec la programmation distribuée, l'un des avantages est que les différentes unités de calcul peuvent exécuter différents algorithmes pour résoudre le même problème, ce qui conduit à une solution nettement meilleure. Cela revient à résoudre un casse-tête avec certaines personnes assemblant la bordure tandis que d'autres assemblent des morceaux d'une couleur particulière.

La coordination des processus informatiques distribués peut être une tâche particulièrement difficile. Certaines unités informatiques peuvent tomber en panne ou être interrompues pour traiter un autre travail. 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é de calcul ou de certains messages peut entraîner le blocage de l’ensemble des ordinateurs.

Dans la programmation distribuée, un processus peut être le processus de contrôle, consistant essentiellement à exécuter le travail par les autres processus, ou bien tous les processus peuvent fonctionner de manière homologue à homologue, aucun processus n'étant le "maître". Parmi les exemples de problèmes rencontrés avec la programmation distribuée, citons l'analyse de données géologiques pour des ressources telles que le pétrole, la modélisation de protéines et de molécules biologiques, la fissuration de messages codés et les simulations militaires. Le projet SETI consistant à rechercher une vie extra-terrestre intelligente à partir des messages radio reçus par la Terre est peut-être l'un des exemples les plus connus.

DANS D'AUTRES LANGUES

Cet article vous a‑t‑il été utile ? Merci pour les commentaires Merci pour les commentaires

Comment pouvons nous aider? Comment pouvons nous aider?