Globus Provision (otra vez)

En un par de posts recientes he aludido al proyecto que he lanzado hace poco, y que acapara la mayoría de mi tiempo últimamente. Es mi nueva criaturita y, cuan orgulloso padre, no puedo parar de hablar sobre ella. En fin, que hoy ha salido publicado un post mío en el blog de Globus Online sobre el susodicho proyecto: Add Computation to the Mix: Deploying HPC Clusters on EC2 with Globus Provision. Está en inglés pero, señora, léaselo si quiere saber más sobre Globus Provision.

Detrás del LHC

Tal y como estaba planificado, hoy se ha realizado la primera prueba del Large Hadron Collider, la mayor máquina construida por el ser humano (con una circumferencia de 27 kilometros). Este gigantesco acelerador de partículas nos ayudará a explorar los misterios de la formación del universo y de la materia que lo compone, incluyendo la posibilidad de confirmar empiricamente la existencia del bosón de Higgs (también llamada “la particula de Dios”)

Nuestro jefe, Ian Foster (el “padre de la grid”), nos ha enviado el siguiente mensaje para recordarnos algo sobre el LHC:

Today the LHC was turned on. The world didn’t come to and end, which is good news.

LHC data will be processed thanks to Globus software (among others). We should all take a moment to pat ourselves on the back.

Como suelo mencionar en mis presentaciones sobre computación grid, las enormes cantidades de datos que produce el LHC sencillamente no pueden procesarse en un único centro de cálculo, y necesitan la potencia combinada de varios centros de cálculo, unidos mediante una grid. El WLCG, la grid que suple las necesidades computacionales del LHC, utiliza varias tecnologías, incluido el middleware grid producido por La Alianza Globus, el grupo con el que colaboro desde hace años y con el que me introduje en el mundillo de la grid. Es decir, cuando el LHC está “encendido” y produciendo cantidades desorbitadas de datos, entre bambalinas esos datos llegan a procesarse gracias al software Globus.

Así que, tal y como sugiere Ian, voy a darme una palmadita en la espalda. Me gustaría pensar que mi tutorial y mi libro sobre Globus han sido un granito de arena (pequeñito, pero un granito no obstante) en el gigantesco esfuerzo de poner en marcha el LHC 🙂

Haizea

Hoy he llegado a un punto relativamente importante en mi investigación, ya que el trabajo que he estado haciendo recientemente ha alcanzado por fin suficiente masa crítica como para publicarlo no sólo en forma de artículo sino también en forma de proyecto de software. Hoy he lanzado públicamente el proyecto Haizea:

¿Qué es Haizea? Bueno, la respuesta a esa pregunta se encuentra en la web, pero intentaré resumir y dar poco el tostón (aunque voy a tener que asumir un mínimo de conocimiento informático). Suponed que tenéis un cluster de ordenadores, y que queréis compartir ese cluster entre varios usuarios. Evidentemente, cada usuario tendrá necesidades distintas: algunos querrán ejecutar programas en modo batch y otros querrán control exclusivo de parte o la totalidad del cluster durante un tiempo (p.ej., imaginad un profesor que quiere impartir un laboratorio de programación paralela de 14:00 a 16:00 todos los miércoles). Y cada usuario, claro, quiere un entorno software distinto. Hay soluciones que abordan partes de este problema y suelen estar muy especializados para un caso de uso concreto. Por ejemplo, los gestores de jobs son muy buenos para ejecución batch desatendida, pero suelen ser nefastamente malos para reservas en tiempos concretos (y de darte exactamente el entorno software que quieres, ni hablar). Por contra, sistemas como Amazon EC2 son excelentes para conseguir exactamente el entorno software que quieres, pero hay que pedirlo en el instante en el que se quiere. Similarmente, VMWare y compañía ofrecen gestores de infraestructura virtual pero principalmente orientados a servidores con alta disponibilidad.

