Simulation parallèle des systèmes multi-agent et son

publicité
Centre
Charles Hermite
PRiSM UVSQ
http://www.prism.uvsq.fr/~dedu/parssap
le 22 avril 2003
Eugen Dedu
Simulation parallèle des systèmes
multi-agent et son application au trafic
routier
UVSQ
1. Nouveau modèle de simulation des SMA
2. Algorithmique parallèle du modèle
•
•
Conclusions
•
2
3. Implantation parallèle portable du modèle (bibliothèque), application
au trafic routier
•
– 2.0 Parallélisme dans l’implantation
– 2.1 Percept de la vision
– 2.2 Percept de la détection des potentiels
Introduction
•
Plan & Contributions
– explications
– informations nouvelles / intéressantes
• Choix de la façon :
– algorithmique parallèle et performances
– SMA et application (trafic routier)
• Centré sur le thème :
Avant tout…
3
•
•
•
Jacques Ferber (pionnier)
– société : populations urbaines,
trafic routier
– biologie, étude des
comportements : populations
de fourmis, d’oiseaux
Domaines d’applications :
entité autonome
a un but
vit dans un environnement
communique avec
l'environnement
– agents situés
–
–
–
–
Agent :
perceptions
actions
coopération
comportement
environnement
4
Introduction : systèmes multi-agent
•Origin 2000, 64 processeurs, 4 Mo cache, 24 Go mémoire
•Sun 450, 4 processeurs, 4 Mo cache, 1 Go mémoire
•IA-64 Itanium SMP, 4 processeurs
•PCs SMP bon marché
•MIMD (modernes)
•DSM
•MVP
5
•OpenMP
•multi-threading
•envoi de messages
•multi-processus
Exemple :
Ordinateur à
4 processeurs
Application
Pour nous : exécution d'une application sur plusieurs processeurs
(accélération)
Introduction : parallélisme
• comportement des agents
• diverses fonctionnalités
• gestion de l’environnement
• gestion de la simultanéité
• gestion des structures des entités
Modèle
Parallélisme
Tdév vs. Texéc
Motivations
6
•
•
•
PIOMAS [Bouzid, 2001]
– parallèle, basé sur ParCeL-3
– précis, modélisation des incertitudes dans perceptions et actions
– peu d’agents
– sans obstacles => algorithmique plus simple
– peu flexible
– machines SIMD (CM-2)
• réseaux de neurones
BioLand [Werner & Dyer, 1994]
– massivement parallèle, beaucoup d'agents
– application riche en fonctionnalités
– simple
– séquentiel
Pengi [Ferber et al., 1991]
Exemples de simulateurs de SMA
7
•
•
•
•
environnement
ressources
agents
arbitre
M
M
U
ParSSAP (Parallel Simulator of Situated Agent Populations)
1. Modèle : exemple
U
M
8
Obstacle
Usine
Mine
Agent
•
•
•
•
entités mobiles
comportement
mémoire
perceptions locales : vision, odeur
actions : mouvement, dépôt/prise d'objets
création et destruction dynamique
–
–
–
–
–
–
M
U
9
• statistiques
• mouvement des agents
Sauvegardes
M
Unification des entités => travaux futurs
Tous les principes existent pour augmenter la généricité
– loi du système
– résout les conflits spatiaux entre les agents
Arbitre (virtuel)
Agents
propagent des potentiels décroissants
contiennent des objets
champs dynamiques de potentiel
plusieurs types
–
–
–
–
Ressources
– discret
– obstacles
Environnement
1. Modèle : généralités
5. Mise-à-jour des percepts (potentiels, vision etc.)
10
(statistiques, informations sur la simulation, arrêt de la simulation etc.)
4. Fonction utilisateur (en séquentiel)
3. Exécution des actions des agents
2. Résolution des conflits
1. Activation des agents et planification des actions
Basé sur une discrétisation du temps
Macroscopiquement synchrone, microscopiquement asynchrone
Cycle de
simulation
•
•
1. Modèle : moteur d'exécution
Langage C, threads POSIX et Irix, fonctionne aussi sur monoprocesseur
Mécanismes de génération de nombres aléatoires ad hoc =>
reproductibilité complète des simulations, même avec nombre
différent de processeurs
•
– fonction utilisateur (en séquentiel) <= transparence au parallélisme
– gestion des frontières <= intrinsèque au parallélisme
– déséquilibrage de charge => travaux futurs
Aucune surcharge due au parallélisme, sauf :
11
– perspectives : si nécéssaire, décomposition explicite prenant en compte
les zones à grande charge
Parallélisme interne, mais caché à l’utilisateur
Décomposition en domaines rectangulaires
•
•
•
•
2.0 Algorithmique parallèle :
parallélisme dans l’implantation
• contourne les obstacles, perception de proximité seulement
• début : le potentiel de la ressource
• propagation par vagues
12
But : création des champs de potentiel générés par les ressources
• 2.2 Percept de la détection des potentiels
• empêché par les obstacles, perception lointaine
But : création des champs de visibilité
• les cases qu'un agent peut voir
• rayon de vision
• 2.1 Percept de la vision
2. Algorithmique parallèle des
percepts des agents
Ce qu'un agent peut voir
Obstacle
Case invisible
Case centrale
???
2.1 Vision : exemple de champ
13
basé sur l'algorithme de
Bresenham
prend en compte l'erreur
précédente
•
•
TOUS les points que la ligne
idéale intersecte
•
1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
Li
g
L
la
e
ign
c
ne
é
e
e
iss
a
p
qu
i
s
s
14
ligne classique : ne considère pas l’obstacle
ligne épaisse : considère l’obstacle
2.1 Vision : nouvel algorithme de
lignes épaisses
Calcul identique
pour toute case
=> parallélisation
par décomposition
en domaines
Environnement
S
– Lecture de la matrice des obstacles
– Écriture dans la matrice de visibilité
15
Champ de visibilité
de la case S
• Calculer les champs de visibilité de chaque case
2.1 Vision : parallélisme
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
0
10
20
30
40
50
Nombre de processeurs
60
calcul des champs
16
1 sec. sur 64 processeurs, O2K, 512x512 cases, rayon de 8
Temps d'exécution
du calcul des champs
Temps :
1. allocations mémoire
2. calcul des champs
Mémoire : O (N(2rv
+1)2)
2.1 Vision : performances (1/3)
Temps d’exécution (ms.)
70
0
10
20
30
40
50
60
70
0
20
40
Nombre de processeurs
30
50
60
70
17
Diminution des
performances :
• allocations mémoire
(100 ms)
• éfficacité
• [parallélisme]
Accélération de 39 sur 48 processeurs (O2K)
10
algorithme de vision
accélération idéale
Accélération, utilisant le temps du thread le plus lent
Tout l'algorithme (allocations + calcul des champs)
2.1 Vision : performances (2/3)
Accélération
Zigzag <= déséquilibrage
de charge
Concordance des extrema
locaux entre la courbe
pratique de performances
et la courbe théorique de
déséquilibrage de charge
Qualité d’équilibrage de charge
Qldbal : N* -> (0, 1]
1
, si P | 512
512
, sinon
P x ([512/P]+1)
•
•
0.7
0.75
0.8
0.85
0.9
0.95
1
0
10
20
30
40
50
Nombre de processeurs
60
expérimental
maximum théorique
Efficacité du calcul des visibilités (courbe en zigzag)
2.1 Vision : performances (3/3)
Efficacité
18
70
Propriétés :
• contourne les obstacles
• décroît avec la distance
• potentiel de la ressource
est une fonction de sa
charge en objets
• fonction de superposition
de champs
Raison :
• existence des obstacles
Utilité :
• retrouve le chemin vers la
ressource
Obstacle
19
Exemple
de chemin
augmentant
le potentiel,
évitant
les obstacles
Source
2.2 Propagation par vagues :
exemple de champ
1
3
2
1
1
2
2
1
1
2
1
3
2
1
3
1
2
4
3
2
1
1
2
1
1
pour chaque ressource
propage-la récursivement
Récursion (en largeur)
1
3
2
1
1
2
2
1
1
2
1
3
2
1
3
1
2
4
3
2
1
1
2
1
1
met potential des resources
répéter
pour chaque case
p = max pi - 1
jusqu’à pas de modification
Itérative
2.2 Propagation par vagues :
méthodes séquentielles
20
balayage
bas-haut
balayage
haut-bas
Propagation
du domaine
Propagation
des frontières
Avantage : peu de transferts de données
Inconvénient : plusieurs repropagations
Échange aux frontières
Méthode de décomposition fixe du domaine
2.2 Propagation par vagues :
méthodes parallèles (1/2)
21
P1
P2
P3
Avantage : évite les repropagations
Inconvénients : défauts de cache
plus de mémoire
Méthode des environnements privés
P3
P2
P1
2.2 Propagation par vagues :
méthodes parallèles (2/2)
22
+++
++
++
=
Connectivité (4/8)
Nombre de ressources
Potentiel des ressources
Nombre des obstacles
– connectivité de 4
– sans obstacles
– 1,1-1,45 ressources / case
• Performances égales sur O2K :
+++
+++
++
=
=
+
Itérative
Récursive
Méthode
Paramètre
Taille environnement
Temps d’exécution des méthodes séquentielles
2.2 Propagation par vagues :
performances (1/3)
23
•
•
•
•
– Tr = Tsr + Tpr
– Ti = Tsi + Tpi
– Tm = Tsi + Tpr
Idée : séparer la propagation en
propagation du domaine et
propagation des frontières :
– Ti < Tr
Temps parallèles :
– récursion : 13,5 sec.
– itérative : 6 sec.
– Tis < Trs
0
2000
4000
6000
8000
Environnements privés : défauts
12000
de cache => élimination
Temps séquentiels :
10000
14000
0
5
10
15
20
25
30
35
Nombre de processeurs
40
récursive−dom
itérative−dom
récursive−env
1024x1024, sans obstacles, 1 % de ressources, potentiel des ressources de 16
Performances des méthodes parallèles
2.2 Propagation par vagues :
performances (2/3)
Temps d’exécution (ms.)
24
45
50
– propagation du
domaine : itérative
– propagation des
frontières : récursive
• Itérative
• Combinaison :
0
1000
2000
3000
4000
5000
6000
0
5
10
20
25
30
35
Nombre de processeurs
15
40
itérative−récursive
itérative
45
1024x1024, sans obstacles, 1 % de ressources, potentiel des ressources de 16
Performances des deux meilleures méthodes parallèles
2.2 Propagation par vagues :
performances (3/3)
Temps d’exécution (ms.)
25
50
•
•
0
5
10
15
20
25
30
35
40
45
0
5
10
15
20
25
30
35
Nombre de processeurs
40
itérative−récursive−dom
itérative−dom
accélération idéale
45
=> Propagation inexacte des potentiels => travaux futurs
Accélération
(même Tséq) (O2K)
– P petit : itérative
– P grand : récursive
propagation des
frontières :
– itérative
propagation du
domaine :
Meilleure méthode :
50
2.2 Propagation par vagues :
conclusions
Accélération
26
50
•
– outil graphique
– comportements des agents
Visualiser une simulation
charge => potentiel
– ressources :
• sauvegardes pour
visualisation
– initialisation de
l’environnement
– fonction utilisateur
• Écrire une application,
étapes :
M
M
U
3. Implantation du modèle :
utilisation
U
M
27
Obstacle
Usine
Mine
Agent
Mathematical and Computer Modelling, 35 (2002)
Transportation Research Board
automates cellulaires
simulateurs spécifiques : Smartest Project
– oui, et une implantation bien fonctionnelle
• Est-ce que le modèle MA est approprié pour la
simulation du trafic routier ?
–
–
–
–
• Simulations macroscopiques, microscopiques
• Autres travaux
– temps, argent, concerne tout le monde
• Motivation
3. Implantation du modèle :
application au trafic routier
28
– destination = position finale (x,y)
• Voitures = agents
• Feux = ressources, couleur = charge
• Comportement des voitures, trajectoire =
fonction spécifique aux agents
– rues à plusieurs files
• Bords des rues = obstacles
– vitesse maximum : 30 m/s Ù 110 km/h
• E.g. 1 case = 3m x 3m, 1 cycle = 0.1 sec.
29
3. Trafic routier : simulation des
objets
– suis-je à la destination ?
– fais-je un accident / infraction ?
– bouge
• Calcule la vitesse sûre
• Accélère / décélère
• Si je bouge
– distance avec la prochaine voiture
• Mets à jour ma vitesse
• Choisis la direction (trajectoire)
30
3. Trafic routier : comportement
des voitures
• sinon, voiture reste sur place
– compteur -= VITESSE_MAX
– bouge la voiture
• compteur += vitesse
• si compteur >= VITESSE_MAX
– toute voiture a un compteur de « pas » effectués, initialisé à 0
– à chaque cycle :
• Solution :
– ressemblance avec l’algorithme de Bresenham
• Idée :
– la voiture bouge tous les N cycles Ù vitesse = 1/N
– il faut la fonction continue (rationnel) -> discret (entier)
• Problème :
31
3.Trafic routier : simulation de la
vitesse
– optimisation
– changement dynamique, adaptabilité
• Trajectoire
– perspectives : identification automatique des
zones accidentogènes
• Accidents et infractions
Libre
Débit
– propagation (en arrière ou en avant)
Voitures
– changement de taille
• Bouchons
– optimisation de l’attente aux feux
• Feux
• Diagramme fondamental
Congestion
3. Trafic routier : patterns
observés
32
Nombre
33
– séquentielle : moins d’1 sec. pour plusieurs rues et
quelques dizaines de voitures pendant 1000 cycles
– parallèle : à voir sur un exemple de plus grande taille
(ville)
• Performance
– en total, 300-500 lignes de code source
• Programmation rapide et plus facile
– simulation prise en compte par la machine virtuelle de
la bibliothèque
• Coder le comportement / les paramètres, pas la
simulation (style Prolog)
3. Trafic routier : simplicité de
programmation
– bouchons
– carrefours
– optimisation des trajectoires
• Application au trafic routier
– bonnes performances pour les percepts et les applications
• Implantation parallèle du modèle
– vision
– propagation des potentiels
• Algorithmique parallèle des percepts des agents :
• Modèle de simulation de SMA
Bilan : contributions
34
• Autres applications
35
– taille plus grande, e.g. quartier d’une ville, optimisation de trajectoire
– voitures de plusieurs cases
• Simulation de trafic :
• Extension de l'environnement de programmation
– équilibrage dynamique de charge
• Optimisation des algorithmes
• Extension du modèle
Bilan : perspectives
Téléchargement