Archive for the 'Doctorado' Category

Esta semana, en Boston

Esta semana me toca pasarla en Boston para asistir a la conferencia “ACM/IEEE International Symposium on High Performance Distributed Computing” (mejor conocida como HPDC 2008). Estoy aquí porque, como comenté anteriormente, me aceptaron un artículo en esta conferencia y hay que venir a presentarlo. Mi presentación no es hasta el jueves, así que de momento solamente estoy asistiendo a otras charlas.

A pesar de haber dado docenas y docenas de charlas, y estar muy suelto al hablar en público, hay un cierto acojone en venir a HPDC. Primero, porque esta presentación viene a ser como una defensa de proyecto de fin de carrera. Nos hemos tirado un año trabajando un tema de investigación, obtuvimos unos resultados, los resumimos en un artículo, y ahora hay que defenderlo delante de un montón de gente. Aunque que te hayan aceptado el artículo es un buen indicador de la calidad del trabajo, en la conferencia todavía puedes encontrarte con gente que te hace preguntas dificiles (y no con mala leche, simplemente son preguntas que a ti ni se te habían ocurrido). Segundo, porque HPDC es una de las conferencias más importantes en mi área de investigación, con lo cual no te enfrentas con cuatro pardillos en el público. Te enfrentas a los mejores investigadores de tu campo, e incluso con los autores que has citado en tu artículo (lo que siempre puede resultar en preguntas embarazosas del tipo “Usted no ha entendido lo que yo dije en mi artículo”). Finalmente, porque esta es la primera vez que tengo que presentar los resultados de un artículo mío en una conferencia. Por concretar, es el primer artículo en el que yo soy “primer autor”, lo que significa que soy el principal responsable (y el que se come el marrón si hay algún problema con el artículo). Y, sí, es mi primer artículo porque en el pasado he publicado artículos en “workshops”, que (en términos académicos) tienen menos standing que una conferencia o un congreso.

Vamos, que no es una charla tipo “Si me sale bien, vale, y sino, también”. Hay que prepararla y empollarla como la defensa del proyecto de fin de carrera o de una tesina. Así que seguramente habrá un poco de tensión hasta el jueves. A ver que tal…

Eso sí, me he planificado para poder quedarme el fin de semana después de la conferencia, así que tendré ocasión de hacer un poco de turismo por Boston. Tengo planificado, como visitas imprescindibles, ir al campus del MIT y de Harvard, pero se aceptan sugerencias.

El “paper”

Hace poco más de un mes mencioné que me habían aceptado un artículo en la conferencia “ACM/IEEE International Symposium on High Performance Distributed Computing” (mejor conocida como HPDC 2008). La publicación de artículos (o “papers“) en conferencias y revistas científicas es una parte importante de sacarse el doctorado (y de ser un científico), ya que suele ser la única prueba tangible de tus trabajos de investigación. O, mejor dicho, la única prueba tangible que ha sido revisada por terceras personas, en lugar de trabajos que puedas escribir por tu cuenta y que solamente revisas tú o, a lo sumo, tu director de tesis. Esta revisión permite garantizar (en cierta medida) que los resultados son válidos, que en el artículo no se contradicen (o se obvian) trabajos anteriores, etc. Este es el sistema de peer reviewing (o “revisión por pares” o “revisión por otros”), uno de los pilares de la ciencia moderna, y sobre el que escribiré en algún momento (se me están acumulando temas sobre los que escribir en el blog…).

En fin, hace poco colgamos en la web la versión final del paper, titulado “Combining Batch Execution and Leasing Using Virtual Machines”, y co-escrito con Kate Keahey e Ian Foster. Este es el abstract (”resumen”) del paper:

As cluster computers are used for a wider range of applications, we encounter the need to deliver resources at particular times, to meet particular deadlines, and/or at the same time as other resources are provided elsewhere. To address such requirements, we describe a scheduling approach in which users request resource leases, where leases can request either as-soon-as-possible (”best-effort”) or reservation start times. We present the design of a lease management architecture, Haizea, that implements leases as virtual machines (VMs), leveraging their ability to suspend, migrate, and resume computations and to provide leased resources with customized application environments. We discuss methods to minimize the overhead introduced by having to deploy VM images before the start of a lease. We also present the results of simulation studies that compare alternative approaches. Using workloads with various mixes of best-effort and advance reservation requests, we compare the performance of our VM-based approach with that of non-VM-based schedulers. We find that a VM-based approach can provide better performance (measured in terms of both total execution time and average delay incurred by best-effort requests) than a scheduler that does not support task pre-emption, and only slightly worse performance than a scheduler that does support task pre-emption. We also compare the impact of different VM image popularity distributions and VM image caching strategies on performance. These results emphasize the importance of VM image caching for the workloads studied and quantify the sensitivity of scheduling performance to VM image popularity distribution.

