49
L’algorithme TwigStack L’architecture des cartes graphiques NVidia L’implementation effectu´ ee Parall´ elisation de l’algorithme TwigStack sur carte graphique ST50 et Master AHPM - Projet de fin d’´ etudes Vincent Jordan GI ILC Suiveur en entreprise : Hiroyuki Kitagawa Suiveur UTBM : Fabrice Lauri 14 d´ ecembre 2010 K D E Da t a Ba se L a b . 1 / 42 Parall´ elisation de l’algorithme TwigStack sur carte graphique N

Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll 3

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de l’algorithme TwigStack sur cartegraphique

ST50 et Master AHPM - Projet de fin d’etudes

Vincent Jordan GI ILC

Suiveur en entreprise : Hiroyuki KitagawaSuiveur UTBM : Fabrice Lauri

14 decembre 2010

KDEDataBaseLab.

1 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 2: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

2 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 3: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

<?xml version="1.0" encoding="UTF-8" ?>

<library>

<category name="France">

<book>

<title language="English">The Little Prince</title>

<title language="日本語">星の王子さま</title>

<author>Antoine de Saint-Exupery</author>

</book>

</category>

<category name="England">

<book>

<title language="English">Alice in Wonderland</title>

<title language="日本語">ふしぎの国のアリス</title>

<author>Lewis Carroll</author>

</book>

</category>

</library>3 / 42

Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 4: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Exemple de requete

Requete

Quel est le titre en anglais des livres francais de la bibliotheque?

Requete XPath correspondante

/library/category[@name=France]/book/title[@language=English]

Reponse

<title language="English">The Little Prince</title>

4 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 5: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Exemple de requete

Requete

Quel est le titre en anglais des livres francais de la bibliotheque?

Requete XPath correspondante

/library/category[@name=France]/book/title[@language=English]

Reponse

<title language="English">The Little Prince</title>

4 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 6: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Exemple de requete

Requete

Quel est le titre en anglais des livres francais de la bibliotheque?

Requete XPath correspondante

/library/category[@name=France]/book/title[@language=English]

Reponse

<title language="English">The Little Prince</title>

4 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 7: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Algorithme de calcul des requetes XML

Holistic twig joins: optimal XML pattern matching

Nicolas Bruno, Nick Koudas, Divesh SrivastavaInternational Conference on Management of DataProceedings of the 2002 ACM SIGMOD international conference on Managementof data

5 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 8: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

6 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 9: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Arbre de la requete XPath

Element

Attribut

Text

library

category

book

title

@language

English

@name

France

/library/category[@name=France]/book/title[@language=English]

parseurXPath

7 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 10: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Chemins de la requete XPath

library

category

book

title

@language

English

@name

France

library

category

@name

France

library

category

book

title

@language

English

8 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 11: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

metadonnees XML

<library1>

<category2

name3="France4">

<book6>

<title7

language8="English9">

The11 Little12 Prince13

</title14>

</book15>

</category16>

</library17>

valeur gch drt proflibrary 1 17 0

category 2 16 1

book 6 15 2

title 7 14 3

name 3 5 2

language 8 10 4

France 4 4 3

English 9 9 5

The 11 11 4

Little 12 12 4

Prince 13 13 4

9 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 12: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

10 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 13: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

elem1/elem2[@arg1=text1][/elem3=text2]

requête XPath

fichier dedonnées XML

data

.xm

l

elem1

elem2

elem3@arg1

text1 text2

elem1

elem2

elem3

text2

elem1 1

2

3

4

5

18

17

10

6

5

0

1

2

3

4

arbre de la requête

metadonnées

...

arbre de requêteavec metadonnées

(1,18,0)...

(3,10,2)...

(4,6,3)...

(5,5,4)...

(8,8,3)...

(9,9,4)...

??

Phase 1Phase 2

Liste dechemins =résultatintermédaire

Liste d'arbres= résultat final

algorithme TwigStack

11 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 14: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

12 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 15: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

L’encodage compact sous forme de pile 1

library

category

book@name

France

English

title

@language

<library¹> <category² name³="France⁴"> <book⁵> <title⁶ language⁷="English⁸">The⁹ [...]</title¹²> </book¹³> </category¹⁴> <category¹⁵ name¹⁶="England¹⁷"> <book¹⁸> <title¹⁹ language²⁰="English²¹">Alice²² [...]</title²⁵> </book²⁶> </category²⁷></library²⁸>

