15/11/2008

Tu PC al servicio del bien común

Posted in Ciencia tagged , , , , , , a 4:12 pm por interloper

Piensa en tu ordenador. Fíjate en cuánto lo usas, piensa en las horas que pasa encendido en casa sin nadie delante, con la pantalla apagada, y sin hacer realmente nada. Planteate el hecho de que, incluso cuando lo estás usando, la mayor parte del tiempo no estás aprovechando más del 50% de su potencia.

Ahora, imagínate poder hacer que tu ordenador, a través de tu conexión a internet, pudiese ser utilizado para la investigación de un remedio contra el SIDA, el análisis de la radiación emitida por un púlsar a millones de años luz de la Tierra, para realizar simulaciones de plegado de proteínas, o incluso a evaluar los resultados de los experimentos que se realicen en el LHC (cuando vuelva a estar en funcionamiento, claro está…). ¿Acaso no sería bueno aportar tu pequeño granito de arena al mundo de la investigación?

La computación distribuida

Los programas que ejecutamos en nuestro ordenador se componen, en general, de diversas tareas que, combinadas, dan los resultados finales o output de la aplicación. Y estas tareas puede que sean dependientes las unas de las otras, o no. Por supuesto, si la tarea C depende de la tarea B, y esta a su vez de la A, el ordenador deberá ejecutarlas secuencialmente: A, B y por último C. Sin embargo, si las tres tareas son totalmente independientes entre sí, existiría la posibilidad de ejecutarlas en paralelo, todas a la vez, de modo que el tiempo de ejecución total no fuese la suma de los tres tiempos de ejecución, sino únicamente el de la tarea más lenta.

Ahora supongamos que tenemos la necesidad de ejecutar cien millones de tareas distintas e independientes entre si, cada una de las cuales tardarían, pongamos, doce horas en ser ejecutada. Si un único ordenador tuviese que ejecutarlas, tardaría mil doscientos millones de horas en ejecutarlo todo. Pero… ¿Y qué sucede si tenemos cincuenta millones de ordenadores? Pues que podríamos repartir dos tareas por ordenador, y tardar un único día en obtener los resultados. Esa es, precisamente, la idea que se esconde detrás del paradigma de computación distribuida: tener una serie de equipos que se vayan encargando de realizar todos los procesos independientes de una aplicación con el objetivo de reducir el tiempo de ejecución necesario para obtener los resultados.

Pero habrás notado que el número de ordenadores del que he hablado en este ejemplo hipotético es muy elevado… Cincuenta millones de ordenadores no es una cantidad que esté al alcance de todo el mundo… Tanto por espacio como por gasto económico, es una completa locura. Un laboratorio de un centro de investigación puede llegar a tener cien, doscientos ordenadores… Incluso unos cuantos miles, si empezamos a hablar de organismos de investigación de peso. Pero no millones.

Y en cambio… ¿Que sucedería si los ordenadores que realizan los cálculos no fuesen, obligatoriamente, todos pertenecientes a la misma compañía o grupo? ¿Y si hubiese una manera de aprovechar los miles de equipos que, dia tras dia, permanecen conectados a internet y encendidos, pero sin un usuario delante haciendo absolutamente nada? Es así como nace World Community Grid.

World Community Grid

Fundado por IBM sin ánimo de lucro, el sistema fue lanzado en 2004. La empresa mantiene catorce servidores conectados a la red desde los que, una vez recibida toda la información del proyecto por parte de las organizaciones investigadoras, divide los contenidos de estudio en pequeños paquetes que distribuye a través de internet a los diversos ordenadores conectados a la WCG, los cuales se encargan de llevar a cabo las tareas requeridas para, posteriormente, devolver los resultados a los servidores centrales. Una vez recibidos todas las respuestas desde los clientes, éstos servidores recopilan y tratan adecuadamente los resultados, y se los hacen llegar de nuevo a las organizaciones. Puedes encontrar algo más de información aquí.

De este modo, el WCG ya ha completado tres proyectos: Human Proteome Folding Project (plegado del proteoma humano), Help Defeat Cancer (investigación para facilitar la identificación y cura de cáncer de pecho, cabeza y cuello), y Fiocruz Genome Comparison Project. Mientras tanto, actualmente hay hasta siete proyectos más activos o en espera.

Y no solo eso. Al conectarse al World Community Grid (a continación contaré cómo hacerlo), el cliente que descargaremos también nos permite unirnos a muchos otros proyectos de investigación, como Einstein@Home, uFluids, QMC@Home, o muchos más, la mayoría de ellos de gran interés. Gracias a ello, la posibilidad de aportar nuestra pequeña ayuda al progreso científico aumenta, ¡y seguro que es bien acogida y necesitada!

