Au cours des dernières années, quelques articles ont circulé en ligne sur la construction d’un groupe d’ordinateurs à la maison, par exemple ici .
Le Pi me semble être une bonne plate-forme pour construire / tester ce genre de chose en raison de son faible coût; les guides "génériques" comme ce transfert sur le Pi devraient-ils être assez faciles, ou y a-t-il quelque chose que je devrais savoir en particulier lorsque je tente un tel projet?
Réponses:
Je suggère de regarder Dispy - le module de calcul distribué python.
Pour exécuter un programme sur un certain nombre de Raspberry Pi (nœuds) à partir d'un PC (serveur - en supposant que l'IP est
192.168.0.100
):Installer un système d'exploitation sur chaque RasPi
Connectez chaque RasPi à votre réseau. Recherchez l'adresse IP (si dynamique) ou configurez des adresses IP statiques.
(Supposons que vous avez trois nœuds et que leurs adresses IP sont
192.168.0.50-52
)Configurez Python (si ce n'est déjà fait), installez-le
dispy
, puis exécutez-ledispynode.py -i 192.168.0.100
sur chaque RasPi. Cela indiquera à dispynode de recevoir les informations de travail du serveur.Sur le PC (le serveur), installez
dispy
, puis exécutez le code python suivant:Vous pouvez également remplacer
/some/program
par une fonction python - par exemplecompute
.Vous pouvez également inclure des dépendances telles que des objets python, des modules et des fichiers (qui
dispy
seront transférés vers chaque nœud) en ajoutantdepends=[ClassA, moduleB, 'file1']
la source
Vous devez être conscient du travail qui a déjà été fait - il existe même un nom pour un cluster de RasPi Boxen. Le Wiki Linux Embarqué dit qu'un Bramble est défini comme "un cluster Beowulf de périphériques Raspberry Pi". Raspberry Pi Homebrew a un certain nombre de messages sur Brambles , et voir aussi la Fondation propre forum.
la source
Certains membres de l’Université de Southampton ont créé un cluster et rédigé un aperçu détaillé de leur travail à l’ adresse http://www.southampton.ac.uk/~sjc/raspberrypi/ .
la source
C'est tout à fait possible, mais le plus gros problème est la possibilité d'atteindre le but recherché. C’est une idée qui, à mon avis, ne serait pas seulement réalisable, mais utile, tout comme l’idée du calcul parallèle portable. En ce qui concerne les spécificités, les langages de codage tels que FORTRAN et C ++ feront de leur mieux.
Consultez beowulf.org pour plus d'informations sur l'informatique en cluster
la source
Ceci est la réponse au message de Guido Garcia ci-dessus concernant "dispy" - je ne vois pas comment répondre à son message.
Lorsqu'un programme ('/ bin / ls') est distribué avec 'dispy' pour une exécution en parallèle, ce programme sur la machine client est transféré vers chacun des nœuds (vers '/ tmp'). Ceci afin que le programme développé par l'utilisateur sur la machine cliente soit transféré sans NFS ou un répertoire partagé. Cela fonctionne avec les programmes binaires uniquement lorsque les nœuds et les architectures client sont compatibles. Dans votre cas, je devine que l'architecture du client est différente de celle des nœuds distants et qu'un nœud ne peut pas exécuter le binaire '/ bin / ls' transféré du client. Si vous souhaitez exécuter / bin / ls sur chaque nœud, il peut être plus facile d'écrire une fonction ou un programme Python pour imprimer le répertoire (par exemple, en utilisant os.listdir) et le distribuer à la place de l'exécutable binaire.
la source
Il y a aussi http://pi.interworx.com si vous voulez un panneau de commande complet avec. Sur cette page, des instructions leur sont données sur la réplication, mais vous devrez faire preuve de patience, car ce sous-domaine s'exécute à partir d'un cluster Rasberry Pi. Voici une photo au cas où il tombe:
http://www.facebook.com/photo.php?fbid=596262440393836&set=a.244167858936631.60071.170159826337435&type=1
la source