El Supercómputo, herramienta indispensable para el desarrollo de México

106

Hoy día es por todos reconocido el papel fundamental que juegan las computadoras en nuestro quehacer diario; sin embargo, es menos entendido el rol que juegan un grupo reducido de éstas, las cuales por su capacidad reciben el título de supercomputadoras. Este grupo, en el cual suele sólo destacarse a las 500 más grandes del mundo, acumula un enorme poder de cómputo. ¿Qué tan grande? Baste decir que la supercomputadora más importante del mundo, Sunway TaihuLight, de China, equivale a unas seis y medio millones de computadoras de escritorio.

El listado de las 500 supercomputadoras más grandes del mundo, conocido como el Top500 (ver www.top500.org), lleva desde hace poco más de 30 años tal registro y se renueva dos veces al año. Durante su historia, ha sido fundamentalmente dominado por EEUU (que hace 10 años poseía cerca del 65% del poder de cómputo total del listado); sin embargo, en fechas recientes la lista sido tomada por asalto por China. Hoy día China posee los dos primeros lugares del listado y, además, equiparó a EEUU, al poseer cerca de un tercio del poder total de cómputo del listado. Esto es un logro notable tomando en cuenta que para Junio de 1999 China no tenía ni un representante en la lista.

El mundo de las supercomputadoras es fascinante, no sólo por las cantidades que emplea “camufladas” por prefijos como Mega, Tera y Exa entre otros; sino por las aplicaciones e implicaciones que tiene su uso. En las líneas que siguen, haremos un breve repaso por este “universo”, haciendo una revisión de lo que hoy día se está haciendo en nuestro País.

 

ÓRDENES DE MAGNITUD

Antes de hablar de las aplicaciones, me gustaría examinar las cantidades asociadas al supercómputo, y que como ya se refirió, están “ocultas” tras un prefijo que muchas veces no nos deja ver las monstruosas cantidades de las que se está hablando. Así que, tome aire, pues la bestia está por mostrar su rostro.

Empecemos por el más modesto de los prefijos, un Mega, que se “traduce” como un millón (de). Cuando a usted le venden una conexión a Internet de 20 Mega-bits por segundo, quiere decir que su proveedor le permitirá recibir un número de 20 millones de bits (20 millones de ceros y/o unos) por cada segundo. Quizá un ejemplo más claro sea decir que esto equivale a transmitir todo el texto de un volumen de Macroeconomía en un décimo de segundo; es decir, en lo que parpadea.

El siguiente prefijo en la lista sería un Giga, equivalente a mil millones (de). Por tanto, dado que la población global son aproximadamente 7 mil 500 millones de personas, podemos decir que existen
7.5 Giga-personas. Resulta increíble entonces que, cuando compramos algo “tan modesto” como un teléfono celular, no nos sorprendemos cuando nos indican que puede almacenar 16 Giga(bytes), y que no reflexionemos que eso quiere decir que el celular puede almacenar 16 mil millones de datos.

Continuando con la lista, ahora toca el turno a un Tera, o un billón. En notación científica esto corresponde a 1012 (10 a la 12); es decir, un 1 seguido por 12 ceros. Esta cantidad es tan grande, que decir que es astronómica es bastante preciso. De hecho, el número de estrellas que contiene la Galaxia de Andrómeda (la cual se estima es al menos dos y medio veces mayor en número de estrellas a la Vía Láctea) justamente es un Tera. Otro ejemplo se asocia a contabilizar todo el “dinero físico” (billetes y monedas) de todos los países del mundo. Se estima que esta cantidad equivale a unos 5 Teras de dólares.

Pero la lista sigue, pasemos ahora a un Peta, o mil billones; en notación científica, 1015. Algunos ejemplos sobre un Tera serían: un décimo de un Tera es el número total de células en el cuerpo humano (por cierto, sólo el 10% de estas células son humanas, y el 90% restante son de bacterias). Otra posibilidad se refiere a que hay 1 Peta de conexiones sinápticas en el cerebro humano. Hablar de 1 Peta de estrellas, equivaldría a decir que tenemos tantas como 10,000 veces el total de estrellas de la Vía Láctea. Por otro lado, se estima que el número total de hormigas es entre 1 y 10 Petas.

Por último, hablemos de un Exa, o un trillón. En notación científica, 1018, o un uno seguido por 18 ceros. Esta cantidad es tan grande, que excede en más del doble el total de segundos que se estima tiene de edad el Universo (alrededor de 14 mil millones de años, o aproximadamente 0.44 × 1018 segundos). Por otro lado, si contáramos todos los insectos que habitan nuestro planeta, hay alrededor de unos 10 Exas de ellos.

