Blog de noticias de astronomía - Desde Buenos Aires, Argentina
¡Que no cunda el pánico!
"¿No es suficiente ver que un jardín es hermoso sin tener que creer que también hay hadas en el fondo?" - Douglas Adams, La guía del autoestopista galáctico.

24/11/12 - DJ:

Un acelerador de partículas en la computadora

T.E.L: 7 min. 13 seg.

A finales de 2010 se lanzó Test4Theory, un proyecto de computación en la nube que permite a los participantes correr simulaciones de física de partículas de alta energía en sus ordenadores.



En la actualidad, los usuarios de computadoras contamos con un recurso sin parangón. Dice Santiago Bilinkis (quien fuera CEO de Officenet) que si los autos hubieran tenido un crecimiento exponencial en su velocidad máxima desde 1960 como lo han hecho las computadoras, tendríamos vehículos que superaran la velocidad de la luz (aunque físicamente es imposible). Comenté aquí antes al respecto.

Sin embargo, con los más modernos y poderosos procesadores, memorias RAM ultrarápidas y gran capacidad de almacenamiento en disco, los usuarios en general no pasan de navegar la web. Es como tener una Ferrari y circular en calles de tierra.
De allí que sea importante concientizar sobre la computación distribuida, que permite poner nuestros recursos computacionales al servicio de la ciencia.
El proyecto Test4Theory permite a los usuarios correr simulaciones de física de alta energía que los físicos utilizan para evaluar los eventos reales del LHC. Pero antes, un poco de historia.

Ciencia e informática
Muchos proyectos científicos requieren de grandes infraestructuras informáticas para realizar simulaciones y procesar datos. Es posible recurrir a instalaciones creadas a tales efectos, a nivel Estatal en instituciones de investigación y en forma privada.
Estas redes de computadoras (modelo Grid) tiene sus limitaciones: los organismos públicos pueden no ser suficientes o no estar debidamente preparados, mientras que los privados son económicamente coercitivos.
Un cambio modelo vino con la "nube", a través de proveedores como Amazon, Google, IBM y Microsoft.
Una tecnología clave que permitió el desarrollo de la nube es la virtualización, que permite una separación lógica de una infraestructura computacional física, instalada en un centro, de los usuarios que utilizan los recursos provistos por ese hardware. En particular, las características de las plataformas, como el sistema operativo, la conectividad, memoria, configuración de procesador, pueden ser abstraídas a máquinas virtuales que luego pueden ser personalizadas por o para los usuarios finales durante el período que se usen.
El modelo BOINC está basado en un servidor que envía trabajos (jobs) en nombre de un proyecto a todos los clientes voluntarios que participen del mismo para que sean procesados por las máquinas de esos usuarios.
Cada proyecto BOINC requería un considerable esfuerzo en realizarse, entre otras cosas porque los usuarios pueden poseer diferente hardware y sistema operativo.

LHC@Home
El proyecto paradigmático de computación distribuida de la plataforma BOINC es SETI@Home. Pero en 2005 se lanzó LHC@Home como parte del 50 aniversario del CERN. El código (llamado Sixtrack) estaba basado en Fortran y era llevado a Windows y Linux de forma tradicional, incorporando llamadas a la librería de BOINC y producir ejecutables para cada plataforma. Unos 60.000 usuarios con unas 100.000 computadoras han estado activos en ese proyecto desde entonces. Cabe decirse que un usuario puede correr varios proyectos en una PC y además hacerlo en varias computadoras al mismo tiempo, por ejemplo en una empresa o institución académica, siempre con el debido permiso. Por eso hay más computadoras trabajando que usuarios.

Por el interés generado por esa aplicación impulsó la idea de que CERN se beneficie de BOINC para asistir en la investigación del Gran Colisionador de Hadrones.

Física del LHC en casa

