Tesis de Maestria
Implementación de biblioteca de algoritmos bioinspirados en paralelo para el clúster Agave
Fecha
2015-02-12Autor
Santana Castolo, Manuel Humberto
Institución
Resumen
Un algoritmo se puede componer de tareas que se ejecutan de manera
paralela y otras que se ejecutan de manera secuencial, con el objetivo de resolver
un problema. Los algoritmos evolutivos son algoritmos estocásticos
basados en poblaciones de individuos y son usados, entre otras aplicaciones,
para resolver problemas de optimización. Al igual que los algoritmos
evolutivos, los algoritmos de inteligencia de enjambre están basados en
individuos agrupados en enjambres que cooperan (sabiéndolo o no), a alcanzar
una meta. Tanto los algoritmos evolutivos como los de inteligencia
de enjambre están basados en la naturaleza y pueden ser llamados como
bioinspirados.
El desarrollo del hardware como del software en los últimos años, ha
propiciado también el desarrollo de los lenguajes de programación para
que estos se comuniquen y puedan cumplir las necesidades de los usuarios.
Plataformas estandarizadas de cómputo paralelo fueron desarrolladas para
cumplir con las necesidades de resolver problemas de gran magnitud o resolverlos
a una mayor velocidad. Entre estas plataformas se encuentran la
librería MPI, para la comunicación entre núcleos de procesadores o la plataforma
CUDA, para el desarrollo de software para ser ejecutado en tarjetas
gráficas. Las plataformas mencionadas, funcionan en equipos de cómputo
conocidos como clúster o supercomputadora, aunque también pueden ser
llevadas a computadoras personales.
En esta tesis, se realizó la implementación de cuatro algoritmos bioinspirados,
para constituir una biblioteca para el clúster de la Universidad de
Guadalajara, llamado Agave.
Estos cuatro algoritmos bioinspirados son: PSO (por sus siglas en inglés:
“Particles Swarm Optimization”) y dos de sus variantes, ALC-PSO (por sus
siglas en inglés: “Particles Swarm Optimization with Aging Leader and Challengers”)
y BAM-PSO (por sus siglas en inglés: “Particles Swarm Optimization
with Bio-inspired Aging”); también el algoritmo evolutivo conocido
cómo Evolución Diferencial. La implementación se hizo en paralelo, tanto
en MPI como en CUDA.