En fin, si sentís curiosidad por mi trabajo, echadle un vistazo, aunque prometo que eventualmente acabaré escribiendo un artículo más accesible sobre mi trabajo. Los aun más curiosos pueden echarle un vistazo a mi lista completa de publicaciones.

Este trimestre: enseñando bases de datos

Tras dos trimestres de investigación pura y dura que culminaron en la publicación que ya he mencionado anteriormente, este trimestre me toca volver a la docencia. ¡Albriquias! ¡Alegrata! ¡Me late el cardiotripa! En concreto, voy a ser asistente de docencia en CMSC 23500, una asignatura de introducción a las Bases de Datos. Voy a ser el responsable de organizar e impartir las prácticas de la asignatura, lo que incluye ejercicios a pie de máquina pero también sesiones de discusión en los que resolvemos ejercicios más “teóricos” (p.ej., diseño de una base de datos).

Aunque las bases de datos no tienen mucho que ver con mi área de investigación, siempre ha sido una mis materias favoritas de la informática (tanto la parte de diseño como la parte de programación). De hecho, cuando estudiaba ingeniería en ESIDE fui “becario web” desde 1999 hasta 2003, y al final mis responsabilidades acabaron tirando más hacia el diseño y administración de las bases de datos de las que dependían las aplicaciones web de ESIDE (y luego de toda la universidad). Ahora que me doy cuenta, tengo mil historias de esa época y algún día debería sentarme a ponerlas por escrito… en fin, a lo que iba, que las bases de datos siempre me han molado bastante.

Sin embargo, hasta ahora no he impartido una clase de bases de datos a nivel universitario (impartí un par de cursos de bases de datos en Bilbao, pero eran fuera de la universidad), así que cuando me comentaron cuales eran mis opciones docentes para este trimestre, escogí la asignatura de base de datos sin pensármelo dos veces. Evidentemente, no va a ser una asignatura tan orientada al h4×0ring como la asignatura de programación cuyas prácticas impartí en 2006 y 2007, y en la cual teníamos a los estudiantes escribiendo parsers con lex y yacc en la quinta semana. No obstante, tengo unas cuantas ideas en ebullición. En concreto, desde que me involucré con el Center for Teaching and Learning de la universidad, me he interesado mucho por el Aprendizaje Activo y el Aprendizaje Colaborativo, y últimamente intento aplicarlos lo máximo posible en mi docencia.

Por ejemplo, la semana pasada tuvimos el primer “discussion group” de la asignatura, en el que me reuno con los estudiantes de la asignatura (14 estudiantes, aunque a la sesión vinieron 8) durante una hora y “discutimos”. Como no hemos llegado a SQL ni a los otros aspectos más técnicos de las bases de datos, el propósito de esta sesión fue realizar el diseño de una base de datos utilizando el modelo Entidad-Relación. Lo estructuré de la siguiente manera:

  1. Entrego a los estudiantes un enunciado, y les doy unos minutos para que lo lean y hagan preguntas por si algo no queda claro. Podeis echar un vistazo al enunciado aquí. Como podéis ver, ajem, me cuesta desvincular el frikismo de la docencia xDDD
  2. Los estudiantes se juntan en grupos de tres, y realizan el diagrama Entidad-Relación juntos. Esto es mejor que hacerlo individualmente porque (1) en el “mundo real” casi siempre te va a tocar colaborar con otras personas en este tipo de tareas y (2) porque esto estimula discusión sobre conceptos teóricos que se han visto en clase (p.ej., “Esto es una entidad débil!” “Me parece que no” “Explícame por qué no” etc.)
  3. Pasada media sesión, cada grupo escribe su solución en la pizarra. En concreto, tuvimos tres soluciones, todas esencialmente correctas, pero con sutiles diferencias, porque hay mil maneras de diseñar una base de datos, y cada una suele diferir en puntos semánticos muy detallistas o incluso irrelevantes. Esto también estimula una discusión sobre cómo se diseña una base de datos, por qué distintos diseños pueden plasmar la misma realidad, etc.

Cabe destacar que estas sesiones son opcionales, y ni siquiera son evaluadas. Su propósito es puramente complementar lo que se ve en las clases “de teoría” para reforzar los conocimientos. Y, aun así, la mayoría de los estudiantes vienen y hacen los problemas sin rechistar (no hay grupos donde uno hace todo el trabajo, y el resto se rasca las narices). Evidentemente, esta estrategia es posible porque es un grupo pequeño de estudiantes y porque aquí en EEUU los estudiantes están habituados a hacer mucho trabajo fuera de las clases “de teoría”, a hacer muchas preguntas, y a dialogar lo máximo posible con los docentes (a diferencia de los estudiantes españoles, que tendemos a ser muy calladitos).

