¿Con qué tecnología se descubrió el Boson de Higgs? Integración continua, open source, Grid, etc.

Fue el experimento Atlas, junto con el experimento Compact Muon Solenoid, los que posibilitaron el descubrimiento de una nueva partícula: el bosón de Higgs. Partícula que se teorizó hace casi 50 años, y que juega un papel especial en la masa de otras partículas elementales.
¿Cómo es y cómo se desarrolló el software que hay detrás de este experimento? Pues con un conjunto de buenas prácticas bien conocido: integración continua, automatización de pruebas, calidad software, patrones arquitectónicos…

4 millones de líneas de código, en “open source”, con una arquitectura “whiteboard” C++ sobre Linux

El software cuenta con cerca de 4 millones LOC, dividido entre 2.000 paquetes. Aproximadamente 1.500 usuarios están ejecutando regularmente al menos alguna parte del código. Se ha escrito por más de 1.000 desarrolladores (a menudo las mismas personas que son luego los usuarios), los últimos seis meses a un promedio de 25 paquetes de cambios por día.
El framework del software de Atlas sigue una arquitectura “whiteboard” implementada en C + + (muy muy resumidamente el patrón arquitectónico whiteboard es aquel en el que los procesos dejan mensajes sin saber quién los leerá, siendo los lectores responsables de enterarse de si hay mensajes nuevos y leerlos) .
La configuración se realiza a través de una capa de Python, que permite una configuración más flexible.
Todo el software utilizado es open source.

Calidad software e integración continua

Aunque en el pasado se hacían revisiones formales de código, estas consumían demasiado tiempo a los pocos verdaderos expertos software disponibles (la mayoría de los desarrolladores son físicos). Por ello, dejaron de hacerse.
Y ahora se trabaja con un modelo de integración continua, es decir, se anima a la gente a subir nuevas versiones de sus paquetes con la mayor frecuencia posible, siempre que añadan, al menos, tanta funcional como versiones anteriores. Así que la “release candidate” (es decir, una versión candidata a pasar a producción) se construye cada noche con las nuevas aportaciones. Con una liberación de “mayor release” anual.
Errores de compilación, así como que no se superen ciertas métricas de calidad de software, dan lugar a notificaciones por correo electrónico a los desarrolladores.
Las pruebas de integración más frecuentes se ejecutan automáticamente. Y para el lanzamiento de parches, hay adicionalmente pruebas de regresión automatizadas, que
comprueban bit por bit que la salida es idéntica a la de la versión previa de referencia.
Aunque en general los desarrolladores se toman muy en serio probar su software antes de subirlo, el sistema de pruebas automáticas aporta un valor incalculable en la detección de efectos secundarios imprevistos.

Un desarrollo global, en Grid, y colaborativo

Cuando se trabajaba en el experimento, se emitía un flujo constante de 0,5 Gbytes por segundo de datos en bruto, que debían ser procesados y distribuidos para su análisis a 3.000 físicos en 170 laboratorios en todo el mundo.
Cerca de 100 centros de cómputo en todo el mundo han sido certificados como parte del grid de Atlas. Cada sitio ofrece CPU y disco, y cuenta con la última versión del software Atlas. Por si no estás muy familiarizado con el tema, la computación grid es computación distribuida, uso colectivo de computadores, recursos heterogéneos (arquitecturas, máquinas, etc.) conectados por red. Estas máquinas suelen ser propiedad de diferentes instituciones (Universidades, centros de investigación, etc.) que colaboran conjuntamente.
En los últimos meses, más de 100.000 núcleos estaban constantemente en funcionamiento para el procesamiento de Atlas.
En lo que refiere a los investigadores, y desarrolladores, los recién llegados reciben orientación por otros expertos en el dominio, que les indican dónde añadir contribuciones y qué clases usar como modelos. Tan pronto como suben su código, este es examinado por cualquier persona en el experimento.

Referencias, y para leer más…

Hay cosas por la web, pero lo que más útil me ha sido es este artículo de IEEE Software.

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

0 comentarios en “¿Con qué tecnología se descubrió el Boson de Higgs? Integración continua, open source, Grid, etc.”

  1. Pingback: Bitacoras.com

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *