quel est l'intérêt d'un cluster de Raspberry Pi

Quelle est l’Utilité d’un Cluster de Raspberry Pi ?

Les clusters de Raspberry Pi sont un sujet à la mode sur Internet (vous trouverez sans arrêt des tests et des photos incroyables).
J’ai déjà fait un tutoriel il y a quelques mois expliquant comment créer un cluster basique avec deux Raspberry Pi, mais la question la plus fréquente était : « À quoi ça sert en fait ? ».
Voici donc la réponse 🙂

Quel est l’intérêt d’un cluster de Raspberry Pi ?
Le but d’un cluster de Raspberry Pi est d’additionner les performances de plusieurs appareils dans une même pile virtuelle.
Construire un cluster est un projet intéressant, mais cela peut aussi être utile pour certaines applications nécessitant de nombreux cœurs de CPU.

Pour aller plus loin, je vais démarrer en expliquant la logique qui se cache derrière un cluster de Raspberry Pi, puis je vous donnerai quelques exemples inspirants d’application concrète.

Dans quel cas un cluster de Raspberry Pi est utile ?

Oui bien sur, le Raspberry Pi ne coûte pas très cher, mais les performances sont quand même loin d’être optimales.
Alors pourquoi devrait-on s’intéresser aux clusters de Raspberry Pi ?

Plus de RAM

La première idée peut être de créer un cluster afin d’avoir plus de RAM.
Cela peut être une bonne idée si votre application nécessite beaucoup de mémoire, mais le coût total ne sera pas très rentable.

Si vous achetez 4 Raspberry Pi 4 8 Go cela va faire un cluster assez cher au final, étant donné le prix actuel de ces modèles (lien Amazon).
Une solution basée sur les compute module sera tout de même bien moins chère, d’ailleurs il y en a même un de 32 Go maintenant (voir le prix sur Amazon).

Alors oui, la solution avec compute module nécessite une carte mère pour l’installer, mais cela reviendra tout de même bien moins cher qu’une tour avec 4 Raspberry Pi 4.

Plus de CPU

La seconde piste serait d’obtenir un processeur puissant en additionnant les capacités de plusieurs Raspberry Pi bon marché, plutôt que de s’offrir un PC traditionnel ou un serveur.
Eh bien désolé, mais cela n’est pas une bonne raison non plus de vouloir construire un cluster de Raspberry Pi.

Comme vous pouvez le voir dans le benchmark suivant, les processeurs de Raspberry Pi sont très faibles niveau performances. Donc n’importe quel ordinateur bas de gamme fera bien mieux si on ne regarde que le CPU:

Source: Reddit

Il vous faudra au minimum une dizaine de Raspberry Pi 4 pour égaler les performances d’un basique Intel i3.
Le processeur Intel figurant dans ce comparatif coûte à peu près le même prix qu’un seul Raspberry Pi (prix actuel ici pour rappel).

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Oui, cela est seulement pour le processeur, mais vous pouvez n’importe quel ordinateur avec. La sortie du Intel i3 datant de plus de 10 ans, cela ne devrait pas vous coûter bien cher, quitte à prendre de l’occasion 🙂
Vous pouvez même choisir un NUC d’Intel à la place.

Par exemple, un NUC avec 8 Go de RAM, un SSD de 240 Go et Windows 10 inclus reste bien moins cher que la dizaine de Raspberry Pi qu’il nous faudrait pour le concurrencer (plus de détails sur le NUC sur Amazon). Et ça marche directement, pas de configuration compliquée pour tout câbler 🙂

Accès disque plus rapide

Je vais aller vite sur cette nouvelle hypothèse, puisque vous savez déjà qu’une carte SD est loin d’être la solution la plus rapide de stocker des données et d’y accéder.

On considère que les modèles récents de SSD sont à peu près 10 fois plus rapide que n’importe quelle carte SD.
Même s’il existe des « hacks » permettant d’augmenter la vitesse des cartes SD (plus d’info sur cette trouvaille de Datalight sur ZDNet), cela n’est pas comme ça que l’on utilise les cartes SD sur Raspberry Pi.
Et 4 cartes SD ne seront jamais plus rapides qu’un disque SSD.

Donc si vous voulez un disque rapide, achetez un disque SSD (cela ne coûte plus rien désormais, même en USB), branchez-le à un seul Raspberry Pi, et le problème est réglé, pas besoin de cluster 🙂

