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