library category book title @name @language France English

1 2 3 4

arbre de requête Données XML

Piles des noeudsde l'arbre de requête

13 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 16: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

L’encodage compact sous forme de pile 2

library

category

book@name

France

English

title

@language

<library¹> <category² name³="France⁴"> <book⁵> <title⁶ language⁷="English⁸">The⁹ [...]</title¹²> </book¹³> </category¹⁴> <category¹⁵ name¹⁶="England¹⁷"> <book¹⁸> <title¹⁹ language²⁰="English²¹">Alice²² [...]</title²⁵> </book²⁶> </category²⁷></library²⁸>

library category book title @name @language France English

1 2 5 6

arbre de requête Données XML

Piles des noeudsde l'arbre de requête 7 8

14 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 17: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

L’encodage compact sous forme de pile 3

library

category

book@name

France

English

title

@language

<library¹> <category² name³="France⁴"> <book⁵> <title⁶ language⁷="English⁸">The⁹ [...]</title¹²> </book¹³> </category¹⁴> <category¹⁵ name¹⁶="England¹⁷"> <book¹⁸> <title¹⁹ language²⁰="English²¹">Alice²² [...]</title²⁵> </book²⁶> </category²⁷></library²⁸>

library category book title @name @language France English

1 15 18 19

arbre de requête Données XML

Piles des noeudsde l'arbre de requête20 21

15 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 18: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

L’encodage compact sous forme de pile 4

<library¹> <category² name="by country"> <category⁶ name="Europe"> <category¹⁰ name="Western Europe"> <category¹⁴ name="France"> <book¹⁷> <title¹⁸ language¹⁹="English²⁰">The Little Prince</title> </book> </category> </category>[...]

library category book title @name @language France English

Piles des noeudsde l'arbre de requête1 2 1817 19 20

Le même tag XMLpeut être inclu

61014

!

/library//category[@name=France]//book/title[@language=English]

16 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 19: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Fusion (phase 2)

(1,48,0)

(2,26,1)

(3,3,2)

(4,4,3)

(5,25,2)

(6,12,3)

(7,7,4)

(8,8,5)

(1,48,0)

(2,26,1)

(30,47,2)

(31,37,3)

(32,32,4)

(33,33,5)

(1,48,0)

(27,48,1)

Ces noeudspeuvent être fusionnés

en fonctionde l'arbre de requête

17 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 20: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

18 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 21: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Pre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

Parallel TwigStack

A Study on Parallel Holistic Twig Joins for XML QueryProcessing

Imam MachdiPhD dissertation at Kitagawa Data Engineering lab., March 2010

19 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 22: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

20 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 23: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Architecture materielle

21 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 24: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Architecture logicielle

...Grid

Block

Warp

Thread

Execution du code GPU depuis le code CPU

myCUDAKernel<<gridSize, blockSize>>(int* arg1, ...);

22 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 25: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Liens entre les representations materielle et logicielle

... ...

⬇ représentation logicielle

représentation matérielle⬊

23 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 26: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Une architecture massivement parallele

Les tailles de Warp, block et grid ont des limites materielles

1 Taille d’un Warp: 32

2 Nombre maxi de thread par blocks : 512 (ou 16 warps)

3 Nombre maxi de thread actif simultanement pour chaquemultiprocesseur : 1024

4 Nombre maxi de warp sur un multiprocesseur : 32

5 Nombre maxi de block sur un multiprocesseur : 8

Exemple

32 threads x 4 warps x 8 blocks x 24 multiprocesseurs = 24.576

24 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 27: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

25 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 28: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Limitations de l’architecture materielle ”Tesla”

Architecture SIMT ”Single Instruction Multiple Threads”: Tousles threads dans le meme warp executent exactementla meme instruction au meme moment.

Pas d’appel de function Toutes les functions sont inlinees aumoment de la compilation. Les fonctions recursivesde sont pas autorisees.

Pas d’allocation dynamique de memoire Toute la memoire doitetre allouee avant l’execution.

Pas de synchronisation entre les threads Il n’est pas recommended’implementer une ”section critique”.

Pas de cache materiel chaque acces a la memoire globale coutedes centaines de cycles GPU.