Plus de cœurs de CPU

La dernière idée que l’on peut explorer, serait de créer un cluster dans le but d’avoir plus de cœurs de CPU disponibles.
Et en fait, c’est à peu près la seule raison pour laquelle un cluster de Raspberry Pi est utile.

La plupart des modèles de Raspberry Pi récents disposent de 4 cœurs de CPU (à l’exception des Raspberry Pi Zero et 1).
Donc, si vous prenez 4 Raspberry Pi 1 Go, vous obtiendrez 16 cœurs pour moins de 150 €.

En comparaison, les rares équivalents possibles sur PC sont des modèles de processeurs haut de gamme, tel que ce Intel i9 sur Amazon. Dans ce cas il s’agit d’un 8 cœurs, 16 threads. Il est très difficile de trouver des modèles 16 cœurs.

Et à partir du moment où vous mettez plus de 4 Raspberry Pi dans votre cluster, la solution devient imbattable, il n’y a tout simplement pas de concurrent possible si le prix est l’élément de comparaison principal.
À partir de 8 Raspberry Pi, il vous faudra minimum 2 à 4 CPU sur la solution PC, et les serveurs hébergeant plusieurs CPU sont hors de prix. La solution avec Raspberry Pi gagnera donc à chaque fois.

Raspberry Pi 4 vs Computer Module

Donc oui, les seules raisons de créer un cluster de Raspberry Pi sont :

  • Un besoin d’un grand nombre de cœurs de processeur (sans gros besoin sur le reste des composants)
  • Apprendre comment cela fonctionne
  • Juste pour le plaisir 🙂

Pour compléter cette première partie, je voudrais également introduire le Raspberry Pi Compute Module.
Je n’en parle quasiment jamais sur ce site, car il n’a pratiquement aucun intérêt dans le cadre d’un usage privé.

L’idée derrière ce produit est de permettre à n’importe qui d’utiliser la technologie Raspberry Pi sur une autre carte mère. Cela ressemble à un Raspberry Pi Zero, les ports externes en moins, un peu comme une barrette de RAM (voir sur Amazon à quoi cela ressemble, ainsi que les détails techniques du compute module).

Mis à part ces utilisations prévues, la création d’un cluster de Compute Module est un projet qui semble très intéressant également.
En effet chaque module embarque un processeur 4 cœurs, et coûte bien moins cher qu’un Raspberry Pi (les prix à jour ici, il y a plusieurs modèles).

Oui mais comment construire cela sachant qu’ils n’ont pas de port Ethernet ?
Il vous faudra une carte mère spécifique, et la « Clusterboard » permet justement de faire cela (voir le site officiel).
Elle vous permet de connecter rien de moins que 7 modules pour un prix total inférieur à 300 €.

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Vous connaissez des ordinateurs avec 28 cœurs à moins de 300 € ?
Moi non 🙂

Exemples de clusters de Raspberry Pi

Je vais maintenant vous donner quelques exemples de clusters avec des Raspberry Pi, qui vous donneront une meilleure idée de l’utilisation possible.

Cluster basique

La première est simplement de créer son premier cluster. Il n’y a pas d’objectif particulier recherché, si ce n’est d’apprendre comment ça marche.
Par exemple, si vous avez déjà 2 Raspberry Pi à la maison (quel que soit le modèle), vous pouvez suivre mon tutoriel expliquant comment faire cela ici.

Vous aurez un nœud principal (maître) et un nœud secondaire.
Dans cet exemple basique, j’utilise la librairie Python MPI4PY.
Cela permet de lancer n’importe quelle commande sur les deux nœuds en même temps.

Lancer une commande sur deux Raspberry Pi en même temps à peu d’intérêt, sauf si cette commande est le lancement d’une application capable de tourner sur plusieurs cœurs en même temps.

Docker

Les deux suivantes sont davantage des technologies utilisables que des projets concrets. Mais c’est important de savoir que cela existe, afin de comprendre le fonctionnement logiciel de ces clusters.

Docker est une technologie permettant de lancer une application dans un environnement isolé du reste du système.
Cet environnement, appelé conteneur, est un peu comme une machine virtuelle si vous voulez.
On peut avoir plusieurs conteneur sur un même ordinateurs.