Pues bien, todos estos prefijos son lengua común en el supercómputo, y con ellos como antecedente, tenemos ahora los elementos para comprender mejor “las dimensiones” de lo que está asociado a éste, del cual hablaremos en seguida.

 

¿Qué es el supercómputo?

Una computadora, de manera general, está compuesta por 3 grandes elementos: a) la unidad de procesamiento (efectúa/calcula las operaciones lógico matemáticas requeridas para realizar una tarea), b) la memoria (almacena los datos para un proceso y aquellos que son resultado de éste) y c) los dispositivos de entrada y salida (aquí incluimos las redes para comunicación). Por tanto, una supercomputadora tiene estos tres elementos en grado sumo; es decir, tendrá una enorme capacidad de cómputo, de almacenamiento y de comunicación. Pero, ¿qué tan grande es? Por lo pronto baste decir que en muchos sentidos una supercomputadora será equivalente a decenas de miles, o hasta millones de equipos tradicionales concentrados en “uno solo”. Las comillas son necesarias porque actualmente, una supercomputadora es en realidad una red de computadoras (también conocida como cluster), con la salvedad de que esta red debe tener características especiales que le permitan operar como si fuera una sola máquina. Esto es indispensable si se quieren abordar algunas aplicaciones típicas asociadas a supercómputo. Para ir dando una “probadita” de cuales serían algunas de estas aplicaciones, considere el siguiente ejemplo: Como lector, tiene duda sobre algunas de las palabras que aparecen aquí, así que decide buscar más información de éstas con ayuda de Google. Tras teclear la palabra o frase, usted obtiene una respuesta de las páginas que mejor se ajustan a lo que estaba buscando, normalmente en una fracción de un segundo; pero… ¿Ha reflexionado cuántas páginas de Internet hay en todo el mundo? Más aún. ¿Cuántas palabras tiene cada página, y cómo podemos identificar la palabra o frase que nos interesa entre todas éstas para que el resultado de Google sea consistente con lo que yo realmente buscaba? Permítame ofrecerle algunos datos. Google tiene almacenada la información de alrededor de unas 130 Tera-páginas; así es, unas 130 billones de páginas de Internet, y si cada una tiene en promedio unas 400 palabras, entonces Google debería buscar entre cerca de 50 Peta-palabras, lo que equivale aproximadamente a 50 mil billones de palabras; y todo esto lo debe hacer en menos de un segundo. El problema no se hace más fácil si se considera que todos los meses, usuarios de todo el mundo hacemos más de 100 mil millones de consultas (equivalentes a cerca de 38,700 consultas por segundo). Encima, las páginas de Internet están continuamente cambiando su contenido. Supongo que resulta claro entonces que no hay una computadora sola que pueda resolver esta tarea. Pero, si una supercomputadora no es más que una colección de computadoras normales, entonces ¿por qué puede hacer más que una? La respuesta es fácil, usamos el viejo adagio de: “divide y vencerás”. Una tarea tan grande como la recién descrita es “partida” en “pedazos manejables” por una computadora; y como ocurre en una orquesta, habrá un director que reparta estos pedazos entre todos los miembros para que cada quién interprete su parte; pero además, el director vigilará que todos los pedazos se realicen en el momento oportuno, e integrará así éstos en una sola composición. El resultado será una sinfonía. Esta analogía en el mundo del supercómputo expresa uno de sus principios fundamentales para su funcionamiento, el procesamiento paralelo, aunque hablaremos más de esto un poco más adelante. Pero primero, echemos un vistazo a lo que estamos haciendo en México dentro del área.

 

Supercómputo en México

El Centro de Investigación y de Estudios Avanzados (Cinvestav) inauguró recientemente ABACUS, su Laboratorio de Matemática Aplicada y Cómputo de Alto Rendimiento. ABACUS cuenta con una de las supercomputadoras más importantes en México y Latinoamérica: Abacus I. Hoy día, Abacus I es la supercomputadora más grande de México, y la única representante del País en el Top500 en los últimos 5 años.

