Comentarios sobre el SoC

Ya que hace mucho tiempo que no escribo nada sobre el proyecto del Summer of Code, voy a realizar un pequeño resumen del trabajo realizado, puesto que ya faltan pocos dí­as para la fecha de entrega.

El proyecto consistí­a en modificar el intérprete del lenguaje DaVinci para que paralelizara automaticamente llamadas a funciones. La forma de hacerlo es mediante el operador @axis(variable), que divide el dato que va entre paréntesis según la ristra axis. El valor que puede tener axis es una combinación de algunas de las siguientes letras: x, y, z; simbolizando cada letra un eje de coordenadas y ningún valor. Por ejemplo, la utilización de @xy(data) dividirí­a la variable data (que debe ser una variable numérica tridimensional) en varias filas de tamaño 1x1xk donde k es el tamaño del eje z. Es decir, hemos dividido la variable según los ejes x e y. Cuando no se utiliza ninguna letra, la variable entre paréntesis debe ser una estructura, y entonces se divide según cada campo.

El uso de @axis(variable) está retringido a los parámetros de las llamadas a funciones. Cuando se llama a una función que tiene como parámetro una variable paralelizada mediante @(), entonces se ejecuta la función tantas veces como divisiones de la variable se obtuvieron al aplicarle el operador @(), enviándole como parámetro a cada función la correspondiente parte de la variable.

Evidentemente, la paralelización se obtiene de ejecutar cada una de las llamadas a las funciones en un proceso distinto. Para ello se ha utilizado el estándar MPI. MPI es un estándar que define una serie de funciones que se utilizan para crear procesos y comunicar datos entre ellos. La implementación usada ha sido OpenMPI. La ejecución de DaVinci en un cluster de ordenadores que soporte OpenMPI significarí­a que la ejecución de los programas escritos en DaVinci se ejecutaran mucho más rapido al estar paralelizados, y que su paralelización serí­a trivial gracias al operador @().

El objetivo del proyecto ha sido logrado y esta en fase de pruebas y optimización.

Posted By dsuarez

David nació en Las Palmas de Gran Canaria, España. Estudió Ingeniería en Informática en la Universidad de Las Palmas de Gran Canaria (ULPGC), donde ha trabajado en investigación los últimos años. Siempre ha sentido una gran curiosidad por los ordenadores y las ciencias, y más recientemente en el mundo empresarial. Ha trabajado como programador/analista, consultor en tecnologías de la información y obtuvo la beca de Google Summer of Code en 2006. Es socio fundador de Wantudu (http://wantudu.es), empresa especializada en terminales táctiles para hoteles.

Leave a Reply