Top Banner
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@lip6 .fr
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.

Apr 04, 2015

Download

Documents

Richaud Chapuis
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.

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

[email protected]

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

[email protected]

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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)