Pues bien, Haizea (y buena parte de la investigación que realizo) tiene como objetivo proporcionar una solución general al problema del aprovisionamiento de recursos. El software que he desarrollado, utilizado en combinación con OpenNebula (un gestor open source de infraestructura virtual desarrollado por el grupo de Arquitectura de Sistemas Distribuidos de la Universidad Complutense de Madrid), permite gestionar un cluster Xen o KVM (y pronto también clusters VMWare) y desplegar máquinas virtuales dinámicamente en el cluster satisfaciendo varios casos de uso simultáneamente y eficientemente. Lo mismo puedes pedir “quiero una máquina con 2 CPUs y la quiero ahora“, o “dame 10 máquinas, cuando puedas, pero que se ejecuten durante 2 horas”, o “dame 20 máquinas mañana de 14:00 a 16:00”. Por cierto, “eficientemente” es la palabra clave aquí. Una de las razones por las que las soluciones existentes se centran en un caso de uso concreto es porque no suele ser posible combinar varios eficientemente. Ojo que la versión actual es todavía un “technology preview”, así que todavía le falta bastante funcionalidad, pero el proyecto irá creciendo bastante en los próximos meses.

Por supuesto, detrás de todo esto hay unos rollos macabeos tremendos de investigación. Al que se sienta aventurero, le animo a que se lea el artículo donde presenté las ideas principales de Haizea: Combining Batch Execution and Leasing Using Virtual Machines. Aunque no lo parezca, el contexto de esta investigación sigue siendo la computación grid, donde el aprovisionamiento eficiente de recursos es un problema. Más recientemente, Haizea también podría enmarcarse como una contribución dentro de la “computación cloud“, donde los recursos tipicamente se gestionan con tecnologías de virtualización (a los que estamos en el mundo de la grid, el término “cloud” nos resulta un poco marketing-iano porque toma muchas ideas de la grid, únicamente añadiendo el uso de máquinas virtuales). En fin, si alguien no ve claro algo de lo que digo aquí o en la web de Haizea, o qué utilidad tiene esto, o cuanto son 400 dracmas, que lo diga en los comentarios y yo respondo ipso facto.

Por cierto, no lo he dicho explícitamente, pero Haizea es, evidentemente, open source. Ya iba siendo hora de que, después de tanto predicar a favor del software libre y el código abierto, hiciese mi propia contribución. Y, sinceramente, lo que más me anima de este proyecto es saber que estoy devolviendo algo a la comunidad a través de un proceso abierto y colaborativo.

P.D.- Como ya saben los lectores euskaldunes, “Haizea” significa “viento” (vale, vale, más correctamente “el viento”). Inicialmente escogí ese nombre (hace ya casi un año) simplemente porque quería que mi sistema tuviese un nombre en euskera que sonase bien tanto en inglés como en castellano y me dio por “haizea”. Eso si, durante el último año han estado saliendo todo tipo de juegos de palabras en relación a la “computación cloud”. No se paran de ver artículos tipo “Are clouds a nebulous concept?”, “Will clouds go up in smoke?”, “Cloud Computing: Eyes on the skies”, etc, etc. Así que “haizea” resultó ser, sin querer, otro juego de palabras más… porque las nubes no se mueven sin un poco de viento… (eeeeeeh, eeeeeeh, ¿lo pillas? ¡viento! ¡nubes! si es que soy un caso perdido… xD )

P.P.D.- En la web doy los agradecimientos de rigor, pero la verdad es que tengo agradecer especialmente el apoyo del Grupo de Arquitectura de Sistemas Distribuidos de la Universidad Complutense de Madrid, con el que estoy trabajando este verano. Si no llega a ser por ellos, que me ofrecieron la oportunidad de desarrollar una versión más estable de Haizea para utilizar en combinación con OpenNebula, no creo que Haizea hubiese llegado a ver la luz del día (o, al menos, habría tardado bastante más). Y tampoco hay que olvidad, claro, que me han traido a España durante todo el verano 😉

Google Summer of Code 2008