Un problema es...Windows. Ocurre que en una disciplina como la Física de Altas Energías (HEP), casi todos los códigos computacionales son desarrollados bajo Linux (Scientific Linux en el caso del LHC) y llevarlos ("porting") a Windows o incluso a otras distros de Linux es trabajoso. Cada experimento tiene un código largo con un montón de dependencias de terceros y cada colaboración en el LHC tiene diferentes entornos, por lo que se rehacen los códigos con mucha frecuencia.
Pero al usar la virtualización, todo el entorno incluyendo el sistema operativo, código, librerías, etc, pueden ser incorporados a una imagen virtual que luego es ejecutada bajo lo que se llama Hypervisor instalado en las máquinas clientes, asegurando compatibilidad. Eso soluciona el problema del "porting", pero aparece otro: el tamaño de la imagen. Todo el entorno de un experimento del LHC está en el orden de los 10 Gigabytes!

Otro de los problemas era el manejo de "jobs" o tareas por BOINC. En este caso, cada tarea es un evento o grupo de eventos de colisiones de partículas que es mapeado una "unidad de trabajo" (work-unit) de BOINC, que a su vez es dividido en partes y enviado a los clientes voluntarios. Cuando dos o más resultados de una work-unit se reciben y son validados, la unidad de trabajo se considera completa, los voluntarios reciben un crédito y recién entonces la base de datos de la tarea es actualizada.
Cada experimento físico debe escribir scripts para alimentar de tareas desde su sistema de producción al servidor BOINC y esperar a que ese proceso esté completo para cada tarea. Por eso, el manejo de tareas resulta importante y BOINC no provee de las herramientas de monitoreo adecuadas.
Pero los experimentos del LHC desarrollaron sus propios sistemas de envío y monitoreo de tareas, mucho más adecuado, por lo que se creó una interfaz llamada Co-Pilot que ofrece una puerta hacia las diferentes implementaciones de monitoreo de tareas (Pilot-job).


Figura 1

CernVM
En 2008, un proyecto de investigación y desarrollo del CERN, llamado CernVM se lanzó para ofrecer una solución general al problema del manejo de imagen virtual para computación en física en el LHC. Hay varios trabajos escritos al respecto, pero básicamente CernVM optimiza el tamaño de la imagen al cargar cada máquina virtual con lo básico (200 MB) inicialmente y luego se incrementa según lo requerido. Las imágenes resultantes, de 1 GB, son guardadas (cached) por las máquinas virtuales, minimizando el acceso al repositorio CernVM hasta que haya cambios en el código.

El sistema Co-Pilot es un intermediario entre los usuarios y los servicios Grid de Cern.

Para conectar a BOINC y CernVM se usó el "wrapper" de BOINC en 2006 hasta que apareció CernVM y luego el VMWrapper.

El sistema BOINC-CernVM
El voluntario BOINC primero pre-instala el hypervisor de código abierto VirtualBox en su sistema (se planea que esto no sea así en el futuro).
Luego el voluntario añade el proyecto en BOINC en forma tradicional
El usuario recibe una work-unit que contiene dos archivos: el CernVM-Wrapper (el ejecutable) y la imagen virtual estándar CernVM que a su vez contiene el agente Co-Pilot.
Se ejecuta el CernVM-Wrapper: configura, carga y hace correr la imagen CernVM en una máquina virtual de VirtualBox.
Dentro de la máquina virtual, CernVM corre de forma estándar, incluyendo una conexión al archivo en el repositorio.

Figura 2

Qué hace Test4Theory
Lo que se hace en este proyecto son simulaciones de colisiones de partículas de alta energía. Al comparar las simulaciones con los datos reales, los científicos pueden notar signos de desacuerdos entre las teorías actuales y el universo físico. Eso no es malo, sino todo lo contrario.
Pero esas simulaciones requieren computadoras. Se ha estimado los requerimientos de procesamiento del LHC en 100.000 CPU y creciendo. Eso implica un costo enorme.
En el contexto señalado al principio, con el poder computacional de las computadoras hogareñas actuales, la computación voluntaria es una verdadera opción, tanto para los científicos como para los usuarios. Hay miles de millones de personas en el planeta. Hay además organizaciones en las que trabajan muchas personas y tiene para ellas muchos ordenadores, sin usar en muchos momentos.

