arquitectura de legion framework - legión pucp

Anuncio
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
Descargar