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.

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