1 / 54

Parallélisation des métaheuristiques

Parallélisation des métaheuristiques. Séminaire LOSI – 7 mai 2010 P. Lacomme , C. Prodhon (Equipe Clermont: Duhamel, Lacomme, Equipe UTT: Prins, Prodhon) Université de Clermont-Ferrand II, LIMOS, France Université de Technologie de Troyes, LOSI, France. But de l’exposé.

aida
Download Presentation

Parallélisation des métaheuristiques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Parallélisation des métaheuristiques Séminaire LOSI – 7 mai 2010 P. Lacomme, C. Prodhon (Equipe Clermont: Duhamel, Lacomme, Equipe UTT: Prins, Prodhon) Université de Clermont-Ferrand II, LIMOS, France Université de Technologie de Troyes, LOSI, France

  2. But de l’exposé • Réflexion et travaux en cours (Troyes/Clermont) depuis 6 mois • Première étape pour la parallélisation • Etat d’avancement de nos réflexions

  3. Sommaire • Parallélisation de métaheuristiques • NVIDIA - CUDA • Threads • Choix • Mise en oeuvre • Implémentation parallèle d’un GRASPxELS • HVRP • Expérimentations numériques

  4. Métaheuristiques parallèles

  5. Quelques publications Parallel GRASP with path-relinking for job shop scheduling R.M. Aiex, S. Binato, and M.G.C. Resende Parallel Computing, 29:393-430, 2003. Uma investigação experimental da distribuição de probabilidade de tempo de solução em heurísticas GRASP e sua aplicação na análise de implementações paralelas R.M. Aiex PhD thesis, Department of Computer Science, Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil, 2002. Parallelization strategies for the metaheuristic GRASP A.C.F. Alvim Master's thesis, Department of Computer Science, Catholic University of Rio de Janeiro, Rio de Janeiro, RJ 22453-900 Brazil, April 1998. Load balancing in the parallelization of the metaheuristic GRASP A.C.F. Alvim and C.C. Ribeiro Technical report, Department of Computer Science, Catholic University of Rio de Janeiro, Rio de Janeiro, RJ 22453-900 Brazil, 1998. Parallel strategies for GRASP with path-relinking R.M. Aiex and M.G.C. Resende Technical report, Internet and Network Systems Research Center, AT&T Labs Research, Florham Park, NJ, 2003.

  6. Commentaires • Tabou parallèle • Grasp parallèle etc… • Aucune métaheuristique parallèle n’est la meilleure méthode publiée • Architecture requise complexe, onéreuse, difficile d’accès.

  7. Choix Techniques

  8. Approches possibles (1/5) • CUDA • Très fort parallélisme • Utilise les cartes graphiques NVIDIA • Problèmes de mémoire • Parallélisation par threads • Exploite le processeur central • Largement répandu

  9. Approches possibles (2/5)

  10. Approches possibles (3/5) • Transfert mémoire centrale  carte  très couteux. • Mémoire par thread très limitée • Intéressant : faible volume de données •  inadapté à la RO (exemple : matrice des distances) Raksmey Phan, « Prise en main de la technologie CUDA pour la programmation sur GPGPU », Projet 3ième année ISIMA http://fc.isima.fr/~phan/ProjetZZ3/TutoCuda.pdf

  11. Approches possibles (4/5) • Threads ? • QT  notion de threads • Borland C++, Visual C++, Delphi  notion de threads • Un thread  identifiant PUID sous Windows

  12. Approches possibles (5/5) • Que faut il savoir sur les threads ? • Exploite le multi-cœurs • Pas de gestion automatique des ressources en exclusion mutuelles •  plantage aléatoire •  débugage très difficile

  13. Mise en oeuvre

  14. Exemple (1/3) Un type pointeur pour passer des informations à un thread Le thread est une procédure !

  15. Exemple (2/2)

  16. Exemple (2/3)

  17. Exemple (3/3)

  18. Définition du temps de calcul • Temps utilisateur <> temps de calcul Temps utilisateur !

  19. Mesurer le CPU Time (1/3) • accéder à la liste des processus tournant sous Windows ; • trouver dans la liste le processus pour lequel on veut mesurer le CPU Time ; • effectuer la mesure

  20. Mesurer le CPU Time (2/3)

  21. Mesurer le CPU Time (3/3)

  22. Mesurer le CPU Time • Voir manuel des bonnes pratiques !

  23. Implémentation parallèle d’un GRASPxELS

  24. Schéma classique d’optimisation

  25. Tournées de véhicules : deux espaces de recherche

  26. Proposition de parallèlisation • n ELS en parallèle • Synchronisation des n ELS • Redémarrage avec la meilleure sol. Commune aux n ELS

  27. Exemple

  28. Tests Numériques VFMP … HVRP

  29. HVRP (1/3) VRP + flotte hétérogène de véhicules • Un dépôt : nœud 0 • n nœuds (clients) • dj demande du nœud j • Cij coût du nœud i à j • Flotte de K types de véhicules • Un type de véhicules  nk véhicules • Un type de véhicules  Qk capacité des véhicules

  30. Résultats publiés – HVRP

  31. Nouvelles instances

  32. Création • Géocodeur crée par Viannez Bajart et Christophe Charles – ISIMA – F2 3ième année • Utilise Google Api • Java + JavaScript

  33. Présentation (1/5) http://www.isima.fr/~lacomme/students.html

  34. Présentation (2/5) • 96 départements métropolitains • 20 à 300 nœuds • Distances non euclidiennes • 8 types de véhicules • 4 paquets d’instances • < 100 nœuds  DLP_HVRP_1 • De 100 à 150 nœuds  DLP_HVRP_2 • De 150 à 200 nœuds  DLP_HVRP_3 • + de 200 noeuds  DLP_HVRP_4

  35. Présentation (3/5)

  36. Présentation (4/5)

  37. Présentation (5/5)

  38. L’auvergne….

  39. L’Aube…

  40. Nightmare instances

  41. GRASPxELS solutions (2/2) • Solutions de 5 à 35 trips

  42. Machine de test

  43. Machine (1/2) • Windows Server 2003 • serveur HP proliant DL 785 G5 • mémoire : 256 Go (PC2-5300 Registered DDR) • 8 processeurs AMD Opteron™ 8356 quadricoeur (2,3 GHz, 75 W ACP)

  44. Machine (2/2) • 4 threads  temps de communication nul • 8 threads  facteur de ralentissement de 2 • 16 threads  facteur de ralentissement de 4 • 32 threads  facteur de ralentissement de 8 BUS

  45. Résultats numériques

  46. Petites instances (1/3)

  47. Petites instances (2/3)

  48. Petites instances (3/3)

  49. Instances de taille moyenne (1/2)

  50. Instances de taille moyenne (2/2)

More Related