La informática se ha convertido en una herramienta irremplazable para muchos ámbitos, entre ellos la ciencia. La investigación en áreas como la física, la astrofísica, la biología o la geografía implica tener que recabar, organizar y trabajar con ingentes cantidades de datos cuya gestión excede las capacidades de los ordenadores domésticos. Es ahí donde entra en juego la Computación de Altas Prestaciones (CAP), mediante la cual se combina el uso de máquinas mucho más potentes con código muy refinado que permite explotar al máximo las capacidades de los procesadores dedicados a esos cálculos.
Un grupo de investigación del Departamento de Ingeniería Informática y de Sistemas de la Universidad de La Laguna lleva algo más de un año desarrollando un proyecto denominado SHAPPEE, acrónimo de Sistemas Heterogéneos y de Altas Prestaciones: Programabilidad y Eficiencia Energética, si bien tiene experiencia en este ámbito desde finales de los años noventa. Cuenta con unos 60.000 euros de financiación para tres años a través del programa de proyectos de Excelencia del Ministerio de Economía, Industria y Competitividad.
El investigador principal del proyecto es Francisco Almeida, con la colaboración de Vicente Blanco como co-responsable, con quien pudimos hablar sobre esta investigación en su despacho de la Facultad de Ciencias. En total, son cinco los investigadores que conforman el núcleo principal del proyecto, con la colaboración de becarios y doctorandos para aspectos puntuales.
Programabilidad y gestión energética
La CAP es un ámbito que suscita mucho interés y, por tanto, hay mucha investigación al respecto, por lo que resultaba oportuno dilucidar qué es aquello que distingue a SHAPPEE de otros proyectos de esta área. Blanco explica que la razón de su interés es que se centra en dos aspectos sobre los que el equipo de investigación de la Universidad de La Laguna tiene ya experiencia: la programabilidad y la gestión de la eficiencia energética de este tipo de computación.
Sobre el primero de ellos, señala que los equipos destinados a CAP son sistemas complejos y, normalmente, heterogéneos, es decir, con elementos de cómputo que son distintos: “Hay procesadores de propósito general, como los que tenemos en nuestro escritorio en los PC normales, o tenemos también procesadores especializados, que permiten acelerar el cómputo. Uno de ellos, de los más que se habla en la actualidad, son las GPU, que en realidad son unos aceleradores de cómputo que vienen del mundo gráfico”.
De hecho, Blanco señala que este tipo de aceleradores provienen, curiosamente, del mundo del videojuego, que requiere una gran capacidad de cálculo para reproducir correctamente los gráficos y animaciones que este tipo de productos de ocio. “Muchos investigadores se dieron cuenta de que ese tipo de diseño valía muy bien para hacer también lo que llamamos cómputo de propósito general, que son cálculos científicos, básicamente. Así, las compañías de hardware que trabajan en este campo han reciclado sus arquitecturas para para trabajar en el mundo CAP”.
En cuanto al segundo aspecto, el consumo energético, el investigador apunta que estas máquinas dedicadas a CAP consumen muchos recursos. “Por la evolución de la tecnología y por el crecimiento que están teniendo, ahora mismo podemos hablar de máquinas como la Sunway TaihuLight en China, que es actualmente la más potente del mundo y consume 15,3 megavatios, es decir, la quita parte de lo que produce la central eléctrica de La Palma (Los Guinchos) que tiene una potencia instalada de 88 megavatios”. Por ello, una de las tareas abordadas es desarrollar técnicas que hagan que los códigos ejecutados por esas máquinas las aprovechen de forma eficiente y consuman lo menos posible.
Este alto consumo se debe, en gran medida, por la propia dificultad y larga duración de los cálculos científicos que deben ejecutar. “Por ejemplo, una predicción meteorológica tarda unas cuantas horas, por eso hacerlas más allá de tres días es complicado. Si te conectas a la Agencia Estatal de Meteorología (AEMET), verás que tienes predicciones de dos o tres días, más allá es difícil. Y esto es así porque son necesarios unos datos que van cambiado a lo largo del tiempo. Para calcular a diez días vista, tardarías mucho tiempo y, además, entre medias irían cambiado las condiciones, que vendrían a ser las entradas de esos algoritmos. No es viable”.
Tanto los desarrolladores de hardware como los programadores están refinando cada vez más la maquinaria y los códigos que se ejecutan en ella, por lo que podría parecer que el problema del rendimiento tendrá solución en el futuro. Sin embargo, Blanco explica que siempre estará presente: “La CAP es un entorno sin fin. Si puedes construir un ordenador súper grande, siempre va a haber un problema que sea aún mayor. Por ejemplo, pasa en física de partículas, donde hay unas simulaciones en las que se puede llegar solamente hasta un cierto tamaño porque no tenemos memoria ni recursos informáticos suficientes para simularlos”.
Investigación básica
El proyecto SHAPPEE está siendo abordado principalmente desde la programación, no desde el hardware. “Lo que hacemos es diseñar algoritmos para ejecutar en estos computadores y, sobre todo, diseñar herramientas de programación que faciliten la labor. Uno de los problemas que hay con este tipo de arquitecturas heterogéneas es que programarlas no es fácil, tienes que ser un programador especializado para sacarle toda la potencia de cómputo que poseen esas máquinas”, explica Blanco.
Por tanto, pese a su componente tecnológico, este proyecto se engloba en el ámbito de la investigación básica de apoyo a científicos, destinada a generar software libre. “Queremos desarrollar un compilador, un traductor de código que permita generar código paralelo para diferentes arquitecturas, ya sea en dispositivos móviles o en CAP, que sea eficiente a partir de una especificación sencilla y que pueda ser utilizada por una persona no experta”.
A este respecto, conviene recordar que muchos de los investigadores que utilizan CAP son científicos que, si bien saben programar, no saben hacerlo de manera avanzada para optimizar el código a la arquitectura en la que están trabajando. “Venimos a ser investigadores de apoyo para este tipo de problemas en el entorno de la CAP. La informática se aplica a muchos campos y nosotros tenemos que adaptarnos al problema concreto. Lo curioso es que muchos problemas, desde el punto de vista de la computación son parecidos y, por tanto, los algoritmos que se utilizan también son similares”.
De este modo, una de las tareas que aborda el proyecto es la creación de lo que el investigador denomina un “traductor de código”, término que prefiere al más extendido de “compilador”. “Lo llamo así”, reflexiona, “porque lo que trabajamos es la traducción fuente a fuente. Es decir: un código fuente se transforma en otro código fuente más optimizado para luego compilarlo y ejecutarlo en la máquina de destino”.
Otro factor que se está considerando es la escalabilidad de los códigos: “Si somos capaces de construir una máquina mayor, ¿nuestros algoritmos están preparados para escalar? Es lo que llamamos ultrascale computing: no se ha construido esa máquina, pero se construirá, así que ya hay que ir pensando qué va a pasar con nuestras aplicaciones”. También se está estudiando la posibilidad de aplicar parte de estos hallazgos en dispositivos móviles.
La mayoría de los desarrollos que se están produciendo son de libre disposición, mayoritariamente publicados en la plataforma GitHub, en donde ya se ha puesto a disposición pública, por citar un caso, una librería de medida de energía que se utiliza en varios contextos.
Esa producción de software, más las publicaciones que se realicen en revistas y las participaciones en congresos y reuniones científicas, son los materiales que formarán parte de la memoria final del proyecto, que deberá presentarse en 2019. Pero antes habrá que elaborar una memoria a mitad del proceso, explicando cómo están evolucionando los trabajos a partir de los objetivos planteados. “Son proyectos de investigación abiertos; hay veces que en algún aspecto no consigues lo que esperas, o a veces descubres algo nuevo y llegas a alguna conclusión distinta a lo que te habías plantado. ¡Es lo interesante de la investigación!”.
Gabinete de Comunicación