Abacus I tiene una capacidad de cómputo que excede los 400 Teraflops (400 billones de operaciones aritméticas por segundo entre procesadores tradicionales y aceleradores de procesamiento). Esto significa que Abacus I equivale a unas 20,000 pc-portátiles  juntas; o bien, podemos considerar que Abacus I podría realizar en menos de una hora lo que una pc-portátil haría en un año. Otra analogía ilustrativa sería pensar que, si una persona pudiera hacer una operación en una calculadora por segundo, entonces requeriría unos doce y medio millones de años para hacer lo mismo que hace Abacus I en un segundo. Su capacidad de almacenamiento es de 1.3 Petabytes; por tanto, si se imprimiera toda la información ahí contenida, las hojas formarían un “edificio” con poco más de 22 metros de alto cubriendo toda el área que hoy ocupa la Biblioteca de México José Vasconcelos (que son cerca de 4 hectáreas). En otros términos, su capacidad de almacenamiento es equiparable a unas 6,000 veces todos los documentos que se encuentran en dicha biblioteca.

Para lidiar con esta cantidad de información, Abacus I transmite entre sus distintos procesadores los datos a una velocidad de 40 Gigabits por segundo; por tanto, puede transmitir el equivalente a unos 13 DVD’s en lo que una persona parpadea. Para la comunicación con el exterior, Abacus I está conectada a la red NIBA (Red Nacional de Impulso a la Banda Ancha) a una velocidad de 10 Gigabits por segundo. Esto permitiría posible transmitir toda la colección de la Biblioteca de México (compuesta por unos 220 mil volúmenes) en poco menos de 3 minutos.

El Laboratorio está ubicado en el Parque Nacional “La Marquesa”, en el Municipio de Ocoyoacac, en un edificio de siete pisos y cerca de 7 mil metros cuadrados. El edificio fue diseñado por el artista plástico Sebastián a partir de la variación de su obra Cuántica: simetría 5, elaborada a partir de un concepto matemático que integra espacio, simetría, simplicidad, geometría y belleza.

ABACUS es la primera fase para la conformación de la nueva unidad del Cinvestav en el Estado de México. Surgió a iniciativa de un grupo de investigadores del Departamento de Matemáticas del Cinvestav, que en 2011 participaron en una convocatoria de fondos mixtos por 100 millones de pesos del Conacyt y el Consejo Mexiquense de Ciencia y Tecnología para crear un espacio especializado en Matemática Aplicada mediante el uso de supercómputo. El Laboratorio tiene por objetivo proporcionar a la academia, sector público e industria, recursos computacionales de alto rendimiento con apoyo de expertos para acelerar el conocimiento científico, la innovación tecnológica, así como la formación de recursos humanos en Matemáticas y Cómputo Científico.

A la fecha, ABACUS se ha posicionado como uno de los centros de supercómputo más importantes de Latinoamérica, incidiendo en el desarrollo del área incluso a nivel Continental. Prueba de lo anterior son los diversos eventos que se han atraído, siendo dos ejemplos el SC-Camp (SuperComputing Camp) o CARLA (Latin America High Performance Computing Conference). Ambos eventos Latinoamericanos sólo han sido organizados en México por ABACUS. Otro ejemplo claro son las numerosas visitas de personalidades del área, entre las que se destaca la del Dr. Mateo Valero, Director del Barcelona Supercomputing Center.

A la fecha, el Laboratorio y la supercomputadora han atendido más de 60 proyectos de áreas tan diversas como astronomía, genómica, evaluación de seguridad nuclear, redes neuronales, comunidades microbianas, diversidad biomolecular, farmacología, polímeros, prevención de desastres naturales y fenómenos financieros, entre otros. A través de ABACUS, se ha promovido la participación de México en proyectos globales, en particular en proyectos relacionados con eventos climatológicos extremos. Algunos proyectos que han concluido con excelentes resultados son: a) la investigación del Departamento de Computación del Cinvestav, a través de la cual se rompió un récord mundial para un problema criptográfico, b) expertos de la Unidad de Genómica Avanzada del Cinvestav en Irapuato consiguieron descubrir nuevas especies de salamandras en Oaxaca. Con este aperitivo, pasemos entonces a conocer más sobre lo que se hace con una plataforma de supercómputo.

 

Aplicaciones del supercómputo