"Pienso que podemos llegar a 10.000 o más personas participando en Test4Theory. Eso haría una diferencia importante a los recursos disponibles para los teóricos", indicaba Peter Skands, físico teórico detrás del proyecto en una nota de ISGTW.

El proyecto usa simulaciones de Monte Carlo para determinar la tasa a la que eventos específicos deberían ocurrir en los experimentos. Esas simulaciones, llamadas así por la ciudad famosa por los casinos, genera números aleatorios. Las simulaciones generan eventos aleatorios basados en las probabilidades de una interacción en el modelo de la Cromodinámica cuántica y permite comparar esos resultados con los datos reales de eventos de colisión de partículas en los experimentos del LHC.
Las simulaciones se realizan a través de aplicaciones como Herwig++, Pythia 6, Pythia 8, Sherpa y Vincia (El paper de A. Buckley detalla esas aplicaciones. Notar que en ese trabajo, en inglés, se utiliza el término Parton).

"No podemos ser capaces de simular tantos eventos como el LHC", indica Skands. "La simulación Monte Carlo más rápida produciría una colisión por milisegundo, en promedio. Pero el LHC produce 40 millones en por segundo".
Según Skands comentó en e-sciencetalk, se necesitarían entre 10 mil y 100 mil voluntarios para obtener un "verdadero" LHC virtual (si me permiten el oxímoron).
Según el Estado del Proyecto, al momento de redactar estas líneas hay unos 6765 usuarios con créditos. ¿Será Ud. el/la próximo/a?

Cómo participar
Quienes ya son usuarios de BOINC y corren otros proyectos, deben primero descargar VirtualBox e instalarlo. Debe hacerse notar que BOINC no debe estar instalado como servicio (en Windows) o daemon (en Linux).
Si ya está instalado BOINC de esa forma, reinstalar. En cualquier caso, cerrar BOINC antes de instalar VirtualBox. Luego de instalar VB, ejecutar BOINC y añadir el proyecto Test4Theory.
Quienes no son usuario de BOINC, deberán, por tanto, descargar esa plataforma.

En cualquier caso:
Antes de instalar nada, consultar el FAQ de Test4Theory.


Es posible correr el proyecto en varios núcleos, pero para eso VirtualBox necesita extensiones de chips usualmente habilitadas en computadoras y laptops modernas, pero que a veces están deshabilitadas desde el BIOS. Es posible hacerlo, pero con el debido cuidado que implica modificar el BIOS. Consultar en el foro las indicaciones específicas.
Es posible, como en todo proyecto BOINC configurar el modo de uso. Podemos indicar que los proyectos se ejecutan sólo cuando no usamos la computadora, establecer un máximo de disco y memoria, que se conecte sólo a determinados horarios, es decir, acomodar el uso a nuestras necesidades específicas.
Los proyectos en BOINC otorgan créditos que sólo "sirven" como incentivo, no tienen ningún otro valor. No es una competencia por quién logra más créditos, por tanto, no tiene sentido hacer trampa de ninguna clase.
En forma predeterminada, al ejecutar Test4Theory aparecerá una consola en Windows. Es posible que no aparezca si desde la configuración del proyecto utilizamos la opción Headless en YES.
Existe un complemento para Firefox para obtener estadísticas de usuario de Test4Theory.
Algunos proyectos BOINC tienen un protector de pantalla que muestra en forma de gráficos los datos que se están procesando. En el caso de Test4Theory, en cambio, cuando está ejecutándose ese proyecto, es posible ver gráficos desde http://localhost:7859/. Una muestra se puede ver en CitizenCyberScience.


Nota escrita para el XXXVI Carnaval de la física, en esta edición hospedado por Gravedad Cero. Para unirse y leer las entradas visitar Gravedad Cero.


Fuentes y links relacionados

Sobre las imágenes
  • Las imágenes 1 y 2 son de Test4Theory.
  • Figuras 1-2: de Carlos Aguado Sánchez et al 2011.

Etiquetas: -

No hay comentarios.:

Publicar un comentario