Currently Browsing

July, 2006

¡Orla!

Orla

¡Me he orlado! La ceremonia fue bastante entretenida gracias a la colaboración de los padrinos y, aunque hubo algún problema de organización al llamar a los orlados, todo salió bien. Teniendo en cuenta que nos pasamos el ensayo discutiendo boberí­as, ¡todo salió fenomenal!

Aprovecho para criticar al encargado/a de protocolo de la ULPGC, que se olvidó de nosotros completamente y tuvimos que improvisar. Un cero.

Aprovecho para agradecer a todos mis amigos y familiares su asistencia al acto y a la fiesta, así­ como el apoyo económico por parte de la Facultad de Informática.

¡Ahora solo falta terminar la carrera! Como dijo un compañero: “…2 años y el proyecto” ;) .

Google surprise!

Google surprise

La gente de Google se ha enrollado y nos ha mandado a los participantes del Google Summer of Code 2006 un bloc de notas con su logotipo. ¡Nadie se lo esperaba! No es que sea gran cosa, pero está fantástico para fardar ;-)

Funciones definidas por el usuario en DaVinci

Las funciones definidas por el usuario son programadas en el lenguage DaVinci y son cargadas desde la interfaz de lí­nea de comandos mediante la función source(). Para manejarlas, se parsean del modo usual en DaVinci, aunque catalogando esa rama del árbol sintáctico como una función definida por el usuario (ufunc).

En un entorno distribuido de alta capacidad de cómputo como el que estoy implementando, ¿cómo hacer para sincronizar este tipo de funciones entre los procesos trabajadores? Las funciones son cargadas únicamente en el proceso maestro, de modo que, en principio, los procesos trabajadores no pueden acceder al fichero fuente.

La solución que he encontrado es francamente sencilla: cuando es necesario sincronizar una función, se transmite el código fuente de la misma al trabajador para que este la interprete con el parser local. ¡Es realmente fácil y rápido! La otra opción consistirí­a en serialize el árbol sintáctico generado en el maestro al parsear la función, pero ¿es esto mejor que transmitir el código fuente y ejecutar el parser en los trabajadores? La verdad es que haciendo una estimación, esta última opción aunque más compleja no mejorarí­a ni el tiempo de ejecución ni el de transmisión de los datos.

En primer lugar: serializar el árbol sintáctico puede llevar bastante tiempo ¡tanto como crearlo desde un código fuente! En segundo lugar: transmitir el árbol serializado posiblemente lleve tanto tiempo como el código fuente del mismo. Sólo la información que es necesaria enviar para poder descerializar el árbol en los trabajadores ocuparí­a más que el propio código fuente.