Escuela Politécnica Superior.               Universidad de HuelvaParalelización de algoritmos basadosen Colonias de Hormig...
ÍNDICE                     Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s P...
ÍNDICE                     Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s P...
1. IntroducciónMotivación                                  Nueva Tecnología de                                   supercom...
1. Introducción Introducción a los ACO’s Los ACO’s (Ant Colony Optimization) es una metaheurística inspirada en el comport...
1. IntroducciónPseudocódigo ACO             PROCEDURE AS                   Inicialización de parámetros()                 ...
1. IntroducciónExtensiones ACO                                             Aporte de                                      ...
1. IntroducciónEl problema del viajante de comercio (TSP)   ¿En qué consiste el TSP?     Partiendo de un mapa con n ciuda...
1. IntroducciónObjetivos          Objetivo                   Objetivo                    Objetivo              1         T...
ÍNDICE                     Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s P...
2. CUDA ¿Qué es CUDA?Compute Unified Device ArchitecureArquitectura Unificada de Computación en Dispositivos              ...
2. CUDA¿ Qué hay que tener en cuenta en CUDA?                               • Subdivisión del problema en                 ...
2. CUDADiferencias entre CPU y GPU                                                                    Paralelización de al...
2. CUDA                                                                       Arquitectura Hardware     Título de la prese...
2. CUDAModelo de Ejecución                                        La ejecución se reparte                                ...
ÍNDICE                     Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s P...
3. ACO’s ParalelosPseudocódigo ACO             PROCEDURE AS                     Inicialización de parámetros()            ...
3. ACO’s Paralelos                                                                                      Pseudocódigo ACO  ...
3. ACO’s Paralelos                                                                       Pseudocódigo ACO                 ...
3. ACO’s Paralelos                                                                       Pseudocódigo ACO                 ...
3. ACO’s Paralelos                                                                       Pseudocódigo ACO                 ...
3. ACO’s Paralelos                                                                       Esquema de intercambios CPU/GPU  ...
algoritmo                                                                                                                 ...
3. ACO’s Paralelos                                                                                algoritmo               ...
3. ACO’s ParalelosPseudocódigo Operador de transición                rulette_kernel_pseudocode()                         ∀...
3. ACO’s Paralelos Pseudocódigo Operador de transición                  rulette_kernel_pseudocode()                       ...
3. ACO’s Paralelos       Pseudocódigo Operador de transición                          rulette_kernel_pseudocode()         ...
3. ACO’s Paralelos       Pseudocódigo Operador de transición                          rulette_kernel_pseudocode()         ...
3. ACO’s ParalelosEsquema de intercambios CPU/GPU                                                  Paralelización de algor...
3. ACO’s ParalelosPseudocódigo Evaporación Global de Feromonas               global_evaporated_kernel_pseudocode()        ...
3. ACO’s ParalelosEsquema de intercambios CPU/GPU                                        Paralelización de algoritmos basa...
3. ACO’s Paralelos                                      Intercambio de información                                        ...
ÍNDICE                     Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s P...
4. ExperimentaciónLa experimentación responde a estas preguntas                         ¿Qué          ¿Y en problemas  ¿Me...
4. ExperimentaciónParámetros empleadosParámetros globales válidos para todos los algoritmos:             Número de iteraci...
10                                                                                    1000                                ...
4. ExperimentaciónMejoras en tiempo de ejecución             1800                                                         ...
4. ExperimentaciónReducción del tiempo (en media) por problema        70,00%                           65,87%        60,00...
4. ExperimentaciónAumento de la velocidad (en media) por problema  200,00%                                                ...
4. ExperimentaciónAumento de velocidad (en media) por extensión   400,00%                352,81%   350,00%   300,00%      ...
4. ExperimentaciónReducción del tiempo por problema y extensión                                                           ...
0,00%                                                -100,00%                                                             ...
4. ExperimentaciónRelación exploración/explotación. Niveles deConvergencia         100%          90%                      ...
4. ExperimentaciónRelación exploración/explotación. Niveles deConvergencia                              Exploración       ...
4. Experimentación                                                                              Ranking de las extensiones...
0                                                                                                       10000             ...
ÍNDICE                     Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s P...
5. ConclusionesConclusiones                      CUDA es una magnífica herramienta de paralelización, ya que minimiza     ...
5. ConclusionesTrabajos Futuros                  Mejorar la extensión ACS                  Operador de transición paralelo...
Título de la presentación / Five lampstands comfortably tickledAviso de confidencialidadLa información comprendida en esta...
Upcoming SlideShare
Loading in …5
×