Pas de pointeur sur la memoire locale cette possibilite ne dependque du compilateur.

26 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 29: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Limitations de l’architecture materielle ”Tesla”

Architecture SIMT ”Single Instruction Multiple Threads”: Tousles threads dans le meme warp executent exactementla meme instruction au meme moment.

Pas d’appel de function Toutes les functions sont inlinees aumoment de la compilation. Les fonctions recursivesde sont pas autorisees.

Pas d’allocation dynamique de memoire Toute la memoire doitetre allouee avant l’execution.

Pas de synchronisation entre les threads Il n’est pas recommended’implementer une ”section critique”.

Pas de cache materiel chaque acces a la memoire globale coutedes centaines de cycles GPU.

Pas de pointeur sur la memoire locale cette possibilite ne dependque du compilateur.

26 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 30: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Limitations de l’architecture materielle ”Tesla”

Architecture SIMT ”Single Instruction Multiple Threads”: Tousles threads dans le meme warp executent exactementla meme instruction au meme moment.

Pas d’appel de function Toutes les functions sont inlinees aumoment de la compilation. Les fonctions recursivesde sont pas autorisees.

Pas d’allocation dynamique de memoire Toute la memoire doitetre allouee avant l’execution.

Pas de synchronisation entre les threads Il n’est pas recommended’implementer une ”section critique”.

Pas de cache materiel chaque acces a la memoire globale coutedes centaines de cycles GPU.

Pas de pointeur sur la memoire locale cette possibilite ne dependque du compilateur.

26 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 31: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Limitations de l’architecture materielle ”Tesla”

Architecture SIMT ”Single Instruction Multiple Threads”: Tousles threads dans le meme warp executent exactementla meme instruction au meme moment.

Pas d’appel de function Toutes les functions sont inlinees aumoment de la compilation. Les fonctions recursivesde sont pas autorisees.

Pas d’allocation dynamique de memoire Toute la memoire doitetre allouee avant l’execution.

Pas de synchronisation entre les threads Il n’est pas recommended’implementer une ”section critique”.

Pas de cache materiel chaque acces a la memoire globale coutedes centaines de cycles GPU.

Pas de pointeur sur la memoire locale cette possibilite ne dependque du compilateur.

26 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 32: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Limitations de l’architecture materielle ”Tesla”

Architecture SIMT ”Single Instruction Multiple Threads”: Tousles threads dans le meme warp executent exactementla meme instruction au meme moment.

Pas d’appel de function Toutes les functions sont inlinees aumoment de la compilation. Les fonctions recursivesde sont pas autorisees.

Pas d’allocation dynamique de memoire Toute la memoire doitetre allouee avant l’execution.

Pas de synchronisation entre les threads Il n’est pas recommended’implementer une ”section critique”.

Pas de cache materiel chaque acces a la memoire globale coutedes centaines de cycles GPU.

Pas de pointeur sur la memoire locale cette possibilite ne dependque du compilateur.

26 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 33: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Limitations de l’architecture materielle ”Tesla”

Architecture SIMT ”Single Instruction Multiple Threads”: Tousles threads dans le meme warp executent exactementla meme instruction au meme moment.

Pas d’appel de function Toutes les functions sont inlinees aumoment de la compilation. Les fonctions recursivesde sont pas autorisees.

Pas d’allocation dynamique de memoire Toute la memoire doitetre allouee avant l’execution.

Pas de synchronisation entre les threads Il n’est pas recommended’implementer une ”section critique”.

Pas de cache materiel chaque acces a la memoire globale coutedes centaines de cycles GPU.

Pas de pointeur sur la memoire locale cette possibilite ne dependque du compilateur.

26 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 34: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Liens entre l’architecture materielle et logicielleDifficultees de debuggage

Difficultes de debuggage consecutives a ces limitations

Les functions sont inlinees Pas de ”backtrace” des fonctions.

Pas d’appel de function Pas de ”printf”.

Pas d’allocation de memoire dynamique De gros morceaux dememoire sont alloue. Les mauvais acces memoire seproduisent souvent dans de la memoire allouee et nedeclanche pas d’erreur.

27 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 35: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

28 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 36: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

elem1/elem2[@arg1=text1][/elem3=text2]

requête XPath

fichier dedonnées XML

data

.xm

l

elem1

elem2

elem3@arg1

