Algoritmos genéticos en la paralelización automática de código fuente Java

Abstract

La paralelizacion automatica de codigo es una tarea difıcil que requiere conocimientos avanzados de programacion ası como del programa que se desea paralelizar y del paradigma de paralelizacion seleccionado. El hardware objetivo, donde se ejecutara, tambien se debe tener en cuenta a la hora de decidir una estrategia de paralelizacion ya que la generacion de muchas hebras puede llegar a reducir el rendimiento. Por otro lado, la paralelizacion de codigo se puede ver como la busqueda de una combinacion de metodos, algunos de los cuales seran paralelizados, de tal modo el conjunto del programa se ejecuta sin error y tarda el menor tiempo posible en el hardware objetivo. Desde este punto de vista nosotros proponemos un flujo de optimizacion que aplica Algoritmos Geneticos para encontrar la mejor combinacion. Uno de los puntos clave de nuestra optimizacion es un generador totalmente automatico de metodos paralelizados que, dada la codificacion de un individuo, proporciona el codigo paralelo correspondiente. Nuestro generador alcanza, de media, un speedup de 2.02× comparado con la exploracion exhaustiva en el benchmark analizado. Ademas los codigos paralelizados obtenidos con el metodo propuesto son mas rapidos que aquellos encontrados mediante la explicacion por fuerza bruta.

J. Manuel Colmenar
J. Manuel Colmenar
Associate Professor

My research interests are focused on metaheuristics applied to optimization problems. I have worked on different combinatorial optimization problems applying trajectorial algorithms such us GRASP or VNS. Besides, I am very interested in applications of Grammatical Evolution, specifically in model and prediction domain, as alternative to machine learning approaches.