Optimisations de la bibliothèque de communication MPI pour machines parallèles de type « grappe...
-
Upload
richaud-chapuis -
Category
Documents
-
view
104 -
download
0
Transcript of Optimisations de la bibliothèque de communication MPI pour machines parallèles de type « grappe...
![Page 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/1.jpg)
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
![Page 2: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/2.jpg)
2/46
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 d’adresses optimisées
5. Résultats expérimentaux
6. Conclusion
![Page 3: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/3.jpg)
3/46
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 à l’avance où déposer les
données sur le nœud récepteur
1ère partie - Introduction
![Page 4: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/4.jpg)
4/46
La primitive d’écriture distante sur MPC
1ère partie - Introduction
Emetteur
M émoire A
CPU A
LM E
Données
NIC A
Récepteur
M émoire B
CPU B
LM R
Données
NIC B
1
2
3
4
5
6
Interruption
Interruption
![Page 5: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/5.jpg)
5/46
Objectifs
Fournir l’environnement MPI :
machines parallèles de type « grappe de PCs »
primitive d’écriture distante
Réduire le chemin critique logiciel
1ère partie - Introduction
![Page 6: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/6.jpg)
6/46
Les techniques d’optimisation
Eviter la traversée d’un grand nombre de couches de
communication
Réduire le nombre de copies des données
Réduire le nombre d’appel système en réalisant les
communications en espace utilisateur
Eviter l’utilisation d’interruptions pour la signalisation des
communications
Réduire le coût des opérations de traduction d’adresses
virtuelles/physiques
1ère partie - Introduction
![Page 7: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/7.jpg)
7/46
Une stratégie « zéro-copie »
1ère partie - Introduction
Espaceutilisateur
Espacenoyau
Espaced'entées/sorties
Espaced'entées/sorties
Espacenoyau
Espaceutilisateur
Noeud émetteur Noeud récepteur
Noeud récepteurNoeud émetteur
Espaceutilisateur
Espaceutilisateur
![Page 8: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/8.jpg)
8/46
Les appels système
1ère partie - Introduction
Processusutilisateur
Processusutilisateur
Pilote d'accèsà l'interface
réseau
Espace système
Interface réseau
![Page 9: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/9.jpg)
9/46
Les interruptions
1ère partie - Introduction
Espace système
Pilote d'accès à l'interface réseau
Interrupt_handler()
Interface réseauévénem ent = fin de réception d'un m essage
Espace utilisateur
Processus utilisateur contenant labibliothéque de communication
M essage_received()
Interruptionmatérielle
Emission d'unsignal
![Page 10: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/10.jpg)
10/46
Les traductions d’adresses
1ère partie - Introduction
N o eu d E m etteu r N o eu d R écep teu r
M ém o irev ir tu e lle
M ém o irep h y siq u e
tam
po
n u
tilis
ate
ur
tam
po
n u
tilis
ate
ur1
2
3
M ém o irep h y siq u e
M ém o irev ir tu e lle
![Page 11: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/11.jpg)
11/46
La machine MPC
1ère partie - Introduction
Liens HSL
CPU 1
Co
nn
ecte
ur P
CI
RCube
PCIDDC
CPU 2
Co
nn
ecte
ur P
CI
RCube
PCIDDC
CPU 3C
on
necte
ur P
CI
RCube
PCIDDC
CPU 4
Co
nn
ecte
ur P
CI
RCube
PCIDDC
Console
Réseau de contrôle ETHERNET
![Page 12: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/12.jpg)
12/46
La machine MPC
1ère partie - Introduction
![Page 13: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/13.jpg)
13/46
La carte FastHSL
1ère partie - Introduction
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
![Page 14: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/14.jpg)
14/46
Plan
1. Introduction : contexte et objectifs
2. MPI-MPC1 : MPI sur une primitive d’écriture distante2. MPI-MPC1 : MPI sur une primitive d’écriture distante
3. MPI-MPC2 : optimisations bas niveau
4. MPI-MPC3 : traductions d’adresses optimisées
5. Résultats expérimentaux
6. Conclusion
![Page 15: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/15.jpg)
15/46
MPICH : une architecture en couches
2ème partie - Architecture de MPI sur une primitive d’écriture distante
RDM A API
Interface réseau
MPI API
ADI
RDMA : Primitive d'écriture distantegénérique
CH_RDMA : MPI sur MPC
NIC
Espaceutilisateur
Espacesystème
Matériel
MPIDRIVER
Opérations collectives
Opérations point à point
![Page 16: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/16.jpg)
16/46
L’API RDMA
2ème partie - Architecture de MPI sur une primitive d’écriture distante
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
d’autres plate-formes matérielles
![Page 17: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/17.jpg)
17/46
L’API RDMA
2ème partie - Architecture de MPI sur une primitive d’écriture distante
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 :
len
ndst prad len nr nsrc rid ctrl
en -tê te R D M A
m essage M P I
paramètres supplémentaires à véhiculer de l’émetteur vers le récepteur
![Page 18: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/18.jpg)
18/46
Les problèmes à résoudre
2ème partie - Architecture de MPI sur une primitive d’écriture distante
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
l’utilisation d’adresses physiques alors que l’application
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
![Page 19: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/19.jpg)
19/46
Les messages CTRL
2ème partie - Architecture de MPI sur une primitive d’écriture distante
Transfert d’informations 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 l’application
pas de traduction d’adresses, adresse du tampon distant
connue sur l’émetteur, recopie systématique, contrôle de flux
Noeud 1 Noeud 3
N B U F tam pons
Réseau
buffer
3
2
1
2
![Page 20: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/20.jpg)
20/46
Les messages DATA
2ème partie - Architecture de MPI sur une primitive d’écriture distante
Transfert des données de l’application en mode « zéro-copie »
Utilisation d’un protocole de rendez-vous entre l’émetteur et le
récepteur
traduction d’adresses sur l’émetteur et le récepteur, le message RSP
contient la description en mémoire physique du tampon de réception
RécepteurEmetteur
données
REQ
RSP
DATA
RécepteurEmetteur
REQ
do
nn
ées
RSP
RSP
DATA
DATA
. .
.
![Page 21: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/21.jpg)
21/46
Le format des messages CTRL
2ème partie - Architecture de MPI sur une primitive d’écriture distante
S H O R T : 2 0 o c te ts + d tlen
crdt type tsrc tag dtlen données
dtlen
R E Q : 2 4 o c te tscrdt type tsrc tag dtlen sid
R S P : 2 0 o c te ts + 8 * N B _ D M Acrdt type tsrc sid rid recv_m ap
C R E D IT : 1 2 o c te tscrdt type tsrc
![Page 22: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/22.jpg)
22/46
Le mode standard dans MPI
2ème partie - Architecture de MPI sur une primitive d’écriture distante
RécepteurEmetteur
données
REQ
RSP
DATA
MPI_Send ou MPI_Isend / MPI_Recv ou MPI_Irecv
cas 2 : taille des données > M AXcas 1 : taille des données < M AX
données
SHORT
Emetteur Récepteur
2 copies, 1 message 0 copie, 3 messages
![Page 23: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/23.jpg)
23/462ème partie - Architecture de MPI sur une primitive d’écriture distante
E m etteu rt id _ s rc = 0 , n s rc = 0
R écep teu rt id _ d s t = 1 , n d s t = 1
M ém o irev ir tu e lle
M ém o irep h y siq u e
donn
ées
1
2
3
M ém o irep h y siq u e
M ém o irev ir tu e lle
len
ls1
ls2
lr1
lr2
v adp lad 1
p lad 2
p rad 2
p rad 1
Liens entre MPI et l’API RDMA
(p ra d 1 , lr1 ) (p ra d 2 , lr2 )
REQR D M A _ S E N D ()
R D M A _ S E N D ()RSP
R D M A _ S E N D ()(p la d 1 , ls1 ) (p la d 2 , ls2 )
R D M A _ S E N D ()R D M A _ S E N D ()
1
2
3
DATA
![Page 24: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/24.jpg)
24/46
0
50
100
150
200
250
300
350
400
450
1 4 16 64 256
1K 4K 16K
64K
Taille du message (octets)
Déb
it (
Mb
its/
s)
MPI-MPC1 copie
MPI-MPC1 RDV
2ème partie - Architecture de MPI sur une primitive d’écriture distante
Performances de MPI-MPC1
Latence(µs)
Débit Max.(Mb/s)
Seuil(Ko)
Demi débit(Ko)
Latence RDV(µs)
MPI-MPC1 26 419 16 2 105
0
50
100
150
200
250
300
350
400
4501 4 16 64 256
1K 4K 16K
64K
256K
1024
K
4096
K
Taille du message (octets)
Déb
it (
Mb
its/
s)
MPI-MPC1
419
Processeur PII-350MHz
256Mo de RAM
Bus PCI 33MHz
Linux 2.2.18
![Page 25: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/25.jpg)
25/462ème partie - Architecture de MPI sur une primitive d’écriture distante
N IC A
N IC B in terru p tio n m a tér ie lle
a ccès co n fig
a ccès co n figB us P C I
B us P C I
R D M A _ S E N T _ N O T IF Y
2 µ s
1 ,5 µ s1 ,5 µ s
a p p el sy stèm eR D M A _ S E N D (len = 2 1 )
a ccès co n fig1 ,5 µ s M P I_ R E C V (len = 1 )
C H R D M A _ N E T _ L O O K U P
C H R D M A _ N E T _ L O O K U P
C H R D M A _ C T L R E C V _ E V E N T
F in d u M P I_ R E C V
1 ,5 µ s
M P I_ S E N D (len = 1 )
C H R D M A _ S E N D _ S H O R T (len = 2 1 )
Appels systèmes Interruptions Recopies RDMA_SENDProtocole short rdv short rdv short rdv short rdv
MPI-MPC1 1 1+6F 2 2+4F 2 0 1 1+F+NB_DMA*F
Analyse des performances de MPI-MPC1
accès config = moyen de donner les
ordres au contrôleur réseau
![Page 26: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/26.jpg)
26/46
Plan
1. Introduction : contexte et objectifs
2. MPI-MPC1 : MPI sur une primitive d’écriture distante
3. MPI-MPC2 : optimisations bas niveau3. MPI-MPC2 : optimisations bas niveau
4. MPI-MPC3 : traductions d’adresses optimisées
5. Résultats expérimentaux
6. Conclusion
![Page 27: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/27.jpg)
27/463ème partie - Optimisations des couches basses de communication
Interface réseau : La carte FastHSL
RDMA : Primitive d'écriture distantegénérique
CH_RDMA : MPI sur MPC Espace utilisateur
Espacesystème
Matériel
MPIDRIVER
PUT : La primitive d'écriture distante de lamachine MPC
Interface réseau : La carte FastHSL
RDMA : Primitive d'écriture distantegénérique
CH_RDMA : MPI sur MPC
PUT : La primitive d'écriture distante de lamachine MPC
MPI-MPC1 MPI-MPC2
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 l’impact de ces changements sur les performances.
![Page 28: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/28.jpg)
28/463ème partie - Optimisations des couches basses de communication
Une écriture distante en mode utilisateur
In itia lisa tio n E critu re d ista n te G estio n n a ire d 'in terru p tio n
A ccès en co n fig u ra tio n
C o n trô leu r résea u
esp a ce sy stèm e
m a tér ie l
P U T
b u s P C I
In itia lisa tio n m a tér ie lle
C o n trô leu r résea u
esp a ce sy stèm e
m a tér ie l
b u s P C I
In itia lisa tio n E critu re d ista n te S ig n a lisa tio n
A ccès en co n fig u ra tio n
esp a ce u tilisa teu rP U T
![Page 29: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/29.jpg)
29/463ème partie - Optimisations des couches basses de communication
Les problèmes à résoudre
Comment protéger l’accè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 d’un même message
soient consécutives dans la LME ?
![Page 30: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/30.jpg)
30/463ème partie - Optimisations des couches basses de communication
Principe de la méthode
m ém o ire v ir tu e lleP ro cessu s 2
L M E
L M R
p o in teu rs
m ém o ire v ir tu e lleP ro cessu s 1
L M E
L M R
p o in teu rs
m ém o ire p h y siq u e
po in teurs
L M R
L M E
N IC D M A
D M A
b u s P C I
![Page 31: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/31.jpg)
31/463ème partie - Optimisations des couches basses de communication
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 à l’initiative de MPI
![Page 32: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/32.jpg)
32/463ème partie - Optimisations des couches basses de communication
Les verrous
verrou = variable mémoire partagée entre les différents processus
à chaque opération est associé un verrou
prise et libération d’un verrou atomique au niveau du processeur
(test&set en mode utilisateur)
plusieurs verrous pour ne verrouiller que ce qui est nécessaire à
l’opération en cours
![Page 33: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/33.jpg)
33/463ème partie - Optimisations des couches basses de communication
Performances de MPI-MPC2
0
50
100
150
200
250
300
350
400
4501 4 16 64 256
1K 4K 16K
64K
256K
1024
K
4096
K
Taille du message (octets)
Déb
it (
Mb
its/
s)
MPI-MPC1
MPI-MPC2
421
Latence(µs)
Débit Max.(Mb/s)
Seuil(Ko)
Demi débit(Ko)
Latence RDV(µs)
MPI-MPC1 26 419 16 2 105MPI-MPC2 15 421 8 1 72
![Page 34: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/34.jpg)
34/463ème partie - Optimisations des couches basses de communication
Appels systèmes Interruptions Recopies RDMA_SENDProtocole short rdv short rdv short rdv short rdv
MPI-MPC1 1 1+6F 2 2+4F 2 0 1 1+F+NB_DMA*FMPI-MPC2 0 4F 0 0 2 0 1 1+F+NB_DMA*F
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
![Page 35: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/35.jpg)
35/46
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 d’adresses optimisées4. MPI-MPC3 : traductions d’adresses optimisées
5. Résultats expérimentaux
6. Conclusion
![Page 36: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/36.jpg)
36/464ème partie - Optimisations des traductions d’adresses
Objectifs de MPI-MPC3
Supprimer les appels système liés aux traductions d’adresses
S’affranchir de la discontinuité des tampons de l’application
en mémoire physique
Faire en sorte que la méthode proposée soit transparente :
pas de modification de l’OS et de la librairie C
pas d’ajout de primitives au standard MPI
pas de modification du code de l’application, 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
![Page 37: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/37.jpg)
37/464ème partie - Optimisations des traductions d’adresses
Principe de la méthode
1 . S a u v eg a rd e d es seg m en ts su r le d isq u e
zo n e p ile
zo n e d o n n ées
M ém o ire p h y siq u e......
2 . R éserv a tio n d e zo n es p h y siq u es co n tig u ës
4 . R eco p ie d es seg m en ts en m ém o ire p h y siq u e3 . P ro jectio n en m ém o ire v ir tu e lle
M ém o ire p h y siq u e......
A n cienseg m en t d e p ile
A n cien sseg m en ts d e
co d e e t d ed o n n ées
M ém o ire v ir tu e lle
D isq u e d u r lo c a l
S eg m en t d e p ile
S eg m en ts d eco d e e t d ed o n n ées
S eg m en t d e p ile
S eg m en ts d eco d e e t d ed o n n ées
D isq u e d u r lo c a l
M ém o ire p h y siq u e......
M ém o ire v ir tu e lle
![Page 38: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/38.jpg)
38/464ème partie - Optimisations des traductions d’adresses
Performances de MPI-MPC3
0
100
200
300
400
500
6001 4 16 64 256
1K 4K 16K
64K
256K
1024
K
4096
K
Taille du message (octets)
Déb
it (
Mb
its/
s) MPI-MPC1MPI-MPC2MPI-MPC3
485
Latence(µs)
Débit Max.(Mb/s)
Seuil(Ko)
Demi débit(Ko)
Latence RDV(µs)
MPI-MPC1 26 419 16 2 105MPI-MPC2 15 421 8 1 72MPI-MPC3 15 485 4 1,5 49
![Page 39: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/39.jpg)
39/464ème partie - Optimisations des traductions d’adresses
Appels systèmes Interruptions Recopies RDMA_SENDProtocole short rdv short rdv short rdv short rdv
MPI-MPC1 1 1+6F 2 2+4F 2 0 1 1+F+NB_DMA*FMPI-MPC2 0 4F 0 0 2 0 1 1+F+NB_DMA*FMPI-MPC3 0 0 0 0 2 0 1 1+F+F
Analyse des performances
Suppression des appels système liés aux traductions d’adresses
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
![Page 40: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/40.jpg)
40/46
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 d’adresses optimisées
5. Résultats expérimentaux5. Résultats expérimentaux
6. Conclusion
![Page 41: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/41.jpg)
41/46
C a lcu l d e R 1 C a lcu l d e R 2 C a lcu l d e R 3
E m issio n d e R 1 à 2 e t 3 E m issio n d e R 2 à 1 e t 3 E m issio n d e R 3 à 1 e t 2
R écep tio n d e R 2 e t R 3 R écep tio n d e R 1 e t R 2R écep tio n d e R 1 e t R 3
C a lcu l d e 2 C a lcu l d e 2 C a lcu l d e 2
P 1 P 2 P 3
5ème partie - Résultats expérimentaux avec des applications réelles
Résultats avec CADNA
CADNA : logiciel pour prendre en compte les erreurs
d’arrondi dans les calculs numériques
Taille dusystèmelinéaire
Nombred’échanges
Temps descommunications
(sec.)
Temps d’un échange
(µs)
MPI-MPC1 MPI-MPC2 MPI-MPC1 MPI-MPC2800 646682 51 31 79 481200 1450450 101 66 70 461600 2574140 191 128 74 502000 4018285 288 177 72 44
Temps moyen d’un échange (µs) 74 47
Gain de 36% avec MPI-MPC2
![Page 42: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/42.jpg)
42/465ème partie - Résultats expérimentaux avec des applications réelles
Résultats avec Laplace
Résolution de l’équation de Laplace par la méthode de
Jacobi sur 4 processeurs
Nombrede
colonnes
Nombred’itéra-
tions
Tempsséquentiel
(sec.)
Temps d’exécutionparallèle
(sec.)Speed-up
MPI-MPC2 MPI-MPC3 MPI-MPC2 MPI-MPC312800 3150 327,6 92,6 92,3 3,5 3,525600 3150 689,3 187,9 185,4 3,7 3,751200 3150 1441,3 391,5 384,8 3,7 3,7
Nombrede
colonnes
TailleFrontière
(Ko)
Nombred’échanges
de frontières
Temps d’échanges desfrontières
(sec.)
Différence
(sec.)
Gain
(%)MPI-MPC2 MPI-MPC3
12800 50 1,5 15,8 13,9 1,9 12%25600 100 1,5 31,0 26,9 4,1 13%51200 200 1,5 63,4 55,3 8,1 13%
![Page 43: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/43.jpg)
43/46
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 d’adresses optimisées
5. Résultats expérimentaux
6. Conclusion6. Conclusion
![Page 44: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/44.jpg)
44/466ème partie - Conclusion
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 d’adresses :
adresse virtuelle = adresse physique + déplacement
Gain en débit
Confirmation des résultats obtenus avec un ping-pong sur
deux applications réelles
![Page 45: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/45.jpg)
45/46
0%5%
10%15%20%25%30%35%40%45%50%
1 4 16 64 256
1K 4K 16K
64K
256K
1024
K
4096
K
Taille du message (octets)
Gai
n e
n d
ébit
(%
)
Gain MPI-MPC2 / MPI-MPC1 Gain MPI-MPC3 / MPI-MPC2
6ème partie - Conclusion
Résultats obtenus
26
15 15
0
5
10
15
20
25
30
Latence (µs)
MPI-MPC1
MPI-MPC2
MPI-MPC3
419 421
485
0
100
200
300
400
500
600
Débit max (Mbits/s)
MPI-MPC1
MPI-MPC2
MPI-MPC3
![Page 46: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/46.jpg)
46/466ème partie - Conclusion
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 d’autres plate-formes matérielles :
Myrinet
ANI/HSL
![Page 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/47.jpg)
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
![Page 48: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/48.jpg)
48/462ème partie - Architecture de MPI sur une primitive d’écriture distante
La signalisation
SCTL_FLAG RCTL_FLAG SDATA_FLAG RDATA_FLAG
CHRDMA_NET_LOOKUP
CH
_RD
MA
RD
MA
noeud 1 noeud 2 noeud 3
Espace u tilisa teur
Espace systèm e
RDMA_SENT_NOTIFY(type, sid) RDMA_RECV_NOTIFY(nsrc, type, rid)
Interruption matérielle
handler d'interruptions
NIC
M atérie l
PU
T
fin d 'ém ission ou fin de réception
![Page 49: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/49.jpg)
49/463ème partie - Optimisations des couches basses de communication
S C T L _ F L A G R C T L _ F L A G S D A T A _ F L A G R D A T A _ F L A G
C H R D M A _ N E T _ L O O K U P (b lo ck in g )
CH
_RD
MA
RD
MA
n o e u d 1 n o e u d 2 n o e u d 3
E sp ace u tilisa teu r
R D M A _ S E N T _ N O T IF Y (ty p e , s id )
R D M A _ R E C V _ N O T IF Y (n src , ty p e , r id )
reg istres in tern esNIC
M atérie l
PU
T
B u s P C I
R D M A _ N E T _ L O O K U P(b lo ck in g )
P U T _ F L U S H _ L M E P U T _ F L U S H _ L M R
accès en co n figu ra tio n
La signalisation
![Page 50: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/50.jpg)
50/463ème partie - Optimisations des couches basses de communication
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
...L M R _ C U R
L M R _ N E W
L M R
......
L M E _ C U R
L M E _ N E W
L M E
...
![Page 51: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/51.jpg)
51/462ème partie - Architecture de MPI sur une primitive d’écriture distante
Les émissions/réceptions simultanées
Pourquoi : pouvoir traiter plusieurs émissions/réceptions
simultanément besoin d’identifier une communication
x
1 2
sid rid
3 lib re
2 1
Emissions de x
z
y
1 1
rid sid
3 lib re
2 1
Réceptions de y
1 2
rid sid
3 lib re
2 lib re
Réceptions de z
1 1
sid rid
3 lib re
2 lib re
Emissions de z
(1 , 2)
(2 , 1)(1 , 1)
4 lib re
4 lib re
4 lib re
4 lib re
On utilise des tables associatives :
- sid cho is i par l'émetteur- rid cho is i par le récepteur
1 canal (sid,rid) à la durée de vie d'un message
![Page 52: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/52.jpg)
52/464ème partie - Optimisations des traductions d’adresses
Les problèmes à résoudre
Comment faire pour projeter les zones contiguës en
mémoire physique dans la mémoire virtuelle du processus à
l’emplacement des anciens segments ?
utilisation d’une 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 l’utilisateur avant l’exécution de l’application ?
utilisation d’un langage objet permettant d ’exécuter du code avant le début de l’application : ces opérations sont réalisées dans le constructeur de l’objet
![Page 53: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/53.jpg)
53/46
Espace d’adressage
M ém o irev irtu e lle d u
n o y a u
E n v iro n n em en t
A rg u m en ts
P ile
D o n n ées (b ss)
D o n n ées (d a ta )
C o d e
T a s
0 x F F F F F F F F
0 x C 0 0 0 0 0 0 0
0 x 0 8 0 4 8 0 0 0
L ib ra ir iesd y n a m iq u es 0 x 4 0 0 0 0 0 0 0
0 x 0 0 0 0 0 0 0 0
1 G
iga-
octe
ts3
Gig
a-oc
tets
![Page 54: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/54.jpg)
54/46
Le tas
D o n n ées (b ss)
D o n n ées (d a ta )
C o d e
zo n e lib re
0 x 0 8 0 4 8 0 0 0
b rkzo n e b o u ch o n
s ta r t_ b rkzo n e d o n n ées
M ém o ire p h y siq u e M ém o ire v ir tu e lle d u p ro cessu s
![Page 55: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/55.jpg)
55/46
La pile
zo n e p ile
M ém o ire p h y siq u e M ém o ire v ir tu e lle d u p ro cessu s
E n v iro n n em en t
A rg u m en ts
A n cien n e p ile
0 x C 0 0 0 0 0 0 0
L ib ra ir iesd y n a m iq u es
sp
E n v iro n n em en t
A rg u m en ts
N o u v e lle p ilesp
0 x 4 0 0 0 0 0 0 0
![Page 56: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/56.jpg)
56/46
Compilation
class Redistrib{ Redistrib(); ~Redistrib(); ...}
#include "Redistrib.hh"// constructeurRedistrib::Redistrib(){ //opérations à réaliser //avant le main ...}// destructeurRedistrib::~Redistrib(){ ...}
main(){
...
}
M o n a p p li.c o u M o n a p p li.ccR ed istr ib .ccR ed istr ib .h h
L ib ra ir ie d y n a m iq u e (lib R ed is tr ib .so ) A p p lica tio n M P I
#include "Redistrib.hh"
Redistrib MPC;
m p c.cc
![Page 57: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/57.jpg)
57/46
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
![Page 58: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/58.jpg)
58/46
M ém o ire p h y siq u e
E sp a ce d 'a d ressa g e g lo b a l d e S C I
N o eu d i N o eu d j
E X P O R T IM P O R T
Le réseau SCI
lectures/écritures distantes mais paradigme de programmation différent
zones exportées/importées limitées
correspondance virtuelle/physique dans l’interface réseau
![Page 59: 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.](https://reader035.fdocument.pub/reader035/viewer/2022070309/551d9da5497959293b8d7426/html5/thumbnails/59.jpg)
59/46
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)