Instalando el cliente de WCG

Llegados a este punto, espero haberte convencido de que es bueno (y necesario) instalar el cliente de WCG en tu equipo y unirte a esta red de apoyo a la ciencia. ¿Cómo hacerlo? Es muy sencillo. Lo primero que debes hacer es descargarte el programa sobre el que ejecutar las aplicaciones. Éste se llama BOINC, está disponible para descargar desde su página en la web de la Universidad de Berkeley. Una vez instalado, podrás comenzar a añadir aplicaciones.
En la imagen de la izquierda (click para ampliar), por ejemplo, tenemos cuatro proyectos activos Si queremos añadir uno nuevo, no tendremos más que hacer click en Herramientas -> Unirse a un proyecto, y seguir las instrucciones que nos irán apareciendo. El proceso es realmente sencillo, y muy intuitivo… Yo, poco después de hacer las capturas, añadí un quinto proyecto, Ibercivis, en el que se agrupan distintas asociaciones españolas de investigación para respaldar sus proyectos en un sistema de computación distribuída como éste.

A la derecha, en esta otra captura, se ve el contenido de la pestaña de Tareas, que es la carga de trabajo real que nuestro equipo tiene por cada proyecto, así como el estado en que se encuentra cada uno en este momento, y unas cuantas estadísticas más. Una pena que, habiendo puesto a funcionar el cliente recientemente en éste portátil, no tenga todavía ningún resultado al 100% que mostrar…

Just one little problem…

Ok, dirás. Todo esto es muy bonito, voy a salvar al mundo gracias a mi ordenador, y todo ello a base de solo unos pocos clicks, pero… ¿No hay nada negativo? Por supuesto, como todo, siempre hay alguna pega a todo esto… Aunque es fácilmente solventable. ¿Y cual es ese punto en contra? El uso de nuestro ordenador para cálculo intensivo como éste provoca que la carca de trabajo aumente considerablemente, y por defecto, el cliente BOINC está configurado para usar el 100% del procesador disponible. Es decir, que si estáis ejecutando una aplicación que consume el 40% del tiempo de trabajo, BOINC se quedará el 60% restante… Lo que implica que el procesador estará trabajando a pleno rendimiento constantemente. Y en consecuencia, se calentará. Si vuestro PC está bien preparado para afrontar el calor, no hay ningún problema real. Si en cambio es como mi portátil, que si se sobrecalienta, se apaga, ya no es tan gracioso. ¿La solución? Pedirle a BOINC que no utilice todo el procesador. ¿Cómo? De la siguiente forma:

En Avanzado -> Preferencias -> Uso del procesador, podéis indicarle al programa que, como tengo yo puesto para mi equipo, no utilice nunca más del 50% del procesador (Otras Opciones, abajo del todo). Incluso podéis decirle (en la parte de arriba) que el cálculo solo se ejecute cuando no estáis delante del PC, de modo que cuando estáis trabajando con él, BOINC no se esté quedando con parte del tiempo del procesador. En mi caso, y con la configuración tal y como está en la imagen de la izquierda, la temperatura del procesador oscila siempre entre los 50 y los 70 grados, algo normal para un equipo con una carga de trabajo intensiva como la que la WCG genera.

Creo que iniciativas como ésta son las que demuestran que el trabajo desinteresado, y con la ayuda de todos, es capaz de hacer cosas realmente grandes, que los proyectos colaborativos son una vía de pensamiento que realmente funciona y que si todos ponemos un poco de nuestra parte (en este caso, un poco de procesador a calcular), los resultados pueden ser espectaculares. Instálalo, y pon tu grano de arena a esta playa que estamos construyendo.

Anuncios

07/11/2008

¡Que nos quedamos sin ordenadores!

Posted in Dientes de Engranaje a 2:53 pm por interloper

¡Que nos dejan sin carrera! ¡Que mis seis años estudiando no van a servir de nada! ¿Y qué hago yo ahora en el doctorado?

Uy, no, perdón… Lo siento, me he dejado llevar por la emoción. En realidad, nada de esto va a pasar. La gente tiende a exagerar bastante.

In the beggining…

