Calculs parallèles et distribués

Paralix

Icone représentant l'état du projet

Terminé


Langue :

Français

Début du projet :

17/09/2024

Fin du projet :

24/01/2025

Langages

NodeJS

Docker

t HTML5

u CSS3

p JavaScript

m MariaDB

r Python

Scripts Bash

Equipe

Matthieu FARANDJIS

Florent VASSEUR--BERLIOUX

Tom BOGAERT

Lucas DA SILVA FERREIRA

Baptiste FOURNIÉ

William HERUBEL


Présentation

Page d'accueil de Paralix

Le projet vise à développer une application capable d'effectuer des calculs parallèles ou distribués sur un cluster de Raspberry Pi. Paralix se présente sous la forme d'une interface web (application web).

L'application utilise SQL, HTML, CSS, JavaScript. Python est utilisé pour la partie exécution des modules de calcul.
Le serveur doit être protégé contre les intrusions, notamment SSH, à l'aide du logiciel fail2ban et doit archiver automatiquement les logs d'activité à l'aide du logiciel CRON.

Nous avons utilisé le logiciel WebStorm de Jetbrains, qui n'est pas imposé, mais que nous apprécions.

Équipe

Voici une présentation du rôle de chaque membre.
Chaque membre était libre d'intervenir ailleurs dans le projet. Ces listes comportent donc uniquement les rôles principaux.


Matthieu FARANDJIS

• Chef de projet
• Co-Administrateur RaspberryPi et système
• Développeur back-end
• Administrateur du dépôt GitHub
• Responsable de la communication entre l'équipe et les professeurs


Florent VASSEUR-BERLIOUX

• Responsable de la conception de Paralix
• Système
• Développeur back-end


Tom BOGAERT

• Responsable artistique
• Développeur front-end


William HERUBEL

• Responsable documentation
• Développeur back-end


Baptiste FOURNIÉ

• Responsable modules Mathématique
• Développeur back-end


Lucas DA SILVA FERREIRA

• Co-Administrateur RaspberryPi et système
• Assistant modules Mathématique
• Assistant Documentation
• Développeur back-end
• Responsable mise en place des calculs parallèles et distribués


Fonctionnalités

Paralix permet de :

• Exécuter un module sur 1 à 4 RaspberryPi 0
• Interrompre un calcul en cours d'exécution
• Déconnexion automatique du compte après un certain temps d'inactivité
• Sauvegarder sur le serveur ses résultats
• Télécharger et supprimer ses résultats
• Pour les utilisateurs... Changer son mot de passe
• Pour les utilisateurs... Se désinscrire
• Pour l'administrateur... Visualiser qui utilise actuellement Paralix
• Pour l'administrateur... Interrompre les calculs d'un ou de tous les utilisateurs
• Pour l'administrateur... Visualiser l'utilisation des sauvegardes des calculs
• Côté système... Démarrer et synchroniser tous les RaspberryPi 0 au démarrage du RaspberryPi 4
• Côté système... Éteindre tous les RaspberryPi 0 à l'arrêt du RaspberryPi 4


Modèle Master-Workers

Illustration du modèle Master-Workers avec 3 Pi0 communiquant avec 1 Pi4

Illustration trouvée sur Internet montrant le fonctionnement du modèle Master-Workers.
La RaspberryPi 4 Master répartit les processus entre les RaspberryPi 0, afin de répartir la charge de travail dans l'exécution d'un module.
On appelle cet ensemble de RaspberryPi un "Cluster de RaspberryPi" ou tout simplement "Cluster".

L'utilisateur ne manipule que le RaspberryPi 4 Master, qui n'exécute pas les calculs. En revanche, c'est lui qui héberge le serveur web.

Étude de la Scalabilité

Image montrant un extrait du rapport de Scalabilité

Ce projet a également fait l'objet d'une étude de Scalabilité. Nous avons donc étudié les performances du Cluster.

Ces travaux explorent plusieurs aspects de la programmation parallèle et distribuée. La méthode de Monte Carlo est utilisée pour estimer la valeur de π, avec une analyse détaillée des algorithmes et des techniques de parallélisation mises en œuvre. L'implémentation est effectuée sur une machine à mémoire distribuée au sein du cluster HAT, composé d'un Raspberry Pi Zero et de quatre Raspberry Pi 4.

Ce projet s'inscrit également dans une démarche visant à vérifier la conformité aux normes ISO pertinentes en matière de calcul distribué et de bonnes pratiques de programmation, tout en développant des compétences applicables aux environnements professionnels.

D'autres images

Logo Paralix Page d'accueil avec un message de bienvenue et de présentation Page d'exécition du module Nombre Premiers avec son résultat Schéma Modèle Master-Workers Page d'authentification Page Historique des sauvegardes utilisateur Page Historique des sauvegardes de tous les utilisateurs pour l'admin Fenêtre calcul en cours d'exécution avec le bouton arrêter Notification succès de la sauvegarde du résultat Page avec les différents modules