Google ha anunciado hoy la lista de organizaciones mentoras para Google Summer of Code 2008. Este año hemos presentado a la Alianza Globus como organización mentora y… ¡nos han aceptado! Además, yo estoy listado como mentor para proyectos relacionados con gestión de recursos utilizando máquinas virtuales. Si a alguien le interesa ese tema, o la Computación Grid en general, que no dude en pegarme un toque, e igual acaba siendo mi Google-estudiante veraniego 😉 Participar en Google Summer of Code implica desarrollar código abierto, estar en contacto con mogollón de gente interesante (y no lo digo por mi, sino por todos mis co-trabajadores de Globus, y el resto de gente involucrada en GSoC), y además, recibir un sueldito de Google durante el verano.

Y si no os interesa la Computación Grid, no dejéis de echarle un vistazo a las 150+ organizaciones open source que este año han propuesto proyectos para el Google Summer of Code.

Free and Open Source Software FTW g0g0g0g0g0!

Grid Gurus

Hace unas semanas nació Grid Gurus, un nuevo blog orientado exclusivamente a la Computación Grid y en el que participan varios expertos en éste área. Y… ajem… pues me han pedido que yo también contribuya un post de vez en cuando. No, si ya lo predijo Kirai 😉

En fin, hoy ha salido publicado No CPU Left Behind, mi primer post en Grid Gurus. En este artículo hablo sobre las posibilidades que tiene la combinación de la Computación Grid y la Virtualización en el área de la educación. En futuros artículos seguiré dando la brasa con las máquinas virtuales y la Grid.

P.D.- Kudos a Rich Wellner, que se ha currado el blog Grid Gurus y nos lo ha puesto a todos muy fácil para que podamos contribuir.
P.P.D.- Ya sé que llevo bastante tiempo sin escribir en el blog. Es la dichosa vida del “grad student”, que no me deja ni un instante libre… :-/

Investidura alternativa

El trimestre pasado nos concedieron el título de Master of Science a dos estudiantes de grid. El otro estudiante es John Bresnahan, mejor conocido por su nick BuzzTroll. Sin embargo, Buzz no asistió a la ceremonia de investidura y optó por recibir su título por correo. Un día, en una conversación que me recordó a los míticos desvaríos durante los “almuerzos” del aula 105 de ESIDE, Buzz dijo que recibir su título por correo era más cómodo porque entonces podías recoger el título en gayumbos, y yo añadí que por lo menos debería dignificar el evento tarareando Pompa y Circunstancia (la típica marcha que suena en muchas ceremonias académicas en EEUU) mientras recogía el título.

Entre pitos y flautas, Buzz acabó grabando el siguiente vídeo el día que llegó su título por correo. Coñas aparte, aprovecho para felicitar públicamente a Buzz. Zorionak!

La tesina, a punto de caramelo

En Pequeño anticipo de mi tesina ya comenté que mi tesina estaba en su recta final y, esta semana, esa recta final por fin ha empezado a tener fechas concretas. A finales de agosto presentamos unos resultados preliminares, en forma de artículo académico (lo que habitualmente se conoce como un paper), para su presentación en la First International Workshop on Virtualization Technology in Distributed Computing (VTDC’06), que tendrá lugar durante la conferencia SuperComputing’06. El paper fue aceptado, y los ultimos dos meses lo hemos estado mejorando, hasta llegar a una serie de resultados que, a falta de unas cuantas mejoras, ya tienen calidad de tesina.

La semana que viene presentaremos los resultado en VTDC’06, pero lo más importante es que esta semana han evaluado los resultados los miembros de mi tribunal, y han dado el visto bueno a que defienda el 3 de enero. Puede parecer una fecha mala, pero en realidad la fecha importante es el 6 de diciembre, que es cuando tengo que entregar el borrador casi-final de la tesina. Del 6 de diciembre al 3 de enero simplemente tendré que revisar el borrador y los resultados según lo que me indique el tribunal, y la defensa será una mera formalidad. Y tampoco hay que olvidar que aquí no celebran el Día de Reyes, con lo cual el 2 de enero me tocaba volver al trabajo de todas maneras…

Para los más académicos, aquí va la referencia al paper que presentaremos en VTDC, y del cual florecerá mi tesina:

Overhead Matters: A Model for Virtual Resource Management
Borja Sotomayor, Kate Keahey, Ian Foster
VTDC 2006

