Optimisations de la biblioth - PowerPoint PPT Presentation

About This Presentation
Title:

Optimisations de la biblioth

Description:

Optimisations de la biblioth que de communication MPI pour machines parall les ... 2. MPI-MPC1 : MPI sur une primitive d' criture distante. 3. MPI-MPC2 : ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 60
Provided by: olivie47
Category:

less

Transcript and Presenter's Notes

Title: Optimisations de la biblioth


1
Optimisations de la bibliothèque de communication
MPI pour machines parallèles de type  grappe de
PCs  sur une primitive décriture distante
  • Olivier Glück
  • UPMC/LIP6/ASIM

Olivier.Gluck_at_lip6.fr
2
Plan
  • 1. Introduction contexte et objectifs
  • 2. MPI-MPC1 MPI sur une primitive décriture
    distante
  • 3. MPI-MPC2 optimisations bas niveau
  • 4. MPI-MPC3 traductions dadresses optimisées
  • 5. Résultats expérimentaux
  • 6. Conclusion

3
Contexte et hypothèses
  • Machines parallèles de type grappe de PCs sous
    UNIX
  • Applications MPI en mode  batch 
  • Réseau de communication primitive décriture
    distante
  • le réseau est fiable
  • le contrôleur réseau utilise des accès DMA en
    lecture et en écriture pour accéder à la mémoire
    du nœud hôte
  • le contrôleur réseau ne peut transférer que des
    zones contiguës en mémoire physique
  • le nœud émetteur doit savoir à lavance où
    déposer les données sur le nœud récepteur

1ère partie - Introduction
4
La primitive décriture distante sur MPC
1ère partie - Introduction
5
Objectifs
  • Fournir lenvironnement MPI
  • machines parallèles de type  grappe de PCs 
  • primitive décriture distante
  • Réduire le chemin critique logiciel

1ère partie - Introduction
6
Les techniques doptimisation
  • Eviter la traversée dun grand nombre de couches
    de communication
  • Réduire le nombre de copies des données
  • Réduire le nombre dappel système en réalisant
    les communications en espace utilisateur
  • Eviter lutilisation dinterruptions pour la
    signalisation des communications
  • Réduire le coût des opérations de traduction
    dadresses virtuelles/physiques

1ère partie - Introduction
7
Une stratégie  zéro-copie 
1ère partie - Introduction
8
Les appels système
1ère partie - Introduction
9
Les interruptions
1ère partie - Introduction
10
Les traductions dadresses
1ère partie - Introduction
11
La machine MPC
1ère partie - Introduction
12
La machine MPC
1ère partie - Introduction
13
La carte FastHSL
  • Performances matérielles
  • latence 2 µs
  • débit maximum sur le lien 1 Gbits/s (dans
    chaque sens)
  • débit utile matériel théorique 512 Mbits/s

1ère partie - Introduction
14
Plan
  • 1. Introduction contexte et objectifs
  • 2. MPI-MPC1 MPI sur une primitive décriture
    distante
  • 3. MPI-MPC2 optimisations bas niveau
  • 4. MPI-MPC3 traductions dadresses optimisées
  • 5. Résultats expérimentaux
  • 6. Conclusion

15
MPICH une architecture en couches
2ème partie - Architecture de MPI sur une
primitive décriture distante
16
LAPI RDMA
  • RDMA Remote Direct Memory Access
  • API générique décriture en mémoire distante
  • Objectifs
  • définir la brique de base de notre implémentation
    de MPI
  • masquer les particularités des réseaux
    fournissant une primitive décriture distante
  • Enjeu
  • faire en sorte que notre travail puisse être
    exploitable sur dautres plate-formes matérielles

2ème partie - Architecture de MPI sur une
primitive décriture distante
17
LAPI RDMA
  • Lécriture distante
  • RDMA_SEND(nsrc, ndst, plad, prad, len, ctrl, sid,
    rid, ns, nr)
  • La notification
  • RDMA_SENT_NOTIFY(ctrl, sid)
  • RDMA_RECV_NOTIFY(nsrc, ctrl, rid)
  • La signalisation par scrutation (optionnelle)
  • RDMA_NET_LOOKUP(blocking)
  • Format des messages

paramètres supplémentaires à véhiculer de
lémetteur vers le récepteur
2ème partie - Architecture de MPI sur une
primitive décriture distante
18
Les problèmes à résoudre
  • Les problèmes liés à la primitive décriture
    distante
  • le dépôt direct en mémoire lémetteur doit
    connaître les adresses physiques des tampons
    distants
  • lutilisation dadresses physiques alors que
    lapplication manipule des adresses virtuelles
  • Les services à fournir à MPICH
  • transmission des messages CTRL/DATA
  • signalisation des événements réseau
  • mécanisme de contrôle de flux
  • fixer le seuil optimal entre les messages
    CTRL/DATA

