Existe-t-il un scénario dans lequel une instance d'application est exécutée sur plusieurs ordinateurs?

StackOverflow https://stackoverflow.com/questions/439714

Question

Nous savons qu’une seule instance d’application peut utiliser plusieurs cœurs et même plusieurs processeurs physiques. Avec l'informatique en nuage et en cluster, ou un autre scénario spécial, je ne sais pas si une position unique peut être exécutée sur plusieurs ordinateurs ou sur plusieurs instances de système d'exploitation.

Cela est important pour moi car, en plus d'être considéré comme une mauvaise programmation, j'utilise des variables (comme en C #) (globales), et mon programme aura probablement un comportement inattendu si ces variables devenir partagés entre ordinateurs.

Mettre à jour Je serai plus précis: j'écris une application .NET qui comporte une variable qui compte le nombre de connexions IP actives, pour éviter que le nombre de connexions ne se produise. dépasser une limite par ordinateur. Je me demande si je déploierai cette application sur un hôte cloud-computing, si j'aurai une instance de la variable par ordinateur.

Était-ce utile?

La solution

Si vous voulez apprendre à réaliser un tel scénario (une instance unique sur plusieurs ordinateurs), je pense que vous devriez lire des articles sur MPI .

  

il est devenu une norme de facto pour   la communication entre les processus qui   modéliser un programme parallèle fonctionnant sur un   système de mémoire distribuée.

En ce qui concerne vos inquiétudes: vous devrez évidemment modifier consciemment votre programme pour qu’il ne soit exécuté qu’en une seule fois sur plusieurs ordinateurs. Sinon, aucun partage de cours n'a lieu, et Timide écrit , il n'y a pas de quoi s'inquiéter. Ce genre de choses ne se produirait pas automatiquement.

Autres conseils

Quel environnement de programmation (langage) utilisez-vous? Il devrait définir exactement ce que " statique " veux dire. Très probablement, cela ne permet pas le partage d'informations entre différents ordinateurs sauf par des canaux explicites tels que MPI ou RPC.

Toutefois, des environnements de haut niveau abstraits peuvent être conçus pour masquer le concept de "fonctionnement sur plusieurs ordinateurs". de vous entièrement. Il est envisageable de concevoir une machine virtuelle pouvant fonctionner sur un cluster et partageant des variables statiques entre différentes machines physiques - mais dans ce cas, votre programme s'exécute sur une seule machine virtuelle, qu'il soit exécuté sur une ou plusieurs machines physiques ou non. ne fait aucune différence.

Si vous ne pouvez même pas imaginer une situation dans laquelle cela se produit, pourquoi vous en inquiétez-vous?

Habituellement, cela pourrait se produire dans un scénario impliquant une RPC quelconque.

Eh bien oui, il y a distcc. C'est le compilateur GCC distribué.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top