text1 text2

elem1

elem2

elem3

text2

elem1 1

2

3

4

5

18

17

10

6

5

0

1

2

3

4

arbre de la requête

metadonnées

...

arbre de requêteavec metadonnées

(1,18,0)...

(3,10,2)...

(4,6,3)...

(5,5,4)...

(8,8,3)...

(9,9,4)...

??

Phase 1Phase 2

Liste dechemins =résultatintermédaire

Liste d'arbres= résultat final

algorithme TwigStack

29 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 37: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

fichier decreationBD

fichier dedonnéesXML

fichier d'insertionBD

requêteXPath

A

B

Ca//b[c=d]

<?xml versi<a type="ma

CREATE TABLINSERT FROM

'a', 1, 15'b', 2, 7

générateurmetadonnées

sqlite3

ParseurXPath

Lecteurmetadonnées

AlgorithmeTwigStack

moteur de requêtes

sortie

incluparseurlibXML SAX

utiliseflex tockenizeurlemon parseurgenerateurs

incluclient BDsqlite3

incluruntimeCUDA

entrée

30 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 38: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Initialisation (→ CPU)

library

category book

@name

France

English

title

@language

(1,48,0)

(27,48,1) (2,26,1)

(5,25,2) (30,47,2)(28,28, 2) (3,3,2)

(4,4,3)

(6,12,3) (13,17,3) (31,37,3) (38,42,3)

(7,7,4) (14,14,4) (32,32,4) (39,39,4)

(8,8,5) (33,33,5)

<library¹> <category² name³="France⁴"> <book⁵> <title⁶ language⁷="English⁸">The⁹ [...]</title¹²> <title¹³ language¹⁴="日本語¹⁵">星の王子さま¹⁶</title¹⁷> <author¹⁸>Antoine¹⁹ de²⁰ Saint-Exupéry²¹</author²²> </book²⁵> </category²⁶> <category²⁷ name²⁸="England²⁹"> <book³⁰> <title³¹ language³²="English³³">Alice³⁴ [...]</title³⁷> <title³⁸ language³⁹="日本語⁴⁰">ふしぎの国のアリス⁴¹</title⁴²> <author⁴³>Lewis⁴⁴ Carroll⁴⁵</author⁴⁶> </book⁴⁷> </category⁴⁸></library⁴⁹>

/library/category[@name=France]/book/title[@language=English]

31 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 39: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Partitionnement (→ CPU)

library

category book

@name

France

English

title

@language

(1,58,0)

(27,57,1) (27,57,1) (2,26,1)

(5,25,2) (30,56,2) (30,56,2)(28,28, 2) (3,3,2)

(4,4,3)

(6,12,3) (13,17,3) (31,37,3) (38,42,3) (43,51,3)

(7,7,4) (14,14,4) (32,32,4) (39,39,4) (44,44,4)

(8,8,5) (33,33,5)

<library¹> <category² name³="France⁴"> <book⁵> <title⁶ language⁷="English⁸">The⁹ [...]</title¹²> <title¹³ language¹⁴="日本語¹⁵">星の王子さま¹⁶</title¹⁷> <author¹⁸>Antoine¹⁹ de²⁰ Saint-Exupéry²¹</author²²> </book²⁵> </category²⁶> <category²⁷ name²⁸="England²⁹"> <book³⁰> <title³¹ language³²="日本語³³">ふしぎの国のアリス³⁴</title³⁵> <title³⁶ language³⁷="English³⁸">Alice³⁹ in⁴⁰ wonderland⁴¹</title⁴²> <title⁴³ language⁴⁴="Français⁴⁵">Alice⁴⁶ au⁴⁷ pays⁴⁸ des⁴⁹ merveilles⁵⁰</title⁵¹> <author⁵²>Lewis⁵³ Carroll⁵⁴</author⁵⁵> </book⁵⁶> </category⁵⁷></library⁵⁸>

partition 1

partition 2

!(1,48,0);(27,57,1);(30,56,2) sont dupliqués carils sont nécessaire aux 2 partitions

32 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 40: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Execution de la phase 1 en parallele (→ GPU)

library

category

book@name

France

English

title

@language

(1,48,0)

(2,26,1)

(5,25,2)(3,3,2)

(4,4,3)

(6,12,3) (13,17,3)

(7,7,4) (14,14,4)

