El CiTIUS diseña nuevas herramientas de lenguaje para facilitar la programación de computadores cuánticos
El desarrollo de lenguajes amigables que permitan a los programadores y programadoras comunicarse con las computadoras cuánticas de forma accesible es uno de los factores decisivos para el despliegue de todo el potencial de estas tecnologías. El CiTIUS trabaja en un compilador para sistemas cuánticos distribuidos y todas las herramientas y especificaciones requeridas para su funcionamiento. El objetivo final es contribuir a que los programadores puedan centrarse en el avance de los códigos informáticos que dan instrucciones a las computadoras cuánticas, liberándoles de la exigencia de conocer a fondo los principios físicos que rigen su funcionamiento, como ya ocurre desde hace mucho tiempo con la computación clásica
Cuando nace una nueva tecnología, una de las cosas más importantes que hay que hacer para que sirva a nuestros propósitos es aprender a comunicarnos con ella. Desde que se puso a disposición del gran público la primera versión de ChatGPT, el 30 de noviembre de 2022, han corrido ríos de tinta y horas de vídeo sobre cómo rellenar el cajetín de texto de la aplicación. Tutoriales en YouTube, guías, manuales, blogs, libros en papel y digitales y hasta cursos. Todo para saber escribir el prompt que genere la mejor respuesta, es decir, los códigos de lenguaje más adecuados para comunicarnos con la inteligencia artificial.
La computación cuántica promete resolver problemas inalcanzables para los ordenadores clásicos, aunque todavía queda mucho camino para que pueda desplegar todo su potencial. Una de las claves para que esto suceda es el desarrollo de lenguajes que permitan a los programadores y programadoras comunicarse con las computadoras cuánticas.
Las leyes que rigen el comportamiento de las máquinas cuánticas son totalmente diferentes a las de las clásicas. La mecánica cuántica, con sus fenómenos de superposición y entrelazamiento, permite que las unidades mínimas de información, los cúbits, sean mucho más versátiles que los tradicionales bits. Y ponerlos a trabajar requiere de nuevas habilidades de comunicación.
En cualquier caso, gracias a todo el trabajo realizado durante décadas con los ordenadores clásicos, “desarrollar lenguajes nuevos no es estrictamente necesario. La mayor parte de los lenguajes de programación para la computación cuántica son librerías y extensiones de lenguajes clásicos”, explica Jorge Vázquez, cuya investigación en el Centro Singular de Investigación en Tecnologías Inteligentes de la Universidade de Santiago (CiTIUS) busca contribuir a este campo.
Traducir para simplificar
“Es muy importante hacer hincapié en la cantidad de diferentes perfiles que se necesitan en el mundo de la computación cuántica, actualmente dominado por los físicos. Creo que, analizando la tecnología cuántica desarrollada hasta ahora, es vital que el mundo de la informática clásica tome cartas en el asunto y mejore la representación de las ideas a nivel informático que plantea el mundo de la física”, asegura Vázquez.
Esa representación de ideas a nivel informático es lo que se denomina abstracción, algo que existe desde hace tiempo en la computación clásica y que permite que un programador pueda hacer su trabajo sin necesidad de comprender en profundidad el funcionamiento físico de una CPU (la unidad central de procesamiento de un ordenador convencional). En el caso de la computación cuántica, programar requiere una formación muy avanzada con conocimientos en física que un informático no suele tener. Para vencer esta limitación, es necesario trabajar en la traducción del lenguaje para simplificarlo, es decir, lograr el nivel de abstracción necesario respecto de la física cuántica que subyace en las tripas del sistema.
En este contexto, la aportación del CiTIUS consiste en el desarrollo de un compilador para sistemas cuánticos distribuidos y todas las herramientas y especificaciones requeridas para su funcionamiento.
En pocas palabras, un compilador es una herramienta de desarrollo de software que se ocupa de traducir el código fuente escrito por un programador a un lenguaje que la máquina puede entender y ejecutar. Se podría comparar con un traductor de idiomas que trabaja con un libro escrito en chino para trasladarlo al español, de manera que las personas hispanohablantes podamos entenderlo. Un compilador de computación cuántica como el que desarrolla el CiTIUS hace lo mismo con el código que escribe el programador para que el ordenador cuántico entienda lo que tiene que hacer.
Estas herramientas se encuentran en una etapa muy temprana de desarrollo. “La literatura apunta a que el futuro de la computación cuántica se encuentra en las estructuras con varios núcleos. Para este tipo de arquitecturas no hay ningún lenguaje desarrollado aún”, aclara Vázquez.
Al menos mientras los computadores cuánticos sigan siendo pequeños –con pocos cúbits, y, por tanto, con una capacidad de cálculo limitada– y ruidosos –propensos a cometer errores–, existe cierto consenso en la comunidad científica en que la solución es poner a estos dispositivos a trabajar en red. Es lo que se conoce como computación cuántica distribuida.
Sin embargo, este concepto no solo hace referencia a la conexión de varios ordenadores cuánticos entre sí para trabajar juntos, sino también a que cada uno de estos tengan múltiples procesadores internamente –las estructuras con varios núcleos a las que hacía referencia el investigador del CiTIUS–. En términos coloquiales, al parecer el futuro de la cuántica pasa por computadores con varios cerebros cada uno trabajando en equipo que, a su vez, se conectan entre sí para colaborar en la ejecución de una tarea o problema que por sí solos no podrían resolver.
Descubrir la mejor manera de dar instrucciones a este entramado de manera eficiente es el complejo reto al que se enfrenta Vázquez. Su proyecto se encuentra en una fase inicial, pero tiene muy claros los pasos que hay que dar. “Recientemente acabamos de definir la especificación de una representación intermedia, que es el punto central para un compilador. Los siguientes pasos son la creación de un compilador de alto nivel a la representación intermedia definida y de la representación intermedia a un backend que nos permita ejecutar o simular”, detalla.
El esperanto de la computación cuántica
Para explicar de forma sencilla lo que quiere lograr, propone utilizar un paralelismo con el lenguaje natural, imaginando que tenemos cinco idiomas antiguos y cinco modernos y queremos traducir todos los idiomas antiguos en todos los idiomas modernos. En principio, para esto serían necesarios 25 traductores, uno por cada posible emparejamiento.
Sin embargo, es posible plantear una opción alternativa, utilizando un idioma intermedio, que podría ser el esperanto. Si se traducen todos los idiomas antiguos al esperanto y el resultado a todos los idiomas modernos, solo son necesarios 10 traductores: uno para cada idioma antiguo al esperanto –cinco en total– y otro para cada traducción del esperanto a un idioma moderno –cinco más–. Por tanto, pasamos de necesitar 25 traductores a necesitar solo 10, lo que hace que el proceso sea más eficiente en recursos.
“En esta metáfora, el esperanto sería la representación intermedia que nosotros estamos desarrollando y, como vemos, ayuda a reducir notablemente la cantidad de piezas que se necesitan para crear un compilador nuevo cuando, por ejemplo, surge un lenguaje de alto nivel –en la metáfora, el lenguaje antiguo– o una nueva arquitectura de computación –que equivale al lenguaje moderno–”, relata Vázquez.
En este proyecto, que se enmarca en el Plan Complementario de Comunicaciones Cuánticas (PCCC), el CiTIUS cuenta con la colaboración del Centro de Supercomputación de Galicia (CESGA), que recientemente ha incorporado el QMIO, uno de los computadores cuánticos de acceso público con más cúbits de Europa.
El futuro cuántico
Jorge Vázquez considera que el camino hacia el éxito de la computación cuántica debe aprovechar lo ya aprendido a través del desarrollo de la computación clásica. Así, sobre el futuro, comenta que “todo dependerá de cuál sea la apuesta de las grandes empresas y los grupos de investigación. Dicho esto, hay una tendencia lógica en la computación cuántica que es seguir, o por lo menos intentarlo, los pasos de la computación clásica con el fin de evitar errores del pasado”, explica. “La introducción de la computación paralela y distribuida en clásica y su enorme impacto es el camino para conseguir un impacto similar en la cuántica”.
Por lo que se refiere al papel de la comunidad científica en este avance, asegura que “la investigación siempre tiene que ser afrontada de la misma manera: intentando aglutinar toda la información posible y abrazando los cambios que puedan surgir”. Según su visión, la investigación requiere de gran flexibilidad porque las grandes ideas surgen de no descartar ninguno de los caminos que puede tomar la tecnología. “Quizás en el entorno de la cuántica esto se acentúa más si cabe, pero creo que, lejos de ser un problema, incita a la creatividad y a la búsqueda de nuevas soluciones”, concluye.
Contacto: tf.pena@usc.es ; javier.cardama@usc.es
Publicaciones:
Barral, D., Cardama, F.J., Díaz, G., Faílde, D., Llovo, I.F., Mussa Juane, M., Vázquez-Pérez, J., Villasuso, J., Piñeiro, C., Costas, N., Pichel, J. C., Pena, T. F., Gómez, A. (2024) Review of Distributed Quantum Computing. From single QPU to High Performance Quantum Computing. https://arxiv.org/pdf/2404.01265
Vázquez-Pérez, J., Cardama, F. J., Piñeiro, C., Pena, T. F., Pichel, J. C., Gómez, A. (2024) NetQIR: An Extension of QIR for Distributed Quantum Computing. https://arxiv.org/pdf/2408.03712