Regent, el lenguaje de programación para supercomputadoras

Publicado el

REGENT

Se necesitan supercomputadoras para poder trabajar con grandes cantidades de datos, y eso genera también problemas debido a la complejidad del software necesario para programar el hardware.

Con esto en mente han estado, desde la universidad de Stanford, trabajando en un nuevo lenguaje de programación llamado Regent, un lenguaje que hace que los supercomputadores sean más fáciles de usar, con un entorno de programación que no requiera que cada investigador sea un científico informático.

Comentan en la presentación que normalmente se programan estas computadoras utilizando C++, lenguaje que se usaba cuando el microprocesador predominante era la unidad central de procesamiento, cuando se trabajaba en serie, no en paralelo, como hacen los superordenadores actuales.

Actualmente se usa la unidad de procesamiento de gráficos o GPU para realizar muchos cálculos similares simultáneamente o en paralelo, y C ++ se ha actualizado para mantenerse al día en este tema, pero no son más que parches, era necesario crear algo desde cero. Eso es lo que hace Regent, asigna tareas de procesamiento en serie a las CPU y tareas de procesamiento en paralelo a las GPU.

Después de que Regent trabaja a nivel conceptual, se compila en una segunda capa de software llamada Legion, que también desarrolló el mismo equipo. Legion genera código de máquina, con instrucciones como dónde almacenar los datos que debe analizar la supercomputadora.

El costo de energía de mover datos puede ser 100 veces el costo de realizar cálculos con esos datos, por eso es importante optimizar esa parte. Dónde poner los datos se convierte en una de las decisiones más importantes que toma un programador, y Regent con Legion pueden ayudar.

Regent es una forma de programación muy diferente, se necesita «cambiar de chip», por eso no se espera que se adopte fácilmente en el mercado.

Estaremos, como siempre, atentos a su evolución.