Presentacion Proyecto Fin de Carrera

1,263 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,263
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Presentacion Proyecto Fin de Carrera

  1. 1. Escuela Politécnica Superior. Universidad de HuelvaParalelización de algoritmos basadosen Colonias de Hormigas.Aplicación del Viajante de Comercio. Proyecto Fin de Carrera para optar al Título de Ingeniero en InformáticaAutor: Eduardo Moreno DíazDirector: Dr. D. José Manuel Martín Ramos Julio de 2012
  2. 2. ÍNDICE Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s Paralelos4. Experimentación5. Conclusiones
  3. 3. ÍNDICE Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s Paralelos4. Experimentación5. Conclusiones
  4. 4. 1. IntroducciónMotivación  Nueva Tecnología de supercomputación paralela  Fiable y de bajo coste económico Paralelización de algoritmos basados en Colonias de Hormigas.  Los ACO’s tienen muchas Título de la presentación / Five lampstands comfortably tickled aplicaciones en la industria  No existe experimentación sobre ACO’s con técnicas de supercomputación“ Aplicar esta tecnología a los ACO’s mejorará enormemente las posibilidades de experimentación 4
  5. 5. 1. Introducción Introducción a los ACO’s Los ACO’s (Ant Colony Optimization) es una metaheurística inspirada en el comportamiento que usan las hormigas para encontrar los caminos más cortos entre fuentes de comida y el Paralelización de algoritmos basados en Colonias de Hormigas. hormiguero. Se caracterizan por la utilización de dos Título de la presentación / Five lampstands comfortably tickled heurísticas: • Fija: la distancia entre nodos Alto coste computacional • Variable: aporte de feromonas(memoria/tiempo) Alto Paralelismo Implícito 5
  6. 6. 1. IntroducciónPseudocódigo ACO PROCEDURE AS Inicialización de parámetros() WHILE NOT criterio de terminación Paralelización de algoritmos basados en Colonias de Hormigas. crear/resetear hormigas() Título de la presentación / Five lampstands comfortably tickled construccion() [optimización del recorrido()] evaluación() actualizacion de feromonas() END WHILE END PROCEDURE AS 6
  7. 7. 1. IntroducciónExtensiones ACO Aporte de feromonasAS (Ant System) diferente Regla transición Paralelización de algoritmos basados en Colonias de Hormigas.EAS (Elitis Ant System) pseudoaleatoria para ACS ACO Título de la presentación / Five lampstands comfortably tickledMMAS (Max-Min Ant System)RAS (Rank-based Ant System)ACS (Ant Colony System) Velocidades de convergencia diferenciadas 7
  8. 8. 1. IntroducciónEl problema del viajante de comercio (TSP) ¿En qué consiste el TSP? Partiendo de un mapa con n ciudades, hay que construir una ruta Paralelización de algoritmos basados en Colonias de Hormigas. que comenzando y terminando en una ciudad concreta, pase por cada una de las ciudades, minimizando la distancia recorrida por Título de la presentación / Five lampstands comfortably tickled el viajante de comercio. ¿Por qué se ha elegido? TSPLib es muy utilizado en la literatura científica para la comparación entre algoritmos. 8
  9. 9. 1. IntroducciónObjetivos Objetivo Objetivo Objetivo 1 Tecnología 2 Investigación 3 I+D Proporcionar Paralelización de algoritmos basados en Colonias de Hormigas. Marco de estudio Análisis del coste experimentación que permita computacional sobre esta mejorar ACO Título de la presentación / Five lampstands comfortably tickled tecnología + = ACO CUDA Objetivos 9
  10. 10. ÍNDICE Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s Paralelos4. Experimentación5. Conclusiones
  11. 11. 2. CUDA ¿Qué es CUDA?Compute Unified Device ArchitecureArquitectura Unificada de Computación en Dispositivos Paralelización de algoritmos basados en Colonias de Hormigas.Dispositivos gráficos Título de la presentación / Five lampstands comfortably tickledde alto rendimientoArquitectura de cálculo paraleloque permite computar procedimientos iterativosTecnología SIMTSingle Instruction Multiple Thread 11
  12. 12. 2. CUDA¿ Qué hay que tener en cuenta en CUDA? • Subdivisión del problema en sub-problemas que puedan ser resueltos de forma paralela Paralelización de algoritmos basados en Colonias de Hormigas. Sincronización • Grupos de hebras para resolver Título de la presentación / Five lampstands comfortably tickled parcialmenteSubdivisión Unión de • Sincronización de la hebras resultados • Unión de los resultados parciales para Grupos de ofrecer el resultado global que se Hebras buscaba 12
  13. 13. 2. CUDADiferencias entre CPU y GPU Paralelización de algoritmos basados en Colonias de Hormigas. Título de la presentación / Five lampstands comfortably tickled  GPU se compone de N-copias redundantes de CPUs que trabajan de manera paralela.  30 Multiprocesadores de 8 cores (240 cores en total) en los dispositivos utilizados. 13
  14. 14. 2. CUDA Arquitectura Hardware Título de la presentación / Five lampstands comfortably tickled14 Paralelización de algoritmos basados en Colonias de Hormigas.
  15. 15. 2. CUDAModelo de Ejecución  La ejecución se reparte entre la CPU y la GPU. Paralelización de algoritmos basados en Colonias de Hormigas.  Título de la presentación / Five lampstands comfortably tickled 2 tipos de interacción Host-Device:  Síncrona  Asíncrona“ La idea es combinar la ejecución Host-Device intentando minimizar el número de intercambio de información entre CPU y GPU 15
  16. 16. ÍNDICE Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s Paralelos4. Experimentación5. Conclusiones
  17. 17. 3. ACO’s ParalelosPseudocódigo ACO PROCEDURE AS Inicialización de parámetros() WHILE NOT criterio de terminación Paralelización de algoritmos basados en Colonias de Hormigas. crear/resetear hormigas() Título de la presentación / Five lampstands comfortably tickled construccion() [optimización del recorrido()] evaluación() actualizacion de feromonas() END WHILE END PROCEDURE AS 17
  18. 18. 3. ACO’s Paralelos Pseudocódigo ACO Crear/resetear hormigas() Título de la presentación / Five lampstands comfortably tickled18 Paralelización de algoritmos basados en Colonias de Hormigas.
  19. 19. 3. ACO’s Paralelos Pseudocódigo ACO Construccion() Título de la presentación / Five lampstands comfortably tickled19 Paralelización de algoritmos basados en Colonias de Hormigas.
  20. 20. 3. ACO’s Paralelos Pseudocódigo ACO Evaluación() Título de la presentación / Five lampstands comfortably tickled20 Paralelización de algoritmos basados en Colonias de Hormigas.
  21. 21. 3. ACO’s Paralelos Pseudocódigo ACO Actualizacion de feromonas() Título de la presentación / Five lampstands comfortably tickled21 Paralelización de algoritmos basados en Colonias de Hormigas.
  22. 22. 3. ACO’s Paralelos Esquema de intercambios CPU/GPU Título de la presentación / Five lampstands comfortably tickled22 Paralelización de algoritmos basados en Colonias de Hormigas.
  23. 23. algoritmo 3. ACO’s Paralelos estructuras de datos del Proceso que inicializa las Esquema de intercambios CPU/GPU Título de la presentación / Five lampstands comfortably tickled23 Paralelización de algoritmos basados en Colonias de Hormigas.
  24. 24. 3. ACO’s Paralelos algoritmo soluciones que genera el Proceso que construye las Esquema de intercambios CPU/GPU Título de la presentación / Five lampstands comfortably tickled24 Paralelización de algoritmos basados en Colonias de Hormigas.
  25. 25. 3. ACO’s ParalelosPseudocódigo Operador de transición rulette_kernel_pseudocode() ∀𝑡ℎ 𝑖 ∈ 𝐴𝑛𝑡𝑠 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0 𝑟𝑛𝑑 ← random(0-1) ∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟 Paralelización de algoritmos basados en Colonias de Hormigas. 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 Título de la presentación / Five lampstands comfortably tickled 𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 + 1 𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 > 𝑚𝑎𝑥 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑣 𝐼𝑓 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 > 0 𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑 𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 25 donde:
  26. 26. 3. ACO’s Paralelos Pseudocódigo Operador de transición rulette_kernel_pseudocode() ∀𝑡ℎ 𝑖 ∈ 𝐴𝑛𝑡𝑠 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0Operador ruleta 𝑟𝑛𝑑 ← random(0-1) ∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟 Paralelización de algoritmos basados en Colonias de Hormigas. 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 Título de la presentación / Five lampstands comfortably tickled 𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 + 1 𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 > 𝑚𝑎𝑥 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑣 𝐼𝑓 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 > 0 𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑 𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 26 donde:
  27. 27. 3. ACO’s Paralelos Pseudocódigo Operador de transición rulette_kernel_pseudocode() ∀𝑡ℎ 𝑖 ∈ 𝐴𝑛𝑡𝑠 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0 Operador ruleta 𝑟𝑛𝑑 ← random(0-1) ∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟 Paralelización de algoritmos basados en Colonias de Hormigas. Regla de transiciónPseudoaleatoria para la 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 extensión ACS y evaporación local 𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 Título de la presentación / Five lampstands comfortably tickled 𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 + 1 𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 > 𝑚𝑎𝑥 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑣 𝐼𝑓 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 > 0 𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑 𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 27 donde:
  28. 28. 3. ACO’s Paralelos Pseudocódigo Operador de transición rulette_kernel_pseudocode() ∀𝑡ℎ 𝑖 ∈ 𝐴𝑛𝑡𝑠 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 0 𝑚𝑎𝑥 ← 0 Operador ruleta 𝑟𝑛𝑑 ← random(0-1) ∀ 𝑣 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟 Paralelización de algoritmos basados en Colonias de Hormigas. Regla de transiciónPseudoaleatoria para la 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 extensión ACS y evaporación local 𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 Título de la presentación / Five lampstands comfortably tickled 𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 + 1 𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 > 𝑚𝑎𝑥 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑣 Evaluación del coste 𝐼𝑓 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 > 0 𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑 𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 28 donde:
  29. 29. 3. ACO’s ParalelosEsquema de intercambios CPU/GPU Paralelización de algoritmos basados en Colonias de Hormigas. Título de la presentación / Five lampstands comfortably tickled Procedimiento para realiza los procesos de evaporación y aporte de feromonas en los arcos visitados por las hormigas 29
  30. 30. 3. ACO’s ParalelosPseudocódigo Evaporación Global de Feromonas global_evaporated_kernel_pseudocode() ∀𝑡ℎ 𝑖𝑗 𝑤ℎ𝑒𝑟𝑒 𝑖 ∈ 𝐶𝑖𝑡𝑖𝑒𝑠 𝑎𝑛𝑑 𝑗 ∈ 𝑁𝑒𝑖𝑔ℎ𝑏𝑜𝑟 Paralelización de algoritmos basados en Colonias de Hormigas. 𝜏 𝑖𝑗 ← 𝜏 𝑖𝑗 ∗ 𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑 𝑓𝑎𝑐𝑡𝑜𝑟 Título de la presentación / Five lampstands comfortably tickled 𝐼𝑓 𝜏 𝑖𝑗 < 𝜏0 𝜏 𝑖 ← 𝜏0 donde:“ Es el mismo procedimiento para todas las extensiones 30
  31. 31. 3. ACO’s ParalelosEsquema de intercambios CPU/GPU Paralelización de algoritmos basados en Colonias de Hormigas. Título de la presentación / Five lampstands comfortably tickled Procedimiento adicionales independientes que controlan iteraciones, tiempo, fitness de la mejor solución 31
  32. 32. 3. ACO’s Paralelos Intercambio de información Esquema de intercambios CPU/GPU Título de la presentación / Five lampstands comfortably tickled32 Paralelización de algoritmos basados en Colonias de Hormigas.
  33. 33. ÍNDICE Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s Paralelos4. Experimentación5. Conclusiones
  34. 34. 4. ExperimentaciónLa experimentación responde a estas preguntas ¿Qué ¿Y en problemas ¿Mejoran el extensión es la más complejos tiempo y la que funciona también aportan calidad de las mejor? mejoras? Paralelización de algoritmos basados en Colonias de Hormigas. soluciones? Título de la presentación / Five lampstands comfortably tickled 34
  35. 35. 4. ExperimentaciónParámetros empleadosParámetros globales válidos para todos los algoritmos: Número de iteraciones: 1000 Alfa: 1 Beta: 2 Número de hormigas: {25, 50, 75, 100, 150, 200} Porcentaje de Vecinos: {100, 80, 60, 40, 20} Porcentaje de Evaporación global: 10% Paralelización de algoritmos basados en Colonias de Hormigas.Parámetros específicos para ACS: Título de la presentación / Five lampstands comfortably tickled Porcentaje de Evaporación local: 10% Aplicación regla pseudoaleatoria: 90%Parámetro específico para EAS: Número de hormigas Elitista: {50, 75}Parámetro específico para RAS: Número de Hormigas en el Ranking: {5, 10, 15}9 semillaspara el generador de número aleatorios 35
  36. 36. 10 1000 1 100000 100 10000 1000000 6.332 MMAS“ 6.327 8.080 AS 7.973 4. Experimentación 7.015 EAS ch130 7.877 6.808 RAS 6.871 6.515 ACS 6.517 51.652 MMAS 51.492 57.902 AS 60.130 Paralelo Calidad de las soluciones 56.933 EAS pr264 56.994 Serie 55.178 RAS 55.301 55.236 ACS 55.166 116.276 MMAS 116.256 La versión paralela es correcta 167.232 AS 168.052 140.855 EAS pr439 142.953 140.846 RAS 141.292 130.120 ACS 130.219 Título de la presentación / Five lampstands comfortably tickled36 Paralelización de algoritmos basados en Colonias de Hormigas.
  37. 37. 4. ExperimentaciónMejoras en tiempo de ejecución 1800 1.545 1600 1400 1200 Paralelización de algoritmos basados en Colonias de Hormigas. 887 1000 800 Título de la presentación / Five lampstands comfortably tickled 600 349 400 200 230 44 44 0 ch130 pr264 pr439 Paralelo Serie Exponencial (Paralelo) Exponencial (Serie)“ El tiempo inversamente proporcional a la complejidad del TSP 37
  38. 38. 4. ExperimentaciónReducción del tiempo (en media) por problema 70,00% 65,87% 60,00% 56,69% 50,00% Paralelización de algoritmos basados en Colonias de Hormigas. 40,00% Título de la presentación / Five lampstands comfortably tickled 30,00% 20,00% 10,00% -0,69% 0,00% ch130 pr264 pr439 -10,00%“ La versión paralela ahorra la mitad del tiempo de ejecución 38
  39. 39. 4. ExperimentaciónAumento de la velocidad (en media) por problema 200,00% 176,41% 180,00% 160,00% 151,81% 140,00% Paralelización de algoritmos basados en Colonias de Hormigas. 120,00% 100,00% Título de la presentación / Five lampstands comfortably tickled 80,00% 60,00% 40,00% 20,00% -0,69% 0,00% ch130 pr264 pr439 -20,00%“ La velocidad aumenta mientras más complejo es el TSP 39
  40. 40. 4. ExperimentaciónAumento de velocidad (en media) por extensión 400,00% 352,81% 350,00% 300,00% 244,05% Paralelización de algoritmos basados en Colonias de Hormigas. 250,00% 235,26% 200,00% 157,61% Título de la presentación / Five lampstands comfortably tickled 150,00% 100,00% 50,00% 0,00% MMAS AS EAS RAS ACS -50,00% -60,63% -100,00%“ La extensión ACS reduce su velocidad 40
  41. 41. 4. ExperimentaciónReducción del tiempo por problema y extensión 72,72% 73,69% 74,28% 81,06% 74,17% 62,78% 59,31% 100,00% 36,80% 33,60% 20,29% 15,86% -145,30% -145,45% 50,00% -80,51% -13,29% Paralelización de algoritmos basados en Colonias de Hormigas. 0,00% Título de la presentación / Five lampstands comfortably tickled MMAS AS EAS RAS ACS MMAS AS EAS RAS ACS MMAS AS EAS RAS ACS ch130 pr264 pr439 -50,00% -100,00% -150,00%“ La extensión ACS aumenta con respecto a la versión serie 41
  42. 42. 0,00% -100,00% 100,00% 200,00% 300,00% 400,00% 500,00%“ 58,24% MMAS 4. Experimentación AS 25,46% -11,73% EAS ch130 18,85% RAS -44,60% 266,61% ACS MMAS AS 50,60% 168,70% EAS pr264 145,75% RAS -59,23% 427,92% ACS MMAS AS 280,05% La extensión ACS reduce su velocidad 287,16% EAS pr439 288,81% RAS -59,26% ACS Aumento de velocidad por problema y extensión Título de la presentación / Five lampstands comfortably tickled42 Paralelización de algoritmos basados en Colonias de Hormigas.
  43. 43. 4. ExperimentaciónRelación exploración/explotación. Niveles deConvergencia 100% 90% Paralelización de algoritmos basados en Colonias de Hormigas. 80% 300000 70% 275000 Título de la presentación / Five lampstands comfortably tickled 60% 250000 50% 225000 200000 40% 175000 30% 150000 125000 20% 10% 0% MMAS ACS AS EAS RAS 43
  44. 44. 4. ExperimentaciónRelación exploración/explotación. Niveles deConvergencia Exploración Explotación Paralelización de algoritmos basados en Colonias de Hormigas. Título de la presentación / Five lampstands comfortably tickled 108269 127362 160674 126997 109054 Costes para el PR439 44
  45. 45. 4. Experimentación Ranking de las extensiones 5 4 3 1 2 AS EAS RAS ACS MMAS Título de la presentación / Five lampstands comfortably tickled45 Paralelización de algoritmos basados en Colonias de Hormigas.
  46. 46. 0 10000 20000 30000 40000 50000 60000 70000 AS 38,09 47,79“ EAS 47,02 41,50 MMAS 25,25 39,95 ch130 4. Experimentación RAS 38,60 45,88 ACS 82,38 45,64 AS 140,11 211,01 Paralelo EAS 140,55 377,67 MMAS 112,28 411,62 pr264 RAS 135,38 Serie 332,69 ACS 875,06 356,73 AS 398,75 1.515,43 EAS 467,11 1.808,46 MMAS 262,54 1.385,99 pr439 RAS 393,11 1.462,03 En problemas más complejos Exponencial (Paralelo) ACS 3.863,10 1.634,95 AS 465,48 EAS 604,28 MMAS 348,53 p654 RAS 555,37 ACS 5.680,46 Exponencial (Serie) AS 1.417,18 La mejoría en cuanto al tiempo es asombrosa EAS 1.816,47 MMAS 888,16 pr1002 RAS 1.572,01 ACS 33.476,40 Título de la presentación / Five lampstands comfortably tickled46 Paralelización de algoritmos basados en Colonias de Hormigas.
  47. 47. ÍNDICE Título de la presentación / Five lampstands comfortably tickled1. Introducción2. CUDA3. ACO’s Paralelos4. Experimentación5. Conclusiones
  48. 48. 5. ConclusionesConclusiones CUDA es una magnífica herramienta de paralelización, ya que minimiza Mejora los el tiempo de cómputo de un algoritmo de manera notoria, lo que permite abordar en la experimentación problemas cuyo tamaño y/o complejidad tiempos de hasta ahora era impensable con los microprocesadores actuales Paralelización de algoritmos basados en Colonias de Hormigas. cómputo Permite validar el desarrollo de nuevos operadores y técnicas de Título de la presentación / Five lampstands comfortably tickled Nuevos optimización ya que posibilitan realizar una amplia experimentación en un corto periodo de tiempo. operadores Usando la arquitectura SIMT ofrecida por CUDA se mejora un esquema Mejora los establecido como son los Clúster de CPU’s tradicionales. Además, el coste de esta tecnología en el mercado es insignificante si la clústers comparamos con la usada en los supercomputadores (mainframe). 48
  49. 49. 5. ConclusionesTrabajos Futuros Mejorar la extensión ACS Operador de transición paralelo Paralelización de algoritmos basados en Colonias de Hormigas. Eliminación de cruces en los tours Título de la presentación / Five lampstands comfortably tickled Otras técnicas de programación CUDA Islas de hormigas Uso compartido de varias GPU’s Estudio de la extensión RAS 49
  50. 50. Título de la presentación / Five lampstands comfortably tickledAviso de confidencialidadLa información comprendida en esta presentación es confidencial ypertenece a Eduardo Moreno Díaz. Cualquier forma de divulgación,reproducción, copia o distribución total o parcial de la misma quedaprohibida, no pudiendo ser utilizado su contenido para otros fines sin laautorización del autor. 50

×