Este documento presenta un proyecto de fin de carrera para optar al título de Ingeniero en Informática. El proyecto consiste en la paralelización de algoritmos basados en colonias de hormigas aplicados al problema del viajante de comercio, utilizando la tecnología CUDA para aprovechar la capacidad de cálculo paralelo de las GPU. El objetivo es mejorar las posibilidades de experimentación de los algoritmos de optimización basados en colonias de hormigas mediante el análisis del coste computacional y la experimentación sobre esta te
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.
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