Docker a été créé dans le but de faciliter la vie des développeurs. Il est plus simple de coder, déployer ou lancer des applications avec cela plutôt que d’adapter un programme aux différents systèmes.
Mais Docker inclue aussi des fonctionnalités de mise en cluster, qui sont faciles à installer.

Alex Ellis expliquant qu’il n’a jamais été aussi simple de créer un cluster avec Docker et Raspberry Pi

Voici l’article en question si cela vous intéresse.

Kubernetes

Kubernetes est l’étape suivante une fois que vous maitrisez ce qu’est Docker et savez comment ça marche.
Dans l’article lié précédemment, il utilise Docker pour gérer l’application, et Swarm pour l’utilisation sur plusieurs nœuds.
Kubernetes est une amélioration de Swarm, avec davantage de fonctionnalités.

Je n’ai pas encore essayé, donc je ne peux pas trop vous donner plus de détails, mais vous trouverez plein de tutoriels sur Internet à ce sujet (que ce soit pour Raspberry Pi ou pour Linux en général).
Par exemple, il y a un tutoriel pas à pas sur le site officiel.

Super calculateur

Passons à quelque chose de plus concret désormais.
Une fois que vous avez compris et implémenter les différentes technologies évoquées jusqu’à présent, il est temps de passer à quelque chose de plus gros.
La procédure est la même, mais répétée un grand nombre de fois 🙂

Sur cette image, vous pouvez voir le super ordinateur du laboratoire Los Alamos (source : ExtremeTech). Il a été construit avec pas moins de 750 Raspberry Pi.

Les scientifiques de ce centre utilisent ce cluster incroyable tous les jours.
Le coût total est inférieur est 20 000€, et la puissance électrique nécessaire est 5000 fois moindre que ce qu’il faudrait pour un supercalculateur équivalent.
Alors oui, les performances ne sont peut-être pas à la hauteur, mais ça leur permet déjà de faire tourner des « petites tâches » sur plus de 3000 processeurs en simultané.

Donc pour des besoins spécifiques et un petit budget, on voit aussi un très bon exemple de cas concret ou le cluster de Raspberry Pi a une utilité réelle.

Serveur web

Ce n’est pas vraiment différent, mais voici un exemple encore plus concret et plus récent : héberger un serveur web sur un cluster de Raspberry Pi.
C’est d’ailleurs exactement ce qui a été fait par la fondation Raspberry Pi lors du lancement du Raspberry Pi 4.

La fondation Raspberry Pi a utilisé un cluster composé de 18 Raspberry Pi 4 afin de démontrer ce qu’un cluster utilisant ce nouveau modèle pouvait faire. Et ils ont donc prouvé cela en hébergeant l’essentiel du trafic sur le site web le jour de la sortie sur ce cluster.

Si ce projet vous intéresse, vous trouverez tous les détails sur cet article du blog officiel de la fondation.
Ils ont utilisé l’hébergeur Mythic Beats pour cela, chez lequel vous pouvez d’ailleurs faire héberger votre site si cela vous tente 🙂

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Rappel: J'ai crée une communauté d'utilisateurs de Raspberry Pi qui vous permet de partage vos avancées, poser vos questions et recevoir de nombreux avantages exclusifs (anglophones uniquement). Cliquez sur le lien pour en savoir plus.

Questions liées

Puis-je utiliser un cluster de Raspberry Pi pour les jeux vidéos ?
Même si l’idée n’est pas si bête, lancer un jeu sur un cluster nécessite que le jeu soit coder pour fonctionner comme cela. Or actuellement, la plupart des jeux ne sont pas optimisés pour fonctionner sur plusieurs cœurs. Même les serveurs de jeux utilisent généralement un seul cœur de CPU.
N’oubliez pas non plus que vous êtes sur Linux, avec un processeur bas de gamme, peu de RAM et aucune carte graphique, donc le jeu n’est pas forcément l’objectif premier 🙂

Téléchargez mon antisèche !
Format PDF pratique, avec les 74 commandes à retenir pour maîtriser son Raspberry Pi.
Télécharger maintenant

Conclusion

Et voilà, vous avez maintenant une meilleure idée de ce qu’est un cluster de Raspberry Pi, et de ce que l’on peut faire avec.
J’espère qu’une bonne partie des idées reçues ont pu être balayées avec cet article, mais que vous tenterez quand même l’expérience un jour ou l’autre 🙂


Ce tutoriel ne marche plus à 100%? Prévenez-moi pour que je le mette à jour!

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *