LEGION: UN FRAMEWORK WEB PARA EL ENVÍO REMOTO DE TAREAS, MONITOREO Y RECUPERACIÓN DE RESULTADOS PARA BOINC USANDO UNA ARQUITECTURA ORIENTADA A SERVICIOS Pablo Fonseca Dirección de Informática Académica Pontificia Universidad Católica del Perú [email protected] Oscar Díaz Dirección de Informática Académica Pontificia Universidad Católica del Perú [email protected] Genghis Ríos Dirección de Informática Académica Pontificia Universidad Católica del Perú [email protected] INTRODUCCIÓN Hoy en día, tanto centros de investigación como muchas empresas alrededor del mundo requieren de la ejecución de cálculos computacionales para resolver problemas complejos en campos tan diversos como la Física de Altas Energías o el renderizado de vídeo 3D. Dado que muchas veces estas operaciones no se pueden realizar en una computadora personal, las tareas a menudo requieren una infraestructura más grande. Sin embargo, debido a restricciones en el presupuesto no siempre es factible adquirir y mantener una infraestructura dedicada. Este escenario es muy común en los países en desarrollo y en las PYMEs en todo el mundo. Esta investigación aborda cómo desplegar una infraestructura adecuada para cómputo intensivo aprovechando la disponibilidad general de computadoras personales que haya en la institución. En las universidades generalmente se ofrece a los estudiantes laboratorios de cómputo, siendo estos recursos a veces subutilizados (procesamiento de texto, comunicaciones por correo electrónico y acceso a Internet). La potencia de cálculo no utilizada de estos dispositivos, de otro modo desperdiciada, puede ser agregada en una infraestructura de gran escala usando Berkeley Open Infrastructure for Network Computing (BOINC), sin interrumpir el trabajo de los usuarios regulares. BOINC se encarga de manejar la cola de tareas, ejecutarlas y recuperar los resultados de manera efectiva y confiable en un entorno de computación voluntaria, donde la disponibilidad y la credibilidad de los dispositivos no puede ser asegurada. Además, también ha sido desplegado con éxito en entornos controlados, donde las máquinas pertenecen a una sola institución. En la Pontificia Universidad Católica del Perú (PUCP), BOINC está siendo utilizado desde el 2008 para dar soporte a las necesidades de computación intensiva de los investigadores. MATERIAL Y MÉTODOS ARQUITECTURA DE LEGION FRAMEWORK Cliente Tareas SOAP with Attachements Guest OS BOINC Client Servidor BOINC Resultados Aplicación Propia Tareas VM LEGION Web Services para BOINC LEGION CLI Tareas SOAP with Attachements Users LEGION Web Interface Grid Admin, Científicos, Artistas Web Browser Nodo de ejecución Server Side ... Otros nodos de ejecución Con el fin de proporcionar una capa de abstracción tanto para los usuarios finales como para los administradores del sistema, se desarrolló LEGION Framework. De ese modo se podría reducir la barrera de adopción de esta solución de bajo costo para computación distribuida. A través de la generación dinámica de interfaces web que permiten el envío de tareas, monitoreo del progreso y la recuperación de los resultados se permite a los científicos concentrarse en la ciencia y no en la infraestructura tecnológica. Además, se trata de reducir al mínimo la intervención de los administradores de la grid: la especificación de la interfaz de envío de tareas y la especificación de la forma en que las tareas se crean realmente, se realiza a través de modelado gráfico y textual dentro de la misma aplicación web. Fig 1. Arquitectura de LEGION Framework Teniendo en cuenta que BOINC se desarrolla de forma independiente a nuestro proyecto, se optó por tener una Arquitectura Orientada a Servicios (SOA). De esta manera, si hay cambios, estos no implicarán modificaciones en toda la arquitectura. Además, permite componentes intercambiables, lo que significa que otros backends se pueden añadir fácilmente si implementan las especificaciones. Esto ha permitido, además, desarrollar una API cliente para diversos lenguajes: Java, PHP y Python. RESULTADOS Y DISCUSIÓN Integración con lenguajes de scripting * Octave.- se ejecutaron scripts en este lenguaje -en forma de barrido de parámetros- para afinar algoritmos de procesamiento de imágenes. * R.- se ejecutó una simulación de Monte Carlo para la validación de modelos estadístico utilizando un script en este lenguaje, también a través de un barrido parámetros. * Python.- se ejecutaron pruebas de integración con este lenguaje para procesar imágenes y calcular los dígitos de PI usando la formula BBP. Integración con aplicaciones * Blender.- se pudo integrar Blender y LEGION Framework con el fin de renderizar videos 3D sencillos. Poder de cómputo Usando todas las computadoras en los laboratorios de la PUCP, se logró obtener una reducción de tiempo: lo que se ejecuta en 1 año normalmente, se logró calcular en 1 día. Fig 2. Interfaz web de LEGION Framework CONCLUSIONES Las interfaces generadas por el framework permiten a los usuarios finales enviar tareas a la grid, monitorear su progreso y eventualmente descargar los resultados de la ejecución; es más, pueden compartir las tareas con otros usuarios del proyecto. A su vez, los administradores pueden crear rápidamente interfaces para proyectos de cómputo distribuido. Un administrador con experiencia podría configurar en solo 30 minutos un proyecto de cómputo distribuido para simulaciones de montecarlo o barrido de parámetros; inmediatamente después, los usuarios pueden ingresar a la aplicación web para enviar tareas. LEGION Framework está en un continuo ciclo de mejora y es liberado periodicamente en la página del proyecto http://legion.pucp.edu.pe/wiki BIBLIOGRAFÍA G. Ríos, P. Fonseca, y O. Díaz, “Legion : An extensible lightweight web framework for easy BOINC task submission, monitoring and result retrieval using web services” Conferencia Latinoamericana de Cómputo de Alto Rendimiento, 2011. D. P. Anderson, “BOINC : A System for Public-Resource Computing and Storage,” Sciences-New York, 1999. FRAMEWORK http://legion.pucp.edu.pe/wiki