2ème partie - Architecture de MPI sur une
primitive décriture distante
19
Les messages CTRL
  • Transfert dinformations de contrôle ou de
    données de taille limitée
  • Utilisation de tampons intermédiaires contigus en
    mémoire physique et alloués au démarrage de
    lapplication
  • ? pas de traduction dadresses, adresse du tampon
    distant connue sur lémetteur, recopie
    systématique, contrôle de flux

2ème partie - Architecture de MPI sur une
primitive décriture distante
20
Les messages DATA
  • Transfert des données de lapplication en mode
     zéro-copie 
  • Utilisation dun protocole de rendez-vous entre
    lémetteur et le récepteur
  • ? traduction dadresses sur lémetteur et le
    récepteur, le message RSP contient la description
    en mémoire physique du tampon de réception

2ème partie - Architecture de MPI sur une
primitive décriture distante
21
Le format des messages CTRL
2ème partie - Architecture de MPI sur une
primitive décriture distante
22
Le mode standard dans MPI
2ème partie - Architecture de MPI sur une
primitive décriture distante
23
Liens entre MPI et lAPI RDMA
2ème partie - Architecture de MPI sur une
primitive décriture distante
24
Performances de MPI-MPC1
  • Processeur PII-350MHz
  • 256Mo de RAM
  • Bus PCI 33MHz
  • Linux 2.2.18

2ème partie - Architecture de MPI sur une
primitive décriture distante
25
Analyse des performances de MPI-MPC1
  • accès config moyen de donner les ordres au
    contrôleur réseau

2ème partie - Architecture de MPI sur une
primitive décriture distante
26
Plan
  • 1. Introduction contexte et objectifs
  • 2. MPI-MPC1 MPI sur une primitive décriture
    distante
  • 3. MPI-MPC2 optimisations bas niveau
  • 4. MPI-MPC3 traductions dadresses optimisées
  • 5. Résultats expérimentaux
  • 6. Conclusion

27
Objectifs de MPI-MPC2
  • Réaliser les communications en mode utilisateur
    en partageant les ressources réseau.
  • Remplacer les interruptions matérielles par une
    signalisation par scrutation.
  • Etudier limpact de ces changements sur les
    performances.

3ème partie - Optimisations des couches basses de
communication
28
Une écriture distante en mode utilisateur
3ème partie - Optimisations des couches basses de
communication
29
Les problèmes à résoudre
  • Comment protéger laccès en mode utilisateur aux
    ressources partagées LME, LMR, registres
    internes du contrôleur réseau ?
  • Comment réaliser une signalisation par scrutation
    ?
  • Comment garantir que toutes les entrées dun même
    message soient consécutives dans la LME ?

3ème partie - Optimisations des couches basses de
communication
30
Principe de la méthode
3ème partie - Optimisations des couches basses de
communication
31
La signalisation
  • On a rajouté deux primitives pour mettre à jour
    les états de toutes les communications en cours
  • scrutation de la LME en émission
  • scrutation de la LMR en réception
  • La scrutation est à linitiative de MPI

3ème partie - Optimisations des couches basses de
communication
32
Les verrous
  • verrou variable mémoire partagée entre les
    différents processus
  • à chaque opération est associé un verrou
  • prise et libération dun verrou atomique au
    niveau du processeur (testset en mode
    utilisateur)
  • plusieurs verrous pour ne verrouiller que ce qui
    est nécessaire à lopération en cours

3ème partie - Optimisations des couches basses de
communication
33
Performances de MPI-MPC2
421
3ème partie - Optimisations des couches basses de
communication
34
Analyse des performances
  • En ce qui concerne la latence
  • gain supérieur à 40 de 26µs avec MPI-MPC1 à
    15µs
  • 15µs 5µs (matérielle) 10µs (logicielle soit
    3500 cycles)
  • gain significatif en débit en ce qui concerne les
    messages de petite taille
  • En ce qui concerne le débit maximum
  • très faible gain car indépendant de la taille des
    données

3ème partie - Optimisations des couches basses de
communication
35
Plan
  • 1. Introduction contexte et objectifs
  • 2. MPI-MPC1 MPI sur une primitive décriture
    distante
  • 3. MPI-MPC2 optimisations bas niveau
  • 4. MPI-MPC3 traductions dadresses optimisées
  • 5. Résultats expérimentaux
  • 6. Conclusion

36
Objectifs de MPI-MPC3
  • Supprimer les appels système liés aux traductions
    dadresses
  • Saffranchir de la discontinuité des tampons de
    lapplication en mémoire physique
  • Faire en sorte que la méthode proposée soit
    transparente
  • pas de modification de lOS et de la librairie C
  • pas dajout de primitives au standard MPI
  • pas de modification du code de lapplication,
    compatibilité binaire (pas besoin de recompiler
    les fichiers objets)
  • ? Pour toutes les données susceptibles dêtre
    transférées
  • adresse virtuelle adresse physique déplacement

