Master 2013 2014
psar
Vers une plate-forme efficace de développement d’applications réparties.


Site :Vers une plate-forme efficace de développement d’applications réparties.
Lieu :UMPC 4 place Jussieu 75005 PARIS
Encadrant : Julien Sopena (julien.sopena@lip6.fr), Jonathan Lejeune (jonathan.lejeune@lip6.fr)
Dates :01/02/2014 au 10/05/2014
Mots-clés : Parcours SAR, aussi pour STL


Description

Vers une plate-forme efficace de développement d’applications réparties.

Pitch : Le but de ce PSAR est d’implémenter une couche logicielle permettant d’exécuter de façon transparente le même code sur le simulateur omnet++ et sur une infrastructure réelle en utilisant l’API MPI. L’intérêt d’un tel projet est de simplifier le développement d’applications réparties en utilisant un simulateur et l’ensemble des outils graphiques associés, pour développer un code pouvant s’exécuter directement sur un cloud ou une grille de calcul réels.

En cas de succès (solution fonctionnelle) l’impact du projet sera important. En effet, cette plate-forme répond à un besoin réel dans le domaine des applications réparties. Elle pourra entre autres être mis-en-oeuvre dans des projets de recherche au LIP6 ou être utilisée dans le cadre de TP d’UEs du Master SAR.

Mots-clés : programmation répartie, simulation à événements discrets, MPI, grille de calcul.

Contexte : Les simulateurs de plate-formes réparties permettent de décrire un réseau (lien, topologie, latence ...) et les noeuds qui le constituent (machines, routeurs ...) afin d’y simuler l’exécution d’applications réparties. Dans ce projet nous nous intéressons au simulateur à événements discrets comme omnet++. L’utilisation d’un tel simulateur présente plusieurs avantages :

  • en supprimant l’indéterminisme lié au réseau, il peut reproduire les mêmes séquences d’exécution, ce qui simplifie énormément les phases de débogage ;
  • il permet de simuler un nombre relativement grand de machines, diminuant ainsi le coût matériel du développement ;
  • il peut, aux prix d’une simplification du modèle, simuler de longues périodes d’expérimentation en un cours laps de temps.
  • son interface graphique permet un large éventail de fonctionnalités : configuration du réseaux, affichage des messages, monitoring, courbes, ...

L’inconvénient actuel d’un tel simulateur, est qu’il demande généralement l’écriture de code spécifique. Il est ainsi impossible de déployer directement le code testé sur le simulateur directement dans un réseau réel. Or les modifications nécessaires touchent le plus souvent à des parties critiques du code, ce qui peut entraîner l’insertion de bugs dans le code testé sur le simulateur.

Objectifs : L’idée du projet est de se baser sur les primitives de l’API MPI (Message Passing Interface) comme interface commune au simulateur et au monde réel. En effet, la couche MPI, largement répandue dans l’industrie et utilisée dans l’UE Algorithmique Répartie (AR-MI048), permet aux applications de s’abstraire de la couche réseau de l’application.

En réalisant une implémentation de l’interface MPI pour omnet++, le projet permettra à un code écrit pour MPI de s’exécuter sur le simulateur. Ainsi, un même code pourra être compilé pour fonctionner sur le simulateur ou pour s’exécuter dans un environnement réel.

Déroulement du projet :

  1. Familiarisation avec MPI et le simulateur omnet++.
  2. Développement des primitives de bases MPI (send, receive, broadcast, ...) dans le simulateur omnet++.
  3. Configuration automatique du réseau simulé par omnet++ en fonction des fichiers de description du déploiement MPI.
  4. Test d’exécution d’une petite application répartie sur le simulateur et dans un environnement réel.

Les étudiants participants au projet pourront avoir accès, le cas échéant, à la plate-forme Grid5000 pour tester leur code.

Pré-requis : bon niveau en C/C++, notions de programmation objet, notions de réseau.


PSAR-Vers_une_plateforme_efficace_de_developpement_d_applications_reparties.pdf -

Sujet du PSAR 2014 (Sopena/Lejeune) : Vers une plate-forme efficace de développement d’applications réparties.