Ca peut etre beaucoup de chose le calcul distribuer. Je connais pas mal de gens qui utilise le bouquin de tanenbaum [1].
Quelques differences:
-dans un programme MPI, tu calcules avec differentes machines, mais les machines sont clairement identifie et numerote.
-Sur le web, peut etre tu ne connais que quelques autres machines avec lesquelles tu parles, mais si on te donne le nom d'une autre machine, alors tu peux communiquer avec elle
-En reseau wireless ad hoc, tu as access qu'au machine qui sont autour de toi. Et si tu veux communiquer avec une machine qui est plus loin, bah il va falloir router.
C'est pour ca que souvent les problemes de distribution sont presente au niveau algorithmique, parcequ'il y a une tonne de systeme reelle qui sont tous different, mais qui partage les memes principes.
J'ai l'impression que tu t'interesse plutot aux deuxieme cas. Des reponses concretes a tes questions:
Le programme qui sera utilisé sera le même sur toutes les machines ? est ce que ce programme une fois lancé se comportera en tant que serveur selon des conditions (ex: aucune autre machine découverte)?
Le programme est generalement le meme sur toutes les machines. Mais pas forcement, tu pourrais par exemple avec des noeuds de calcul, et des noeuds de stockage.
Le but d'un système distribué est d'être lancé sur plusieurs machines, donc si je fais mes tests sur une seule machine et que le programme communique sur le port disons 8888, un seul programme pourra être en écoute sur ce port, donc il faut obligatoirement passer par de l'udp pour ne pas bloquer les ports ?
Si tu es sur une seule machine, tu n'utilises pas IP pour faire la communications. Mais si tu veux vraiemtn faire ca sur une seule machine, tu peux aussi ajouter plusieurs addresse IP locale a ta mchine et faire que chaque programme utilise une ip differente
Comment les machines se repèrent entre elles, elles scannent tous les ports sur le réseau en envoyant "hello tu es l'un des notres?" dès qu'il y en a un ouvert ?
Bah, ca c'est le probleme de decouverte en reseau distribue. En general, tu connais au moins une machine un peu central pour initialiser la connexion. Sur un reseau IP, tu connais ta passerelle, et le nom d'un serveur DNS. Dans bittorrent, tu connais le tracker qui te donne le nom d'autres machines.
[1] https://books.google.com/books/about/Distributed_Systems.html?id=DL8ZAQAAIAAJ&source=kp_cover