El supercómputo se presenta hoy día como uno de los pilares para la creación de conocimiento y su aplicación. No es casual que EEUU, China, Japón y Europa (particularmente Alemania) han hecho consistentemente inversiones millonarias para mantener sus equipos de supercómputo actualizados. Y es que, cómo si no se podrían: comprobar miles de combinaciones de químicos en un instante para generar un nuevo medicamento, estudiar de manera segura una reacción nuclear, hacer predicción climática (para determinar el mejor lugar de una granja solar, eólica, o si es en el largo plazo, para estudiar el impacto del cambio climático en una región), determinar el lugar para hacer una perforación de un nuevo yacimiento de petróleo, entre muchas otras aplicaciones. Ninguna de estas aplicaciones es ciencia ficción, todas son proyectos vigentes desarrollados en alguna parte del mundo por grupos interdisciplinarios que emplean una plataforma de supercómputo para su estudio. A fin de entender mejor esto, en seguida se dará una breve reseña de algunas aplicaciones adicionales a las ya referidas.

El tratamiento del cáncer hoy día empieza a realizarse a través del modelado matemático y la simulación computacional de los procesos biológicos que ocurren en una célula apoyados por plataformas de supercómputo. A través del modelado computacional se traduce la información genética almacenada en nuestro ADN en características físicas observables (el ADN está compuesto por aproximadamente 3,200 millones de bases, las cuales codifican entre 20 y 25 mil proteínas diferentes). Al contar con una mejor comprensión de los factores que detonan el cáncer en cada individuo, y sabiendo la porción del ADN que se esté expresando (entendiendo la epigenética), se hace posible desarrollar un tratamiento personalizado. Esto es un avance notable, pues hoy día, se consideran fundamentalmente elementos como edad, peso y género para determinar los medicamentos y la proporción de éstos que deben administrarse a un individuo. Más aún, las dosis variarán en el tiempo con respecto a los resultados que estadísticamente han sido mejores para la mayoría de los pacientes; pero, tales estadísticas no permiten desagregar la información y ajustarla para un solo individuo. La biología computacional es una alternativa para alcanzar el tratamiento personalizado que puede cambiar de manera radical los posibles resultados durante el transcurso de una enfermedad.

Cambiemos ahora de escenario a uno que suele afectar nuestro quehacer diario: el transporte público. Si bien todos desearíamos un transporte público eficiente y barato, poco reflexionamos sobre el reto implícito en tener que mover diariamente miles, incluso millones de pasajeros en distintas rutas y las decisiones que eso implica. Por ejemplo: dónde deben ubicarse las rutas, y particularmente las estaciones de éstas, qué horario deberían tener los vehículos para cubrir la demanda, cómo deben modificarse los horarios o las rutas en caso de alguna contingencia o evento extraordinario, entre otros elementos asociados a la toma de decisiones. Hacer esto correctamente implica literalmente realizar miles de decisiones que deben ser tomadas idealmente de forma simultánea. Estudios de movilidad como el realizado en el Metro de Berlín permitieron, mediante el modelado matemático y la simulación usando supercomputadoras, reducir el tiempo que en promedio espera la gente en el andén; más aún, esto se consiguió empleando menos trenes. El impacto tanto en el bienestar de los usuarios, como a nivel económico es muy significativo, e implica ahorros millonarios al año incluso si sólo se considera la operación de un tren menos, dado el gasto por el combustible/energía, refacciones, mantenimiento, etcétera.

Veamos una aplicación más para la cual el supercómputo es insustituible. Considere por un momento que estamos estudiando el Universo, y tenemos una nueva teoría que aparentemente es capaz de modelar la colisión de las galaxias. Es claro que el modelo surge de la observación y el conocimiento acumulado a través de siglos; sin embargo, el limitado tiempo de la vida de un ser humano es insignificante en la escala de tiempo del Universo; por tanto, ¿cómo podríamos dar algún argumento plausible sobre si el modelo es correcto o no? La respuesta está una vez más en el supercómputo. Hoy día, simulaciones relativas a este fenómeno emplean algunas de las supercomputadoras más importantes del mundo, haciendo posible en cuestión de días obtener un resultado que sólo se podría “observar” en el transcurso de millones de años y en el que están implícitas miles de millones de estrellas.

Ahora que hemos visto algunas alternativas relativas al uso de supercómputo, conviene considerar algunos de los retos, desafíos y propuestas para su futuro, especialmente en México.

 

Retos, desafíos y propuesta a futuro

