Comparativa de implementaciones de algoritmos evolutivos para Python, OpenMP y CUDA, utilizando una paralelización en GPU
Author
Pérez Simón, CristóbalDirector
García Arenas, María IsabelMateria
GPU Python C++ CUDA Algoritmo evolutivo Evolutive Algorithm
Date
2024Sponsorship
Universidad de Granada. Escuela Técnica Superior de Ingenierías Informática y de Telecomunicación. 2024Abstract
En este proyecto se plantea un análisis de diferentes lenguajes de programación que
emplean paralelización en GPU utilizando para ello dos algoritmos basados en
combinación aleatoria que buscan la solución a un problema relacionado con la
distribución de estaciones de bicicletas dentro de una ciudad..
El objetivo central es poner en práctica los conocimientos aprendidos en las asignaturas
como Arquitectura y Computación de Altas Prestaciones (ACAP) y Arquitectura de
Computadores (AC) acerca de las técnicas aplicables para poder ejecutar código
paralelo en un dispositivo coprocesador, así como de otras asignaturas relacionadas con
la ingeniería de software y hacer un análisis de resultados de los lenguajes empleados
con el objetivo de decidir qué implementación ofrece más ventajas de cara a mejorar el
rendimiento del algoritmo y su robustez, minimizando así los costes de implementación
y los costes de ejecución, reduciendo así el impacto energético y contribuyendo a tres
de los objetivos de desarrollo sostenible como son el 7, el 11 y el 13, todos relacionados
de alguna forma con el consumo y la eficiencia en el mismo de la energía. This project proposes an analysis of different programming languages that use GPU
parallelization using two random combination-based algorithms to solve a problem
related to the distribution of bicycle stations within a city.
The main objective is to put into practice the knowledge acquired in subjects such as
High Performance Architecture and Computing (ACAP) and Computer Architecture
(AC) about the applicable techniques to be able to execute parallel code on a
coprocessor device, as well as other subjects related to software engineering. The goal
is to analyze the results of the languages used and to determine which implementation
offers the most advantages in terms of improving the algorithm's performance and
robustness, while minimizing implementation and execution costs, thus reducing the
energy impact and contributing to three sustainable development goals: 7, 11, and 13,
all of which are related in some way to energy consumption and efficiency.