En fin, más adelante vamos a cubrir SQL, programación web con bases de datos, y aspectos más teoricos de las bases de datos (como los dichosos arboles B). De hecho, hace más de un lustro escribí un cuaderno de ejercicios de SQL, y este trimestre quiero traducirlo al inglés, extenderlo, y publicarlo online. Más detalles sobre esto en el siguiente post.

Sotomayor et al.

Mirando un artículo científico que quiero citar en el artículo que me aceptaron la semana pasada, me he encontrado con esto:

More closely related to our work, Sotomayor et. al proposed an accurate resource allocation method for virtual computing environments [12]. Job execution time accounting in typical batch job schedulers include the time for staging executables to compute nodes, since the staging cost is typically very small compared to its execution time. However, deploying a virtual cluster can take significantly longer, thus including its time in execution time accounting can be unfair for the user. Sotomayor et. al proposed a VM-aware resource accounting method by estimating the time to deploy virtual machines on a single cluster. Similar to us, their estimation uses the information of the size of the VM image and the number of VMs to deploy. Unlike us, they assume homogeneous performance of compute nodes. Thus, their estimation would not be as accurate as ours in the presence of significantly different speeds of disk I/O.

[12] B. Sotomayor, K. Keahey, and I. Foster. Overhead matters: A model for virtual resource management. In First International Workshop on Virtualization Technology in Distributed Computing (VTDC’06), Nov 2006.

Me parece que es la primera vez que veo un artículo mío citado en otro artículo científico (al menos, siendo yo el primer autor; si que me han citado artículos en los que yo no era primer autor, con lo cual la cita no era “Sotomayor et al.”). En los artículos científicos es sumamente importante citar otros artículos relacionados con tu trabajo. No hacerlo suele ser indicativo de ignorancia o malicia. Es decir, o bien eres ignorante de tu área de conocimiento, o eres un “mal científico” que no quiere citar un trabajo que está “demasiado relacionado” y le restaría novedad a tus resultados. Curiosamente, en casi todos los artículos científicos que he leído, la sección de artículos relacionados suele incluir un párrafo por cada artículo, con la siguiente estructura en cada parrafo:

  1. El artículo escrito por Fulanito et al. propone un modelo/técnica/algoritmo/etc. para resolver el problema X.
  2. El problema X es importante y está relacionado con nuestro trabajo por las razones A, B, y C.
  3. La solución propuesta por Fulanito et al. mola mazo, y por eso la citamos.
  4. Eso sí, con respecto al subproblema Y del problema X, la solución de Fulanito et al. es una mierda pinchada en un palo.
  5. Nosotros, en cambio, abordamos el subproblema Y del problema X de una manera admirable.
  6. (Implícito: ¡Hurra por nosotros!)

Como podéis veis, el mundo académico es emocionante que lo flipas ;-)

Para los curiosos, “et al.” es la abreviación de “et alia”, que es latín para “y los otros”. Cuando se cita un artículo escrito por múltiples autores, sería muy engorroso escribir “el artículo de Fulanito, Menganito, Juanito, Jaimito, y Jorgito”, y se deja simplemente con el apellido del primer autor seguido de “et al.”.

A good week

roosevelt.jpg

Esta ha sido una buena semana. El lunes, tal y como relaté en el blog, nos notificaron de que Globus fue seleccionada como organización mentora en el Google Summer of Code. A lo largo de la semana ya nos han escrito varios estudiantes interesados en trabajar con nosotros durante el verano. Mola :-)

El jueves, además, llegó una muy buena noticia: me notificaron que un artículo que envié en enero a la conferencia “ACM/IEEE International Symposium on High Performance Distributed Computing” (mejor conocida como HPDC 2008) fue aceptado. No olvidemos que en el mundillo académico es importante publicar artículos científicos con los resultados de tu trabajo, especialmente si eres un estudiante avanzando hacia tu doctorado :-) Ser aceptado en HPDC 2008 es una pasada, porque es una de las conferencias más importantes de mi área, y aceptan muy pocos artículos cada año. Eso sí, es un “conditional accept”, lo que significa que todavía tendremos que hacer unos cuantos cambios al artículo antes de que lo acepten por completo, pero tendríamos que ser muy patanes para no seguir las recomendaciones del comité seleccionador.

Para añadir la guindilla final a esta semana, resulta que este fin de semana me coinciden múltiples planes (preparados antes de que supiese las dos buenas noticias) con amigos Chicaguenses, incluidas un par de cenas. Vamos, una coincidencia fantástica. Ha sido una buena semana. Life is good :-)

P.D.- El de la foto es Theodore Roosevelt. Viene a expresar perfectamente como me siento :-)