550 likes | 737 Views
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é.
E N D
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é • 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
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
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.
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.
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
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
Approches possibles (4/5) • Threads ? • QT notion de threads • Borland C++, Visual C++, Delphi notion de threads • Un thread identifiant PUID sous Windows
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
Exemple (1/3) Un type pointeur pour passer des informations à un thread Le thread est une procédure !
Définition du temps de calcul • Temps utilisateur <> temps de calcul Temps utilisateur !
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
Mesurer le CPU Time • Voir manuel des bonnes pratiques !
Proposition de parallèlisation • n ELS en parallèle • Synchronisation des n ELS • Redémarrage avec la meilleure sol. Commune aux n ELS
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
Création • Géocodeur crée par Viannez Bajart et Christophe Charles – ISIMA – F2 3ième année • Utilise Google Api • Java + JavaScript
Présentation (1/5) http://www.isima.fr/~lacomme/students.html
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
GRASPxELS solutions (2/2) • Solutions de 5 à 35 trips
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)
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