Virtual machines provide a promising vehicle for controlled sharing of physical resources, allowing us to instantiate a precisely defined virtual resource, configured with desired software configuration and hardware properties, on a set of physical resources. We describe a model of virtual machine provisioning in a Grid environment that allows us to define such virtual resources and efficiently instantiate them on a physical Grid infrastructure. We argue that to properly account for, and manage, the overhead resulting from instantiating and managing virtual resources, overhead must be scheduled at the same level as virtual resources, instead of being deducted from a user’s resource allocation. We present preliminary results that demonstrate the benefits of such an approach.

Pues eso… el final ya se ve más claro, aunque después de eso, todavía queda la tesis 😉

ABC, página 84

Aunque me parece que la mayoría de mis lectores no leen el ABC, os animo a que hoy (domingo 29 de octubre), os animeis a comprarlo y vayais directamente a la página 84. Espero que os sorprenda gratamente 🙂

ACTUALIZACIÓN (30/10/06): Para aquellos que no tuvieron ocasión de comprar el ABC ayer, lo que salió publicado en la página 84 fue nada más y nada menos que “Computación Grid: Más allá de los superordenadores, por Borja Sotomayor” 🙂 Ya escribiré sobre esto más adelante… pero os adelanto que en el futuro aparecerán más artículos míos en la nueva sección Ciencia y Futuro del ABC 😉

Pequeño anticipo de mi tesina

Llevo tiempo queriendo escribir sobre mi tesina en mi blog, pero la verdad es que siempre me encuentro con que, cuando por fin tengo tiempo para escribir en el blog, lo último que me apetece es seguir pensando sobre mi trabajo. A esto hay que añadirle que la recta final de la tesina está resultando ser brutal, y ultimamente me tiro unas 12 horas al día en la oficina picando codigo, ejecutando experimentos, etc. Menos mal que cada vez queda menos 😛

Pero bueno, como muchas veces me preguntan sobre qué versa mi tesina, a falta de una explicación escrita en formato de artículo de blog, por lo menos os voy a referir a unos cuantos documentos con los que os podreis hacer una idea del tema de mi tesina (desafortunadamente, todo en inglés).

  • Mi página web académica. Esta es la página web que mantengo en la Universidad de Chicago, y donde incluyo toda mi información académica (publicaciones, presentaciones, asignaturas, etc.).
  • Transparencias de una presentación que di en el ESAC Grid Workshop ’06 hace unas semanas (“Virtual Workspaces: Dynamic Virtual Environments in the Grid”), explicando el contexto de mi tesina (los “virtual workspaces”). Mi trabajo se centra especificamente sobre lo descrito en las transparencias tituladas “Virtual Clusters”.
  • Web del grupo de Virtual Workspaces de Globus
  • Descripción de mi investigación que aparece en mi web académica:

    My research lies in the intersection of Grid Computing and virtualization. In particular, my work focuses on resource management for virtual workspaces, an abstraction for execution environments that can be dynamically deployed on a grid. Currently, the most widespread models for execution management on grids are based on the job abstraction. Virtual workspace are not meant to replace the job abstraction, but to provide a more powerful and flexible execution environment when the job abstraction imposes too many constraints on the user, and can also complement the job abstraction by providing on-demand execution environments for a user’s jobs.

    A virtual workspace focuses on providing a higher quality in two aspects: environment definition (“quality of life”) and resource allocation (“quality of service”). An environment definition allows users to fully specify the execution environment they require, instead of being constrained to using the software environment configured by the resource provider. A resource allocation is an enforceable fine-grained allocation of hardware resources (CPU%, memory, disk space, network bandwidth, …), allowing for dynamic renegotiation to reflect changing requirements and conditions, instead of using coarse-grained resource requests (such as “number of processors” and “running time”) or providing little or no resource enforcement. Although the idea of creating execution environments on demand is not new (e.g. there are multiple solutions that allow users to deploy different hard drive images on a cluster, thus changing the execution environment of the worker nodes), current workspace models and implementations fail to provide adequate quality in both aspects at the same time (e.g. deploying hard drive images takes a long time, and even so it fails to provide fine-grained resource allocation to users of the cluster).

    Virtualization technologies are a promising direction for providing higher quality workspaces, by allowing execution environments to (1) be isolated from each other, (2) have enforceable resource allocations, (3) be configured flexibly, and (4) serialize and migrate. However, using VM technologies to implement workspaces poses new challenges in resource management, security, networking, etc. My research focuses on a virtual workspace resource provisioning and management model that strives to maximize quality of life and quality of service by allowing users to specify their resource requirements in terms of virtual resources, which an RM system will map to physical resources, adequately managing and scheduling the overhead of deploying and running VMs and guaranteeing that users gets exactly the resources they requested (instead of allowing overhead to “invade” the resources they requested).

