Please use this identifier to cite or link to this item:
http://repositorio.yachaytech.edu.ec/handle/123456789/375
Full metadata record
DC Field | Value | Language |
---|---|---|
dc.contributor.advisor | Pineda Arias, Israel Gustavo | - |
dc.contributor.author | Banda Almeida, Jorge Andrés | - |
dc.date.accessioned | 2021-07-13T18:24:04Z | - |
dc.date.available | 2021-07-13T18:24:04Z | - |
dc.date.issued | 2021-06 | - |
dc.identifier.uri | http://repositorio.yachaytech.edu.ec/handle/123456789/375 | - |
dc.description | The evaluation of large NP-hard problems is computationally challenging due to the exponential growth of the search space. However, the implementation of metaheuristics on high-performance computing (HPC) provides a suitable environment to work with large and complex combinatorial optimization problems using parallel computing. Parallel computing allows the division of the problem among several execution units through different communication and synchronization approaches. Metaheuristics are high-level procedures that provide near-to-optimal solutions to an optimization problem. Although exact algorithms can find the global maximum, the execution time of these methods grows exponentially. Therefore, approximate algorithms such as metaheuristics are preferred to work with large problem instances. The Ant Colony Optimization (ACO) is a population metaheuristic with an inherently parallel nature that has demonstrated outstanding time and performance results. This work aims to study the parallelization of the ACO using message passing interface (MPI) and graphics processing unit (GPU) programming with the compute unified device architecture (CUDA) platform. Based on the existing MPI and CUDA parallel implementations of ACO, we analyze the parallelization details of the algorithm’s main components: the solution-construction, and the pheromone-reinforcement. The MPI-based ACO follows a coarse-grained approach, and the communication between processors is performed after a certain number of iterations following a master-slave approach. The exchange control strategy is guided by a root node that broadcasts the required information to other nodes and then receives the partial solutions constructed independently by each node. The CUDA-based ACO parallelization also follows a coarse-grained approach that splits the work performed in the tour construction among different threads, each thread corresponding to an individual ant. The pheromone-update process is performed atomically to avoid race conditions. The evaluated algorithms are implemented following an incremental process using profiling methods to test and optimize the algorithms. Several instances of the traveling salesman problem and the job shop scheduling problem are tested with ACO algorithms. Also, an image segmentation problem was solved using the ACO algorithm. The speedup, efficiency, and Karp-Flatt metrics are used to evaluate MPI-based ACO using up to 48 cores. Also, the execution time, the number of iterations, and accuracy are used to evaluate MPI and CUDA implementations using an HPC environment. | es |
dc.description.abstract | La resolución de problemas NP-hard presenta un desafío computacional debido al crecimiento exponencial del espacio de búsqueda. La computación de alto rendimiento (HPC) junto con las metaheurísticas se utilizan comúnmente para abordar estos problemas. HPC proporciona un entorno adecuado para trabajar con problemas de optimización combinatoria que presentan gran complejidad, utilizando computación paralela. La computación paralela permite la división del problema entre varias unidades de cómputo utilizando diferentes enfoques de comunicación y sincronización. Las metaheurísticas son procedimientos de alto nivel que generan soluciones casi óptimas a un problema de optimización. Aunque los algoritmos exactos pueden encontrar el máximo global, el tiempo de ejecución de estos métodos crece exponencialmente. Por lo tanto, para trabajar con problemas grandes y complejos, los algoritmos aproximados como las metaheurísticas son usados más frecuentemente. La optimización por colonia de hormigas (ACO) es una metaheurística de población con una naturaleza inherentemente paralela, que ha demostrado buenos resultados de rendimiento y tiempo. Este trabajo tiene como objetivo estudiar la paralelización de ACO mediante la interfaz de paso de mensajes (MPI) y la programación de unidades de procesamiento de gráficos (GPU) utilizando la plataforma CUDA. Basándonos en las implementaciones paralelas existentes de ACO basadas en MPI y CUDA, analizamos los detalles de la paralelización de los dos componentes principales del algoritmo, la construcción de soluciones y el procedimiento de actualización de feromonas. El algoritmo basado en MPI está implementado con un enfoque de grano grueso, y la comunicación entre procesadores se realiza después de un cierto número de iteraciones siguiendo un enfoque maestro-esclavo. La estrategia de intercambio de mensajes está guiada por un nodo raíz que transmite la información requerida a otros nodos y luego recibe las soluciones parciales construidas independientemente por cada nodo. La paralelización de ACO basada en CUDA también sigue un enfoque de grano grueso y divide el trabajo realizado en la construcción de soluciones entre diferentes hilos, uno por cada hormiga. El proceso de actualización de feromonas se realiza de forma atómica para evitar accesos simultáneos a la misma estructura de memoria. Los algoritmos evaluados se implementaron con un proceso incremental, donde técnicas de profiling nos permitieron optimizar los algoritmos. Se utilizaron varias instancias del problema del viajante y el problema de job shop scheduling para evaluar los algoritmos. También un problema de segmentación de imágenes fue evaluado utilizando ACO. Las métricas de speedup, eficiencia y Karp-Flatt se utilizaron para evaluar MPI utilizando hasta 48 procesadores. Además, el tiempo de ejecución, el número de iteraciones y la precisión se utilizaron para evaluar MPI y CUDA utilizando HPC. | es |
dc.language.iso | eng | es |
dc.publisher | Universidad de Investigación de Tecnología Experimental Yachay | es |
dc.rights | openAccess | es |
dc.subject | Algoritmo de colonia de hormigas | es |
dc.subject | Computación paralela | es |
dc.subject | Ant Colony Optimization (ACO) | es |
dc.subject | Parallel computing | es |
dc.subject | High-Performance Computing (HPC) | es |
dc.subject | Message Passing Interface (MPI) | es |
dc.subject | Compute Unified Device Architecture (CUDA) | es |
dc.subject | Graphics Processing Unit (GPU) | es |
dc.title | Solving scheduling problems with ant colony optimization metaheuristic and high performance computing | es |
dc.type | bachelorThesis | es |
dc.description.degree | Ingeniero/a en Tecnologías de la Información | es |
dc.pagination.pages | 87 páginas | es |
Appears in Collections: | Tecnologías de la Información |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
ECMC0065.pdf | 4.42 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.