(8,8,5)

library

category

book@name

France

English

title

@language

(1,48,0)

(27,48,1)

(30,47,2)(28,28, 2)

(31,37,3) (38,42,3)

(32,32,4) (39,39,4)

(33,33,5)

thread 1 thread 2(1

,48,

0)

(2,2

6,1)

(3,3

,2)

(4,4

,3)

(5,2

5,2)

(6,1

2,3)

(7,7

,4)

(8,8

,5)

(1,4

8,0)

(2,2

6,1)

(30,

47,2

)

(31,

37,3

)

(32,

32,4

)

(33,

33,5

)

(1,4

8,0)

(27,

48,1

)

33 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 41: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Phase 2 : fusion (→ CPU)

(1,48,0)

(2,26,1)

(3,3,2)

(4,4,3)

(5,25,2)

(6,12,3)

(7,7,4)

(8,8,5)

(1,48,0)

(2,26,1)

(30,47,2)

(31,37,3)

(32,32,4)

(33,33,5)

(1,48,0)

(27,48,1)

Ces noeudspeuvent être fusionnés

en fonctionde l'arbre de requête

34 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 42: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

35 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 43: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

”Memory pool”

mémoire globale GPUbitfield des morceaux de mémoireverrou du

bitfield

36 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 44: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Structure de donnees v array

entête cases

de nouvelles cases peuvent être ajoutées en tête ou en fin de tableauavec un coût faible en accès mémoire.

NULL

NULL

pointeur surle tableau

0 1 2 3 4 5 6

Envoi d’un v array de la memoire CPU vers la memoire GPU

v_array_post_copy(

q_data->metadata_elems,

&cuda_malloc_func,

NULL, /* malloc function arg. (e.g memory pool) */

&cuda_memcpyH2D_func);

37 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 45: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Concu pour les GPU

1 Tous les morceaux de tableau ont la meme taille (→ gestionaire dememory)

2 Les morceaux de tableau contiennent vraiment les donnees(utilisation de memcpy), pas de pointeur (→ alignement qui permetune lecture de la memoire plus efficace)

3 Tres parametrable : les fonctions malloc, memcpy et free sontdonnees en parametre.Le meme code source peut etre utilise pour la partie CPU ainsi quepour la partie GPU (meme pour les transferts memoires”CPU→GPU” et ”GPU→CPU”).

4 Dans le cas ou chaque morceau contient 32 cases, un warp peuttravailler en utilisant 1 thread par case (pour une actionparallelisable)

38 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 46: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Plan

1 L’algorithme TwigStackPre-calcul des donneesSchema global de l’algorithmeL’encodage compact sous forme de pileParallelisation de TwigStack

2 L’architecture des cartes graphiques NVidiaLiens entre l’architecture materielle et logicielleDifficultees de debuggage

3 L’implementation effectueeParallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

39 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 47: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

Ameliorations futures

Memory pool ameliorer la gestion de la memoire libre (un simple”bitfield” pour l’instant)

XMalloc: A Scalable Lock-free Dynamic Memory Allocatorfor Many-core Machines

Xiaohuang Huang, Christopher I. Rodrigues, Stephen Jones, Ian Buck, andWen-mei HwuProceedings of the First International Workshop on Frontier of GPUComputing (FGC), in conjunction with the 10th IEEE International Conferenceon Computer and Information Technology (CIT 2010), June 2010.

Memoire partagee Un morceau de tableau pourrait etre stockeautomatiquement en memoire partagee

Parallelisation de la phase 2 (task parallelism)

Utiliser les 31 threads restant dans un warp?

40 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 48: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

mémoire globaleGPU

memory pool

mémoire allouée pendantl'exécution sur GPU

mémoire allouée avantl'exécution sur GPU

mémoire partagée

multicœur

copie de la mémoire globalevers la mémoire partagée

41 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N

Page 49: Parall elisation de l’algorithme TwigStack sur carte graphique · 2018. 3. 3. · Lewis Carroll    3

L’algorithme TwigStackL’architecture des cartes graphiques NVidia

L’implementation effectuee

Parallelisation de TwigStack sur carte graphiquePour surmonter les limitations du GPUAmeliorations futures

質問がありますか?

Des questions ?

42 / 42Parallelisation de l’algorithme TwigStack sur carte graphique

N