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

Resumen

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
Artificial Intelligence Professor

Mis intereses de investigación se centran en las metaheurísticas aplicadas a problemas de optimización. He trabajado en diferentes problemas de optimización combinatoria aplicando algoritmos trajectoriales como GRASP o VNS. Además, estoy muy interesado en las aplicaciones de la Evolución Gramatical, específicamente en el dominio de los modelos y la predicción, como alternativa a los enfoques de aprendizaje automático.