SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
Escuela Politécnica Superior.
               Universidad de Huelva



Paralelización de algoritmos basados
en Colonias de Hormigas.
Aplicación del Viajante de Comercio.

              Proyecto Fin de Carrera para optar al
      Título de Ingeniero en Informática


Autor:                          Eduardo Moreno Díaz
Director:            Dr. D. José Manuel Martín Ramos

                                                      Julio de 2012
ÍNDICE




                     Título de la presentación / Five lampstands comfortably tickled
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
ÍNDICE




                     Título de la presentación / Five lampstands comfortably tickled
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
1. Introducción

Motivació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
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
1. Introducción

Pseudocó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
1. Introducción

Extensiones ACO

                                             Aporte de
                                            feromonas
AS (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 tickled
MMAS (Max-Min Ant System)

RAS (Rank-based Ant System)

ACS (Ant Colony System)                          Velocidades de
                                                  convergencia
                                                  diferenciadas



                                                                        7
1. Introducción

El 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
1. Introducción

Objetivos
          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
ÍNDICE




                     Título de la presentación / Five lampstands comfortably tickled
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
2. CUDA

 ¿Qué es CUDA?


Compute Unified Device Architecure
Arquitectura 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 tickled
de alto rendimiento




Arquitectura de cálculo paralelo
que permite computar procedimientos iterativos




Tecnología SIMT
Single Instruction Multiple Thread


                                                              11
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
                                 parcialmente
Subdivisió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
2. CUDA

Diferencias 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
2. CUDA

                                                                       Arquitectura Hardware




     Título de la presentación / Five lampstands comfortably tickled
14




     Paralelización de algoritmos basados en Colonias de Hormigas.
2. CUDA

Modelo 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
ÍNDICE




                     Título de la presentación / Five lampstands comfortably tickled
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
3. ACO’s Paralelos

Pseudocó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
3. ACO’s Paralelos

                                                                                      Pseudocódigo ACO




                                                          Crear/resetear hormigas()




     Título de la presentación / Five lampstands comfortably tickled
18




     Paralelización de algoritmos basados en Colonias de Hormigas.
3. ACO’s Paralelos

                                                                       Pseudocódigo ACO




                                                   Construccion()




     Título de la presentación / Five lampstands comfortably tickled
19




     Paralelización de algoritmos basados en Colonias de Hormigas.
3. ACO’s Paralelos

                                                                       Pseudocódigo ACO




                                      Evaluación()




     Título de la presentación / Five lampstands comfortably tickled
20




     Paralelización de algoritmos basados en Colonias de Hormigas.
3. ACO’s Paralelos

                                                                       Pseudocódigo ACO




                               Actualizacion de feromonas()




     Título de la presentación / Five lampstands comfortably tickled
21




     Paralelización de algoritmos basados en Colonias de Hormigas.
3. ACO’s Paralelos

                                                                       Esquema de intercambios CPU/GPU




     Título de la presentación / Five lampstands comfortably tickled
22




     Paralelización de algoritmos basados en Colonias de Hormigas.
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 tickled
23




     Paralelización de algoritmos basados en Colonias de Hormigas.
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 tickled
24




     Paralelización de algoritmos basados en Colonias de Hormigas.
3. ACO’s Paralelos

Pseudocó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:
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.
                                          𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣

                                          𝑊ℎ𝑖𝑙𝑒    𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏




                                                                                               Título de la presentación / Five lampstands comfortably tickled
                                                   𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡

                                                   𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 + 1

                                           𝐼𝑓    𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 > 𝑚𝑎𝑥

                                                   𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑣

                                  𝐼𝑓 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 > 0

                                          𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒

                                                   𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡

                                                   𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑 𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡

                                          𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡

                                          𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡

                                          𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡
                                                                                                     26
                  donde:
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ón
Pseudoaleatoria 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:
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ón
Pseudoaleatoria 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:
3. ACO’s Paralelos

Esquema 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
3. ACO’s Paralelos

Pseudocó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
3. ACO’s Paralelos

Esquema 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
3. ACO’s Paralelos




                                      Intercambio de información
                                                                       Esquema de intercambios CPU/GPU




     Título de la presentación / Five lampstands comfortably tickled
32




     Paralelización de algoritmos basados en Colonias de Hormigas.
ÍNDICE




                     Título de la presentación / Five lampstands comfortably tickled
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
4. Experimentación

La 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
4. Experimentación

Parámetros empleados

Pará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 semillas
para el generador de número aleatorios

                                                                     35
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 tickled
36




     Paralelización de algoritmos basados en Colonias de Hormigas.
4. Experimentación

Mejoras 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
4. Experimentación

Reducció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
4. Experimentación

Aumento 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
4. Experimentación

Aumento 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
4. Experimentación

Reducció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
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 tickled
42




     Paralelización de algoritmos basados en Colonias de Hormigas.
4. Experimentación

Relación exploración/explotación. Niveles de
Convergencia


         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
4. Experimentación

Relación exploración/explotación. Niveles de
Convergencia
                              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
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 tickled
45




     Paralelización de algoritmos basados en Colonias de Hormigas.
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 tickled
46




     Paralelización de algoritmos basados en Colonias de Hormigas.
ÍNDICE




                     Título de la presentación / Five lampstands comfortably tickled
1. Introducción
2. CUDA
3. ACO’s Paralelos
4. Experimentación
5. Conclusiones
5. Conclusiones

Conclusiones



                      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
5. Conclusiones

Trabajos 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
Título de la presentación / Five lampstands comfortably tickled
Aviso de confidencialidad

La información comprendida en esta presentación es confidencial y
pertenece a Eduardo Moreno Díaz. Cualquier forma de divulgación,
reproducción, copia o distribución total o parcial de la misma queda
prohibida, no pudiendo ser utilizado su contenido para otros fines sin la
autorización del autor.

                                                                                  50

Más contenido relacionado

Destacado

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 

Destacado (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

ACO-CUDA: Paralelización de algoritmos basados en colonias de hormigas mediante CUDA

  • 1. Escuela Politécnica Superior. Universidad de Huelva Paralelización de algoritmos basados en Colonias de Hormigas. Aplicación del Viajante de Comercio. Proyecto Fin de Carrera para optar al Título de Ingeniero en Informática Autor: Eduardo Moreno Díaz Director: Dr. D. José Manuel Martín Ramos Julio de 2012
  • 2. ÍNDICE Título de la presentación / Five lampstands comfortably tickled 1. Introducción 2. CUDA 3. ACO’s Paralelos 4. Experimentación 5. Conclusiones
  • 3. ÍNDICE Título de la presentación / Five lampstands comfortably tickled 1. Introducción 2. CUDA 3. ACO’s Paralelos 4. Experimentación 5. Conclusiones
  • 4. 1. Introducción Motivació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. 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. 1. Introducción Pseudocó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. 1. Introducción Extensiones ACO Aporte de feromonas AS (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 tickled MMAS (Max-Min Ant System) RAS (Rank-based Ant System) ACS (Ant Colony System) Velocidades de convergencia diferenciadas 7
  • 8. 1. Introducción El 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. 1. Introducción Objetivos 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. ÍNDICE Título de la presentación / Five lampstands comfortably tickled 1. Introducción 2. CUDA 3. ACO’s Paralelos 4. Experimentación 5. Conclusiones
  • 11. 2. CUDA ¿Qué es CUDA? Compute Unified Device Architecure Arquitectura 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 tickled de alto rendimiento Arquitectura de cálculo paralelo que permite computar procedimientos iterativos Tecnología SIMT Single Instruction Multiple Thread 11
  • 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 parcialmente Subdivisió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. 2. CUDA Diferencias 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. 2. CUDA Arquitectura Hardware Título de la presentación / Five lampstands comfortably tickled 14 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 15. 2. CUDA Modelo 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. ÍNDICE Título de la presentación / Five lampstands comfortably tickled 1. Introducción 2. CUDA 3. ACO’s Paralelos 4. Experimentación 5. Conclusiones
  • 17. 3. ACO’s Paralelos Pseudocó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. 3. ACO’s Paralelos Pseudocódigo ACO Crear/resetear hormigas() Título de la presentación / Five lampstands comfortably tickled 18 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 19. 3. ACO’s Paralelos Pseudocódigo ACO Construccion() Título de la presentación / Five lampstands comfortably tickled 19 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 20. 3. ACO’s Paralelos Pseudocódigo ACO Evaluación() Título de la presentación / Five lampstands comfortably tickled 20 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 21. 3. ACO’s Paralelos Pseudocódigo ACO Actualizacion de feromonas() Título de la presentación / Five lampstands comfortably tickled 21 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 22. 3. ACO’s Paralelos Esquema de intercambios CPU/GPU Título de la presentación / Five lampstands comfortably tickled 22 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 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 tickled 23 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 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 tickled 24 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 25. 3. ACO’s Paralelos Pseudocó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. 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. 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 ← 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 𝑊ℎ𝑖𝑙𝑒 𝑎𝑐𝑐 < 𝑟𝑛𝑑 ∗ 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 Título de la presentación / Five lampstands comfortably tickled 𝑎𝑐𝑐 ← 𝑎𝑐𝑐 + 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 + 1 𝐼𝑓 𝑃𝑟𝑜𝑏 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑣 > 𝑚𝑎𝑥 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑣 𝐼𝑓 𝑠𝑢𝑚 𝑝𝑟𝑜𝑏 > 0 𝐼𝑓 𝑝𝑠𝑒𝑢𝑑𝑜_𝑟𝑎𝑛𝑑𝑜𝑚_𝑟𝑢𝑙𝑒 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 ← 𝑐𝑖𝑡𝑦2 𝑛𝑒𝑥𝑡 𝑒𝑣𝑎𝑝𝑜𝑟𝑎𝑡𝑒𝑑 𝑙𝑜𝑐𝑎𝑙 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑜𝑠𝑡 ← 𝑐𝑜𝑠𝑡 + 𝑑𝑖𝑠𝑡𝑎𝑛𝑐𝑒 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 , 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑐𝑖𝑡𝑦 𝑎𝑐𝑡𝑢𝑎𝑙 ← 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 𝑣𝑖𝑠𝑖𝑡𝑒𝑑 𝑐𝑖𝑡𝑦 𝑛𝑒𝑥𝑡 26 donde:
  • 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ón Pseudoaleatoria 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. 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ón Pseudoaleatoria 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. 3. ACO’s Paralelos Esquema 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. 3. ACO’s Paralelos Pseudocó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. 3. ACO’s Paralelos Esquema 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. 3. ACO’s Paralelos Intercambio de información Esquema de intercambios CPU/GPU Título de la presentación / Five lampstands comfortably tickled 32 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 33. ÍNDICE Título de la presentación / Five lampstands comfortably tickled 1. Introducción 2. CUDA 3. ACO’s Paralelos 4. Experimentación 5. Conclusiones
  • 34. 4. Experimentación La 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. 4. Experimentación Parámetros empleados Pará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 semillas para el generador de número aleatorios 35
  • 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 tickled 36 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 37. 4. Experimentación Mejoras 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. 4. Experimentación Reducció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. 4. Experimentación Aumento 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. 4. Experimentación Aumento 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. 4. Experimentación Reducció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. 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 tickled 42 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 43. 4. Experimentación Relación exploración/explotación. Niveles de Convergencia 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. 4. Experimentación Relación exploración/explotación. Niveles de Convergencia 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. 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 tickled 45 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 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 tickled 46 Paralelización de algoritmos basados en Colonias de Hormigas.
  • 47. ÍNDICE Título de la presentación / Five lampstands comfortably tickled 1. Introducción 2. CUDA 3. ACO’s Paralelos 4. Experimentación 5. Conclusiones
  • 48. 5. Conclusiones Conclusiones 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. 5. Conclusiones Trabajos 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. Título de la presentación / Five lampstands comfortably tickled Aviso de confidencialidad La información comprendida en esta presentación es confidencial y pertenece a Eduardo Moreno Díaz. Cualquier forma de divulgación, reproducción, copia o distribución total o parcial de la misma queda prohibida, no pudiendo ser utilizado su contenido para otros fines sin la autorización del autor. 50