4ème partie - Optimisations des traductions
dadresses
37
Principe de la méthode
4ème partie - Optimisations des traductions
dadresses
38
Performances de MPI-MPC3
485
4ème partie - Optimisations des traductions
dadresses
39
Analyse des performances
  • Suppression des appels système liés aux
    traductions dadresses
  • Réduction du nombre décritures distantes pour
    transmettre un message DATA de plusieurs
    centaines à 1 seule pour transmettre 1024Ko
  • Réduction de la taille du message RSP dans le
    protocole de rendez-vous de plusieurs Ko à 28
    octets

4ème partie - Optimisations des traductions
dadresses
40
Plan
  • 1. Introduction contexte et objectifs
  • 2. MPI-MPC1 MPI sur une primitive décriture
    distante
  • 3. MPI-MPC2 optimisations bas niveau
  • 4. MPI-MPC3 traductions dadresses optimisées
  • 5. Résultats expérimentaux
  • 6. Conclusion

41
Résultats avec CADNA
  • CADNA logiciel pour prendre en compte les
    erreurs darrondi dans les calculs numériques

5ème partie - Résultats expérimentaux avec des
applications réelles
42
Résultats avec Laplace
  • Résolution de léquation de Laplace par la
    méthode de Jacobi sur 4 processeurs

5ème partie - Résultats expérimentaux avec des
applications réelles
43
Plan
  • 1. Introduction contexte et objectifs
  • 2. MPI-MPC1 MPI sur une primitive décriture
    distante
  • 3. MPI-MPC2 optimisations bas niveau
  • 4. MPI-MPC3 traductions dadresses optimisées
  • 5. Résultats expérimentaux
  • 6. Conclusion

44
Objectifs atteints
  • Une implémentation optimisée de MPI sur une
    primitive décriture distante générique (RDMA)
  • Suppression des appels système et des
    interruptions lors des phases de communication
  • ? Gain en latence
  • Simplification des traductions dadresses
  • adresse virtuelle adresse physique
    déplacement
  • ? Gain en débit
  • Confirmation des résultats obtenus avec un
    ping-pong sur deux applications réelles

6ème partie - Conclusion
45
Résultats obtenus
6ème partie - Conclusion
46
Perspectives
  • Recouvrement calcul/communication une
    implémentation multi-threads
  • Le standard MPI2
  • création dynamique de tâches
  • primitives de communication unidirectionnelle
    sans action du processeur distant
  • Portage sur dautres plate-formes matérielles
  • Myrinet
  • ANI/HSL

6ème partie - Conclusion
47
Optimisations de la bibliothèque de communication
MPI pour machines parallèles de type  grappe de
PCs  sur une primitive décriture distante
  • Olivier Glück
  • UPMC/LIP6/ASIM

Olivier.Gluck_at_lip6.fr
48
La signalisation
2ème partie - Architecture de MPI sur une
primitive décriture distante
49
La signalisation
3ème partie - Optimisations des couches basses de
communication
50
Les ressources partagées
  • La Liste des Messages à Emettre (LME)
  • La Liste des Messages Reçus (LMR)
  • Les registres internes du contrôleur réseau

3ème partie - Optimisations des couches basses de
communication
51
Les émissions/réceptions simultanées
  • Pourquoi pouvoir traiter plusieurs
    émissions/réceptions simultanément ? besoin
    didentifier une communication

2ème partie - Architecture de MPI sur une
primitive décriture distante
52
Les problèmes à résoudre
  • Comment faire pour projeter les zones contiguës
    en mémoire physique dans la mémoire virtuelle du
    processus à lemplacement des anciens segments ?
  • ? utilisation dune librairie dynamique
    exécution de code en dehors du segment de code du
    processus
  • ? déplacement du segment de pile du processus
  • Comment réaliser ces opérations de façon
    transparente pour lutilisateur avant lexécution
    de lapplication ?
  • ? utilisation dun langage objet permettant
    d exécuter du code avant le début de
    lapplication ces opérations sont réalisées
    dans le constructeur de lobjet

4ème partie - Optimisations des traductions
dadresses
53
Espace dadressage
54
Le tas
55
La pile
56
Compilation
57
Les différentes étapes
  • informations utilisateur
  • taille des zones  pile  et  données 
  • augmentation taille du tas
  • sauvegarde sur disque
  • réservation mémoire physique
  • projection
  • recopie des segments sauvegardés
  • translation du pointeur de pile
  • modification des arguments
  • empilement des paramètres du main puis call
  • restauration du contexte ret
  • appel du destructeur

58
Le réseau SCI
  • lectures/écritures distantes mais paradigme de
    programmation différent
  • zones exportées/importées limitées
  • correspondance virtuelle/physique dans
    linterface réseau

59
GM
  •  registering memory  primitives pour
    verrouiller un tampon et informer le contrôleur
    réseau de la correspondance virtuelle/physique
  • gm_directed_send(port, src_buf, dst_buf, len,
    dst_id, ) écriture distante vers une zone
    enregistrée au préalable (désactivé par défaut)
Write a Comment
User Comments (0)
About PowerShow.com