“Máximo Gurú Español de las Tecnologías Grid”

Como algunos de vosotros igual ya sabeis (especialmente los que sigais con frecuencia el blog de Kirai), en la revista Connect de este mes hay un artículo sobre Grid Computing escrito por Kirai, en el que se incluye una entrevista que me hizo Kirai hace unas semanas (que, por cierto, me pareció una pasada que Kirai quisiese entrevistarme a mi ;-). Puesto que el PDF del artículo + entrevista está disponible en la web de Kirai, me imagino que recibirá bastante difusión, con lo cual quiero proactivamente comentar algo que aparece en la entrevista (en previsión de que, a más de uno, le resulte un poco chirriante).

Pues bien, resulta que, en la entrevista, encima de mi nombre aparece la epígrafe “Máximo Gurú Español de las Tecnologías Grid”, dando la impresión de que yo (un estudiante de doctorado de 25 años) soy la persona que más sabe y más controla de Grid en toda España. Ante la posibilidad de que mi blog o mi buzón de correo se llene de mensajes del tipo “Aaaaaala, sobrao, a donde vas!!!”, “Castillos no habrá, pero fantasmas…”, o “Baja Modesto, que llega Borja”, quiero aclarar que lo de “Máximo Gurú” no lo dije yo (me imagino que lo añadió la revista, porque quedaría bien). Esta no es la primera vez que me pasa algo así… hace tiempo me entrevistaron para el boletín/periodico de la Universidad de Deusto, en el que hablé de muchas cosas, incluyendo mi interés por la informática y el cine. En la versión impresa el titular que pusieron fue “El cine es mi pasión, y la informática es mi vocación”, dando la impresión de que lo había dicho yo. Era una cita que resume (más o menos) algunas de mis respuestas, pero que yo no dije directamente. Y claro, hubo varias semanas de coña en la universidad a cuenta de “Borja, ¡hablanos de tu pasión!” 😀

Engalanamientos editoriales aparte, la gente que me conoce ya sabe que yo no me considero (ni mucho menos) el “máximo gurú” de nada. Hay muchos investigadores y desarrolladores españoles que llevan trabajando en Grid bastante más tiempo que yo, y que controlan y saben bastante más que yo (de hecho, fue gracias a varios de ellos que conseguí iniciarme en el mundillo de la Grid). No olvidemos que yo no soy más que un estudiante de doctorado y que, a pesar de unos cuantos logros destacables y “vistosos” (estudiar bajo la tutela de Ian Foster, publicar un libro sobre Globus, tener un blog en el que cuento mis vivencias en Chicago-la-capital-de-la-Grid, etc.), todavía no le llego a las rodillas a la gente que lleva en esto practicamente desde que nació el concepto de la Grid. Evidentemente, también me preocupa que esos verdaderos gurús (algunos de los cuales conozco, y respeto enormemente) lean la entrevista y se crean que voy por ahí diciendo que yo soy la leche en patineta y que soy mejor que ellos. No es el caso. Yo no soy más que un pequeño saltamontes en comparación con ellos 🙂 Y no lo digo por modestia: a pesar de todos mis logros, todavía me quedan muchos (duros) años de curtirme en el mundo de la investigación, de publicar artículos científicos, de ir a conferencias, de terminar la tesis, etc. hasta que pueda colgarme la medallita de “gurú” 😉