Systemes Multi-Agents etcalcul haute performance sur GPU
Fabien MICHELEmmanuel HERMELLIN
equipe SMILELIRMM - Universite Montpellier II - CNRS - France
MIPS - Seminaire logiciels embarques25/11/2014
Fabien MICHEL - LIRMM SMA & GPGPU 1
SMAGPGPU
SMA + GPGPU
Plan
1 SMA : Systemes Multi-Agents
2 GPGPU : General-Purpose on Graphics Processing Units
3 SMA et GPGPU
Fabien MICHEL - LIRMM SMA & GPGPU 2
SMAGPGPU
SMA + GPGPU
IADExemplesSimulation de SMA
Plan
1 SMA : Systemes Multi-Agents
2 GPGPU : General-Purpose on Graphics Processing Units
3 SMA et GPGPU
Fabien MICHEL - LIRMM SMA & GPGPU 3
SMAGPGPU
SMA + GPGPU
IADExemplesSimulation de SMA
Systemes Multi-Agents (IA Distribuee)
IA “classique” : programmeexpert mais isole
Fabien MICHEL - LIRMM SMA & GPGPU 4
SMAGPGPU
SMA + GPGPU
IADExemplesSimulation de SMA
Systemes Multi-Agents (IA Distribuee)
IA Distribuee : programmes “simples” eninteraction
Fabien MICHEL - LIRMM SMA & GPGPU 5
SMAGPGPU
SMA + GPGPU
IADExemplesSimulation de SMA
Systemes Multi-Agents
Exemples de SMA reels (systemes complexes)
Fabien MICHEL - LIRMM SMA & GPGPU 6
SMAGPGPU
SMA + GPGPU
IADExemplesSimulation de SMA
Simulation de Systemes Multi-Agents
Principes de modelisation
les entites du niveau micro (agents)
l’environnement des agents et sa dynamique
les interactions agent / agent et agent / environnement
Exemple d’application : www.massivesoftware.com
Fabien MICHEL - LIRMM SMA & GPGPU 7
SMAGPGPU
SMA + GPGPU
IADExemplesSimulation de SMA
Simulations multi-agents
Verrou majeur : les besoins en ressource de calcul
passage a l’echelle difficile
expressivite des modeles limitee
interaction temps reel difficile
Solution HPC : utilisation du GPU (Graphical Processing Unit)
peu couteux
disponible sur des PC ordinaires
Fabien MICHEL - LIRMM SMA & GPGPU 8
SMAGPGPU
SMA + GPGPU
IADExemplesSimulation de SMA
Simulations multi-agents
Verrou majeur : les besoins en ressource de calcul
passage a l’echelle difficile
expressivite des modeles limitee
interaction temps reel difficile
Solution HPC : utilisation du GPU (Graphical Processing Unit)
peu couteux
disponible sur des PC ordinaires
Fabien MICHEL - LIRMM SMA & GPGPU 8
SMAGPGPU
SMA + GPGPU
Plan
1 SMA : Systemes Multi-Agents
2 GPGPU : General-Purpose on Graphics Processing Units
3 SMA et GPGPU
Fabien MICHEL - LIRMM SMA & GPGPU 9
SMAGPGPU
SMA + GPGPU
Specificites des GPU
Fabien MICHEL - LIRMM SMA & GPGPU 10
SMAGPGPU
SMA + GPGPU
Performances des GPU
Fabien MICHEL - LIRMM SMA & GPGPU 11
SMAGPGPU
SMA + GPGPU
GPGPU : General-Purpose on Graphics Processing Units
Fabien MICHEL - LIRMM SMA & GPGPU 12
SMAGPGPU
SMA + GPGPU
GPGPU : domaines applicatifs (developer.nvidia.com/about-cuda)
Fabien MICHEL - LIRMM SMA & GPGPU 13
SMAGPGPU
SMA + GPGPU
Exemples d’applications embarquees
Fabien MICHEL - LIRMM SMA & GPGPU 14
SMAGPGPU
SMA + GPGPU
Programmation GPGPU
Difficultes
Repose sur une architecture tres specialisee
Pas de programmation objet (stream processing paradigm)
=⇒ Necessite des competences avancees
Fabien MICHEL - LIRMM SMA & GPGPU 15
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Plan
1 SMA : Systemes Multi-Agents
2 GPGPU : General-Purpose on Graphics Processing Units
3 SMA et GPGPU
Fabien MICHEL - LIRMM SMA & GPGPU 16
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Approches existantes[Richmond et al. 10, Demeulemeester et al. 11, D’Souza et al. 08, Silva et al. 10 . . . ]
Sugarscape on steroids [D’Souza et al. 08]2 millions d’agents sur 2560x1024, avec 196 cœurs
Fabien MICHEL - LIRMM SMA & GPGPU 17
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Approches existantes[Richmond et al. 10, Demeulemeester et al. 11, D’Souza et al. 08, Silva et al. 10 . . . ]
FLAME GPU framework [Richmond et al. 10]
Fabien MICHEL - LIRMM SMA & GPGPU 18
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Tout-sur-GPU : benefices et limitations
Benefices
Tres rapide sur des PCs ordinaires
Scalabilite : permet la simulation de millions d’agents
Limitations des approches Tout-sur-GPU
Traduction de modele OO pour le GPGPU : programmes TREScomplexes, difficiles a faire evoluer et a maintenir.=⇒ (1) limite l’accessibilite et la reutilisabilite=⇒ (2) limite la portee des plates-formes developpees
Fabien MICHEL - LIRMM SMA & GPGPU 19
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Tout-sur-GPU : benefices et limitations
Benefices
Tres rapide sur des PCs ordinaires
Scalabilite : permet la simulation de millions d’agents
Limitations des approches Tout-sur-GPU
Traduction de modele OO pour le GPGPU : programmes TREScomplexes, difficiles a faire evoluer et a maintenir.=⇒ (1) limite l’accessibilite et la reutilisabilite=⇒ (2) limite la portee des plates-formes developpees
Fabien MICHEL - LIRMM SMA & GPGPU 19
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Approches hybrides
Fabien MICHEL - LIRMM SMA & GPGPU 20
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Integration du GPGPU dans TurtleKit 3 www.turtlekit.org
Objectifs TurtleKit
(1) Scalabilite grace au GPU=⇒ populations et environnements plus grands
(2) Conserver l’accessibilite de la plate-forme=⇒ garder un modele oriente objet=⇒ Pas de Tout-sur-GPU ⇒ integration incrementale
Fabien MICHEL - LIRMM SMA & GPGPU 21
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Integration du GPGPU dans TurtleKit 3 www.turtlekit.org
Objectifs TurtleKit
(1) Scalabilite grace au GPU=⇒ populations et environnements plus grands
(2) Conserver l’accessibilite de la plate-forme=⇒ garder un modele oriente objet=⇒ Pas de Tout-sur-GPU ⇒ integration incrementale
Fabien MICHEL - LIRMM SMA & GPGPU 21
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
TURTLEKIT : simulation de SMA spatialises
Fabien MICHEL - LIRMM SMA & GPGPU 22
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
TURTLEKIT : simulation de SMA spatialises
Fabien MICHEL - LIRMM SMA & GPGPU 23
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
TURTLEKIT : simulation de SMA spatialises
Fabien MICHEL - LIRMM SMA & GPGPU 24
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Exemple de calcul couteux : evaporation d’une pheromone
Evaporation d’une pheromone : version sequentielle
Procedure evapSeq(grille,largeur,hauteur,evapCoef)Pour i de 0 a largeur faire
Pour j de 0 a hauteur fairegrille[i][j]← grille[i][j] × evapCoef ;
Fin PourFin Pour
Fin
Algorithme 1: evaporation CPU
Fabien MICHEL - LIRMM SMA & GPGPU 25
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Programmation GPGPU
Stream Processing
Un jeu de donnees (le flux – stream)Un noyau de calcul – kernel, appliquee a chaque element du flux.
Fabien MICHEL - LIRMM SMA & GPGPU 26
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Le module de diffusion GPU : Exemple de l’evaporation
Evaporation d’une pheromone : version GPU
Procedure evapGPU(grille,largeur,hauteur,evapCoef)i ← blockIdx.x × blockDim.x + threadIdx.x ;j ← blockIdx.y × blockDim.y + threadIdx.y ;Si (i < largeur ET j < hauteur ) Alors
grille[i][j]← grille[i][j] × evapCoef ;Fin Si
Fin
Algorithme 2: evaporation GPU
Fabien MICHEL - LIRMM SMA & GPGPU 27
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Resultats
Fabien MICHEL - LIRMM SMA & GPGPU 28
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Conclusion
Fabien MICHEL - LIRMM SMA & GPGPU 29
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Conclusion
Fabien MICHEL - LIRMM SMA & GPGPU 30
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Merci de votreattention
Fabien MICHEL - LIRMM SMA & GPGPU 31
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
TurtleKit 3
Fabien MICHEL - LIRMM SMA & GPGPU 32
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Fabien MICHEL - LIRMM SMA & GPGPU 33
SMAGPGPU
SMA + GPGPU
Tout-sur-GPUApproches hybridesTurtleKit 3
Fabien MICHEL - LIRMM SMA & GPGPU 34