TABLE DES MATIÈRES
Table des matières
1 Institution d’accueil 6
1.1 LeLORIA........................................... 6
1.2 L’équipeAlGorille ...................................... 6
2 Contexte et objectifs du stage 7
2.1 Applicationsdistribuées ................................... 7
2.2 SimGrid............................................ 7
2.3 l’interfaceMSG........................................ 8
2.3.1 Fichiers de plate-forme et de déploiement . . . . . . . . . . . . . . . . . . . . . 8
2.3.2 Lesprocessus..................................... 8
2.3.3 Communication entre les processus . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4 Objectifsdustage ...................................... 9
3 Implémentation d’algorithmes pair à pair 10
3.1 Lepairàpair......................................... 10
3.2 ChordJava .......................................... 11
3.3 Kademlia ........................................... 13
3.3.1 Messages ....................................... 13
3.3.2 Tablesderoutage................................... 13
3.3.3 Protocole pour rejoindre le réseau . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3.4 Détails sur l’implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Bittorrent........................................... 14
3.4.1 Le protocole entre pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4.2 Algorithme de choix de la pièce à télécharger . . . . . . . . . . . . . . . . . . . 16
3.4.3 Protocole de choix des pairs actifs . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4.4 Détails sur l’implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Amélioration des interfaces utilisateur 18
4.1 Amélioration de l’interface Java pure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1.1 Refactorisation du code de SimGrid Java . . . . . . . . . . . . . . . . . . . . . 18
4.1.2 Implémentation des communications asynchrones . . . . . . . . . . . . . . . . . 19
4.1.3 Changement de la manière dont les processus sont lancés . . . . . . . . . . . . 19
4.1.4 Mise en cache des éléments Java . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.5 Ajout d’une interface pour la génération de nombres pseudo-aléatoires . . . . . 21
4.2 Création d’une interface java à très hautes performances . . . . . . . . . . . . . . . . . 21
5 Évaluation expérimentale 23
5.1 CachedesélémentsJava................................... 23
5.2 Lancement des processus coté C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3 Interface haute performance utilisant les Coroutines . . . . . . . . . . . . . . . . . . . 25
5.4 Expériences sur l’algorithme Chord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.5 Amélioration globale des performances . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.6 Complexité en terme de quantité de code . . . . . . . . . . . . . . . . . . . . . . . . . 27
2