Pongo en situación a los desconocedores de este asunto, y presento el marco general de toda esta problemática… Hace unos pocos días apareció en internet una noticia que empezó a volar de e-mail en e-mail, de foro en foro, y de evento de Tuenti en evento de Tuenti. La titulación de Ingeniería en Informática (así como las Ingenierías Técnicas) iba a desaparecer, y todos aquellos que hemos terminado nuestra carrera nos íbamos a quedar de patitas en la calle, con cinco años (más, en la mayor parte de los casos) tirados a la basura. ¿El origen de este rumor? Un comunicado del Colegio Profesional de Ingenieros en Informática de Andalucía en el que se hacían eco de la ausencia de las fichas de los Grados en Informática y los Másteres en Informática. El problema es que, lejos de comunicarlo y explicar adecuadamente la situación, el Colegio optó (si acertada o equivocadamente es un asunto del que hablaré más adelante) por elaborar una nota alarmista, exagerada, plagada de mentiras y desmesuras (señores, decir que -y cito textualmente- “Los títulos actuales no tendrán validez” es FALSO, y es ENGAÑAR a la gente). Puedes leer la nota aquí.

No se el resto de la gente qué pensará al respecto, pero en mi caso particular, cuando leo el texto del CPIIA, hay algo que, de base, no me huele nada bien… El estilo “Y esto es cierto y no miento y tengo razón” que impregna todo el texto (no hay mas que ver la última frase del comunicado: “Esta situación es real y está ocurriendo ahora mismo“) me recuerda tanto al estilo “Enlarge your penis! For real!! it works!!” del correo SPAM, que mi conciencia me pide a gritos que busque más información y me entere realmente de qué sucede. ¿Esque a nadie más le rechina algo así?

Y esto a cuenta de…

De modo que, visto lo visto, yo me pregunto… ¿Por qué una sociedad respetable como el CPIIA se decide a hacer algo así? Por desgracia, somos vagos. Vivimos en la sociedad de la información, del mando a distancia, los ascensores y los asesores asociados. Vivimos en la sociedad del “No es serio… Que se encargue otro”. Pero del problema de la informática como profesión no se va a encargar otro, tenemos que ser los estudiantes, los titulados y los profesionales los que saquemos nuestras propias castañas del fuego. Y si no vemos el problema como inminentemente grave, no vamos a mover un dedo. Realmente considero que era necesario que alguien removiese conciencias y alertase de la situación, hacía falta que se pusiese el grito en el cielo para movilizar a una masa mayoritariamente pasiva. Sobredimensionar, exagerar y mentir es un sistema que, aunque personalmente no termino de aprobar (nunca fui demasiado inclinado a seguir las tesis de Maquiavelo), sencillamente funciona. Y eso es precisamente lo que ha hecho el CPIIA. Hablando en plata, ha puesto los huevos por corbata a los cerca de 100000 estudiantes de informática del país. Ya no se habla de “la profesión”, o “el intrusismo laboral”, sino que nos hemos acercado a los términos de “cuando TÚ termines la carrera, NO VAS A TENER TRABAJO”. El CPIIA ha hecho un acercamiento brutal del problema a los implicados, en vez de mantenerlo como una nube borrosa en el cielo futuro.

Y entonces… ¿qué está pasando?

Hay diversos artículos ya disponibles en internet donde se explica, de un modo mucho más realista, la situación actual, y la problemática real. Recomiendo mucho el blog Bolonia y la Ingeniería Informática for Dummies, ya que incluye una amplia cantidad de información, enlaces a Reales Decretos y, especialmente, información objetiva, algo de lo que el comunicado del CPIIA carece en absoluto. De todos modos, tras varios años lidiando con el Proceso de Bolonia ™, trataré de explicar la situación en líneas generales.

En principio, existen dos documentos importantes que necesitamos. Por un lado tenemos las Directrices de Grado y Máster (otorgadas por el Ministerio de Educación), y por otro, las Atribucioens Profesionales (otorgadas por el Ministerio de Industria).

Las Directrices dicen, básicamente, lo siguiente:

Ingeniería en X

Para que una titulación pueda ser reconocida como “Ingeniería en X”, deberá tener los siguientes contenidos mínimos:
– N créditos en la materia Y (léase, Álgebra)
– M créditos en la materia Z (por ejemplo, Redes e Intercomunicaciones)
– J créditos en la materia …

Las Atribuciones dicen, por su parte, ésto otro:

Ingeniero en X

Las siguientes tareas pueden ser únicamente desempeñadas por un Ingeniero en X:
– Firma de Proyectos de tipo A
– Firma de Proyectos de tipo B
– Desarrollo de sistema de tipo C
– Organización y dirección de entidades de tipo D