Es bien sabido, que nada en esta vida es gratis, y el supercómputo no es excepción. Uno de las primeras consideraciones que se debe tener es el costo del equipo y de su operación. Ya se expuso que inversión hicieron las Instituciones (Conacyt – Comecyt – Cinvestav) para iniciar el proyecto; sin embargo, los costos de operación suelen ser relevantes. Por un lado, hay que pagar la energía eléctrica para que la supercomputadora funcione, y en ciertos casos, la mitad de esta energía se ocupa para enfriar la máquina (aunque éste no es el caso de Abacus I, la cual es una máquina muy eficiente en ese sentido). ¿Qué tanta energía consume una de estas máquinas? Baste decir que Sunway TaihuLight (la número 1) consume aproximadamente 15.5 MWatts/hr; o el equivalente a unos 1.55 millones de focos ahorradores prendidos de forma continua.

Por otro lado, se necesita personal altamente capacitado para administrar el equipo, desarrollar/adecuar aplicaciones y matemáticos, físicos, ingenieros, químicos, médicos, etcétera de primer nivel capaces de obtener los modelos que se requieran para las diversas aplicaciones. Retomemos entonces la analogía ya dada con una sinfonía. ¿Cuántas personas conoce que compongan música? Seguro no muchas, y de esas. ¿Cuántas podrían escribir una sinfonía? Quizá muy pocas, si no es que ninguna. Pues bien, para realizar una aplicación para una supercomputadora se necesita un buen modelo matemático que después será “traducido” para que la computadora lo pueda interpretar. Ya con el modelo, se necesita un “compositor” que pueda escribir una sinfonía. Tal sinfonía está escrita en un lenguaje que le indica a la supercomputadora de manera precisa qué debe hacer, y cuando lo debe hacer (a esto se le llama un programa). Además, recordemos que hay miles, incluso millones de partes que serán interpretadas de manera simultánea (que es la parte paralela del programa). Dos implicaciones de esto son: a) no es trivial coordinar a todos los intérpretes, b) uno de los muchos interpretes puede fallar. Siguiendo el ejemplo de la Sinfonía, imagine que está oyendo una orquesta, y algún violinista se sale de tiempo, o que desafina. A pesar de los errores, la Sinfonía podrá ser interpretada hasta el final, y dependiendo de que tanto se salió de tiempo o desafinó, es probable que el error se vea mitigado por el sonido de los demás instrumentos y que nadie lo note. Pero, ¿qué relación guarda esto con una supercomputadora? Muy simple, en un programa donde las cosas se hacen por miles de elementos electrónicos, cada uno tiene una cierta probabilidad de fallar, y como son tantos, no es “difícil” que alguno de entre esos varios miles en efecto falle. Lamentablemente, esto puede ser “catastrófico” en un programa, pues podría provocar que se obtenga un resultado que no sea fiel a lo que se requería o que simple y llanamente nunca se obtenga el resultado pues el programa se quedó “esperando” que un elemento que se descompuso a media tarea entregara su parte. Por eso, hoy día se hace especial énfasis en que los programas no sólo deben ser paralelos, sino además deben ser resilientes a fallas.

Tiene sentido entonces preguntarse. ¿Vale la pena tanto esfuerzo? La respuesta es simple. ¡Desde luego que sí! En economía se habla de la importancia de desarrollar productos de (muy) alto valor agregado, y esto es justamente lo que se puede hacer con una supercomputadora; encima, no es una exageración decir que muchas de estas aplicaciones (productos) salvan vidas, como podría ser el caso del tratamiento personalizado para una persona con cáncer.

Además, comentamos que EEUU, China, Japón, la Comunidad Europea (especialmente Alemania) y Rusia todos tienen sus plataformas de supercómputo, y salvo China, han mantenido éstas por décadas. Lo de China puede servirnos como Nación de ejemplo, pues en cerca de década y media, paso de ser “nadie” al primer lugar en el Top500. Esto quiere decir que, con la inversión adecuada y una visión de largo plazo, se pueden detonar los elementos que “rápidamente” hagan competitivo a nuestro País en el área. Esto es posible dado que el área es muy dinámica, lo cual permite una más ágil inserción. Otro punto es que en México ya existe el talento en áreas científico/tecnológicas como las Matemáticas, Física, Medicina, Ingeniería y otras que se alimentan y alimentan las aplicaciones que se relacionan al supercómputo. Prueba de lo anterior, es que con poco más de 1 año de operación, la capacidad total de cómputo de Abacus I ya está destinada a diversos proyectos que son seleccionados de entre los participantes de las convocatorias semestrales y otros medios que para tal fin se han definido. ABACUS es un prometedor foco para el desarrollo en México, esperemos que éste y otros proyectos se consoliden por el bienestar de los mexicanos.

 

Por el Dr. Alejandro Flores Méndez 




Agregar un comentario