TinyTitan : un cluster à base de RaspBerry Pi
By   |  July 30, 2015

On connaissait la versatilité de la plateforme Raspberry Pi qui s’en est fait une solide réputation. Mais que se passe-t-il lorsque l’on en combine plusieurs pour les faire fonctionner en parallèle ? On obtient un Cluster massivement parallèle ! Voici le projet Tiny Titan que vous pouvez reproduire.

Le laboratoire d’Oak Ridge est connu pour abriter le supercalculateur Titan, capable d’effectuer plus de 20 quadrillions de calculs par seconde. Mais ce laboratoire abrite également le moins connu Tiny Titan, dont neuf unités de traitement, ou «noyaux», sont fabriqués à partir de Raspberry Pi.

Tinytitan est un supercalculateur de 1000 dollars conçu pour enseigner aux futurs scientifiques les bases du calcul parallèle. Contrairement aux ordinateurs de bureau et portables qui masquent le parallélisme à leur utilisateur, TinyTitan rend le concept de calcul parallèle explicite.

Selon son créateur Adam Simpson, réaliser un superordinateur à petite échelle est relativement simple, il suffit de câbler les Pi pour qu’ils fonctionnent en parallèle. La partie la plus difficile, explique ce spécialiste du support de Titan, est d’écrire le code pour cela. Selon Adam Simpson, « il n’existe aucune plate-forme adéquate pour réaliser des projets de calcul intensif personnels». Ainsi, lui et deux de ses collègues ont décidé de créer un ensemble de tutoriels. En travaillant ensemble, les noyaux parallèles peuvent résoudre des problèmes complexes, et les tutoriels ont pour but d’expliquer ce processus. Par exemple, une leçon montrer comment ajouter deux listes de numéros ensemble, en divisant le problème en composants noyaux individuels peuvent attaquer simultanément. Les tutoriels sont disponibles gratuitement en ligne. Commencez votre voyage vers la célébrité supercalculateur au github.com/TinyTitan.

Créez votre propre Tiny Titan
Le laboratoire d’Oak Ridge a créé un ensemble de scripts (indiqués ci-après) pour vous guider dans la création de votre propre TinyTitan. Une fois votre TinyTitan en route, vous serez prêt à exécuter le logiciel de démonstration.

Prérequis

  • Au moins deux Raspberry Pi avec la distribution Raspbian
  • Un routeur ou un commutateur réseau pour connecter les Pi
  • Une connexion Internet active

Première étape
La première étape consiste à mettre à jour chaque Raspberry Pi et de configurer les paramètres réseau. Pour commencer le raccordement de chaque Pi qui fera partie de la grappe TinyTitan à une connexion Internet active. Télécharger le script de configuration initiale et l’exécuter dans un terminal en tant que telle:

$ Curl -kfsSLO https://raw.github.com/TinyTitan/TinySetup/master/pi_setup.sh
$ Bash pi_setup.sh

Lorsque vous êtes invité à saisir le nombre de nœuds démarrez à 1 et incrémentez la valeur jusqu’à correspondre au nombre de nœuds physiques présents.

Deuxième étape
Une fois la première étape dédiée à la configuration achevée, connectez tous les nœuds au routeur ou commutateur réseau. Sur le Pi qui auquel a été assigné un le numéro de noeud de connexion 1, exécutez le script qui suit :


$ Git clone https://github.com/TinyTitan/TinySetup.git
$ Cd TinySetup
$ Bash pi_post_setup.sh

Troisième étape
Votre Tiny Titan est désormais opérationnel et prêt à fonctionner. Extrayez le TinySPH et des exemples PiBrot disponible sur le repository GitHub de TinyTitan disponibles là : https://tinytitan.github.io/software/

Quelques exemples d’applications
TinySPH est un module de calcul en 2D de particules hydrodynamiques lissées (Smoothed Particle Hydrodynamics, conçu pour fonctionner en temps réel sur le cluster TinyTitan du laboratoire d’Oak Ridge. Cette application a été conçue pour démontrer le concept de calcul réparti. Bien qu’elle fonctionne mieux dans un environnement distribué, il est tout à fait envisageable de l’exécuter sur un système de mémoire partagée avec un processeur multicœur. Bien que le code soit conçu pour Tiny Titan il devrait, avec quelques modifications, pouvoir être compilé et exécuté sur Linux et OS X. Le code fait usage de MPI pour le calcul distribué et nécessite au moins deux processus de MPI (1 poru le rendu, 1 pour le calcul).
Pour en savoir plus : https://github.com/TinyTitan/SPH

PiBrot est un exemple de code exploitant le calcul parallèle pour calculer une fractale de Mandelbrot. L’écran est divisé en deux verticalement avec une tâche MPI qui affiche l’image de gauche et une image identique en cours de calcul sur le côté droit avec N-2 tâches MPI, où N est le nombre total de tâches MPI.
Pour en savoir plus :https://github.com/TinyTitan/PiBrot

© HPC Today 2019 - All rights reserved.

Thank you for reading HPC Today.

Express poll

Do you use multi-screen
visualization technologies?

Industry news

Brands / Products index