El 23 de octubre, lo que el Gobierno presentó fueron las Directrices para Grado y Máster, entre las cuales no se encontraban las relativas a la informática. Por tanto, no existe a fecha de hoy una regulación gubernamental que establezca los contenidos que una Ingeniería en Informática debe tener para que sea reconocida como tal por el Ministerio competente. Es por ello que, en el amarillo mundo de las alarmas, se dijo “Esto significa que no va a existir Grado en Informática”. Bien, en realidad lo que quiere decir es que no existen contenidos mínimos obligatorios para que una carrera pueda denominarse Grado en Informática. Esto es, que cada Universidad podrá crear su Grado en Informática como mejor considere.

¿Y eso es bueno o malo? Considero que esa pregunta está muy bien respondida en el link que he dejado antes…

Las escuelas y facultades al fin y al cabo ya tienen el Libro Blanco hecho, con lo que a priori no parece que la heterogeneización vaya a ser excesiva. Si la influencia de las empresas privadas (potenciada en el EEES) permite la creación de unos másters más especializados y útiles, esto hasta podría ser bueno. Eso sí, este proceso de creación de nuevos títulos ad-hoc, fuera de control… también podría ser un desastre.

Nota al lector extraviado: El Libro Blanco fue un borrador elaborado por las universidades españolas sobre los contenidos mínimos que un Grado en Informática debería contener. Hasta donde conozco, existe un acuerdo (aunque desconozco si verbal o escrito) por parte de todas las universidades de ceñirse a éste Libro Blanco a la hora de definir sus títulos en Informática.

Por otro lado, al no existir Atribuciones Profesionales para la Informática, cualquier proyecto relacionado con los ordenadores (desde diseñar el programa que establece los programas de lavado de un lavavajillas hasta el sistema informático de seguridad de un reactor nuclear) pueden ser diseñados por cualquiera. Mientras que los planos de un rascacielos solo puede firmarlos un Arquitecto, y solo un Médico puede operar a corazón abierto, el hardware y el software están a disposición de cualquiera… O lo que es lo mismo, existe muchísimo intrusismo laboral.

El problema principal

Puestos en un contexto, creo, suficientemente amplio, podemos ver ahora cuál es el problema principal. En realidad, todo se reduce a algo muy sencillo…

Los informáticos van al Ministerio de Industria, y dicen “Queremos Atribuciones!”
Y el Ministerio dice “No, porque no tenéis Directrices”
Así que los informáticos van al Ministerio de Educación, y reclaman “Queremos Directrices!”
Y el Ministerio dicen “No, porque no tenéis Atribuciones”
Y la rueda gira…

Y como actualmente se están definiendo las Directrices de los nuevos títulos, es el momento ideal de romper el círculo vicioso en algún punto. Es el momento adecuado de reclamar las Directrices, ahora que existe un proceso de definición de las mismas, para que a partir de ellas nos puedan dar Atribuciones. Es por eso, y no por que vaya a desaparecer la Ingeniería en Informática, por lo que hay que ir a la huelga el día 19.

¿Por qué ellos si y nosotros no?

Es posible que muchos os preguntéis por qué otras Ingenierías tienen Atribuciones y nosotros no… La explicación a esto es… La burocracia apesta.

Hace unos años (creo recordar que a finales de los sesenta) apareció una ley que decía que a todas las titulaciones existentes se les otorgaban las Atribuciones derivadas de las Directrices de sus planes de estudio. Por desgracia, Informática no se estableció como titulación hasta unos años después… Con lo que esa ley, sencillamente, no se le aplica. No estaba en la lista de titulaciones contempladas. Y desde entonces no ha habido más modificaciones del status de la situación… ¡Y es ahora cuando se puede modificar!

En resumen…

En definitiva, la conclusión que, personalmente, extraigo de todo esto es la siguiente… Es necesario manifestarse, es imperante que consigamos Directrices y Atribuciones… Pero no por los catastróficos motivos que se están propagando por la red, que tienen mucho más carácter de correo basura que de realidad, sino por la existencia de unos estudios unificados en Ingeniería en Informática y una profesión respetable como Ingeniero en Informática.

Espero que ésto realmente sirva para aclarar un poco la verdadera situación que se está dando, sabéis que os responderé a cualquier otra duda al respecto… Siempre que sepa la respuesta. Y si no… Fingiré que la conozco, y me lo inventaré por completo!!

Y esto es totalmente cierto, no es un bulo, y debes enviárselo a 15 conocidos antes de media hora, o todas tus relaciones sexuales futuras (si es que tienes alguna, porque si no lo reenvías… ya veremos, ya!) serán totalmente insatisfactorias, y acabarás deseando montártelo con un cactus!