déc
07
2007
Simulation d’un système de drainage dans une mine en C++ et MPI avec une interface en Java
On s’intéresse ici à la réalisation d’un système de commande assurant une fonction de drainage dans une mine. Le but de ce système est de réguler le niveau d’eau au fond de la mine, par la mise en route d’une pompe lorsqu’un certain seuil (« niveau-eau-haut ») est atteint voir dépassé et ceci jusqu’à ce qu’il soit ramené au niveau d’un autre seuil (« niveau-eau-bas »).
La pompe ne doit toutefois pas fonctionner si les niveau en gaz toxiques présents dans la galerie, méthane et monoxyde de carbone, sont supérieurs à certains seuils (« seuil-CH4 » et « seuil CO »). Un ventilateur permet donc, lorsque cela est nécessaire, d’évacuer ces gaz vers la surface. On souhaite par ailleurs minimiser l’utilisation du ventilateur.

Seront utilisés pour modéliser ce système :
- MPI pour la communication en entre les différents processus (pompe, capteurs, ventilateur…)
- C++ comme langage de développement pour l’applicatif
- Le langage Java avec Swing pour l’interface graphique
- Les threads et les sockets en C++ et en Java pour la communication entre l’applicatif et l’interface
Le rapport avec les sources en annexe.
nov
05
2007
Tutoriel et exemples sur la programmation parallèle grâce à MPI.
De nos jours, les avancées technologiques orientent les concepteurs de systèmes vers une augmentation du nombre de ressources pour effectuer un traitement plutôt qu’augmenter la puissance d’une ressource pour exécuter ce même traitement. Ceci est la conséquence de phénomènes physiques empêchant une augmentation infinie de la puissance des ressources. Nous en voulons pour preuve l’annonce par Gordon Moore en septembre 2007 prédisant la désuétude de sa loi selon laquelle le nombre de transistors sur une puce de silicium double tous les deux ans. De ce fait, afin d’accroître la puissance de calcul, la mise en parallèle de plusieurs ressources est l’alternative la plus crédible.
L’ouvrage en pdf, les sources
Table des matières
Du parallélisme à MPI
1. Pourquoi programmer des applications parallèles ?
2. Problèmes liés à la programmation parallèles ?
3. Quels sont les architectures existantes ?
4. Comment MPI-2 répond à nos attentes ?
Installation de l’environnement et premier programme
1. Les composants nécessaires au développement
a. OpenMPI
b. Eclipse et PTP
2. Installation des composants
a. Eclipse
b. CDT
c. OpenMPI
d. PTP
e. PLDT
3. Configuration préliminaire
a. Lancement d’Eclipse
b. Configuration
4. Hello World
Les concepts par l’exemple
1. Squelette d’un programme MPI
2. L’envoi et la réception de message
a. Les fonctions Send et Recv
b. Les types de données OpenMPI
c. L’envoi de messages point à point en mode synchrone
d. Envoie de messages en mode asynchrone
3. Le rendez-vous
4. La diffusion
Cas d’utilisation : le supercalculateur
1. Présentation de l’application
2. Fonctionnement
3. Vu de l’intérieur
4. Conclusion sur le supercalculateur
Conclusion
Table des illustrations
Table des sources
Glossaire
Bibliographie
oct
05
2007
Cette application écrite en Java tri des mails fictifs grâce à l’interconnexion de multiples Agents (Thread).
Un agent a pour « mission » de récupérer les mails dans la liste d’attente et de vérifier si il satisfait une règle
interne. Si la règle est satisfaite (par exemple, que le sujet du mail ne contienne pas le mot « drugs »), alors
l’agent donne le mail à l’agent suivant qui va faire de même. Si la règle n’est pas satisfaite, alors le mail sera
mis dans la liste de spams. Enfin, le dernier agent, si sa règle est satisfaite elle aussi, mettra le mail dans la boite
de réception.
le rapport complet : ici
l’application et les sources (java 1.6) : ici
mai
24
2007
Afin de matérialiser la gestion d’un carrefour, nous avons imaginé une application modulable mettant en scène des voitures circulants sur plusieurs routes sur lesquelles sont placés des feux. Ce compte rendu présente cette application, son développement, ses avantages et ses (quelques) inconvénients ainsi que, en guise de conclusion, un avis personnel sur l’ensemble du sujet traité.

Le rapport complet : ici
Le jar executable avec les sources (java 1.5 min) : ici