La computación cuántica, predeciblemente, está empezando a ser nota casi cotidiana. Los avances en la tecnología, en el hardware, poco a poco empiezan a ser más sólidos y es claro que este nuevo paradigma promete mucho.
Y a tal grado promete que es evidente la necesidad de una serie de herramientas de software para cuando -finalmente- podamos empezar a ver computadoras cuánticas y aplicaciones ejecutándose en estas nuevas máquinas, basadas en lo que sabemos de la mecánica cuántica.
Así, ya empiezan a verse empresas trabajando en el tema de los lenguajes de programación para las máquinas cuánticas y además, todos quieren ser el primero en este tema, porque el que pega primero, pega dos veces, deben pensar. Vamos, que el lenguaje que se convierta en el estándar dejará muchos beneficios a sus creadores.
Y entonces, Quantum Machines ha anunciado su lenguaje universal para programar las computadoras cuánticas, justo días después de que el Instituto de Zurich anunciara su propio lenguaje, llamado Silq.
En este caso, la empresa con sede en Tel Aviv habla de QUA, cuya meta principal es permitir a los investigadores programar de forma intuitiva las computadoras cuánticas, acercándose así a la capa de abstracción del software de computación cuántica que pretenden los diseñadores del lenguaje.
Para ello, QUA es «agnóstico de los qubits», la unidad de proceso de las máquinas cuánticas por lo que, en lenguaje común, estaríamos hablando de no estar atado al hardware específico de cada computadora cuántica. Con ello se podrían soportar entonces todos los procesadores cuánticos.
Para ello, QUA compila a algo que han llamado el lenguaje ensamblador de un procesador de pulsos de una máquina cuántica, que de acuerdo a sus creadores, puede correr con mínima Q y precisión.
La promesa de un lenguaje universal para la computación cuántica
Desde una perspectiva semántica, QUA busca ser el primer lenguaje que combine las operaciones cuánticas universales a nivel de pulsos, junto con las clásicas operaciones universales de una típica máquina de Turing, que es de proceso clásico y en donde se entiende perfectamente la lógica y el control.
El DR, Itamar Sivan, co-fundador y CEO de Quantum Machines, nos dice que su plataforma busca trabajar sobre el tema de la computación cuántica, como otros fabricantes de software, aunque explorando diferentes tipos de hardware (qubits superconductores, átomos y iones atrapados, centros NV, puntos cuánticos y qubits topológicos).
La empresa que hace QUA no quiere crear un nuevo procesador cuántico, sino que tener una capa específica para poder orquestrar la ayuda entre los procesadores clásicos y cuánticos. «A esto le llamamos», dice Sivan, «orquestración cuántica de capa».
Y sí, hoy tenemos grandes avances en la computación cuántica, pero aún falta desarrollar todo el potencial del paradigma, el cual promete un poder computacional inmenso y requiere de progresos que sean significativos para que puedan ser usados en diferentes niveles y capas del stack de la computadora cuántica.
Sin embargo, los equipos actuales y el desarrollo de métodos cuánticos están limitados en velocidad, por ejemplo. El reto busca entonces ver las dramáticas diferencias entre la computadora clásica y cuántica: en lugar de conectar transistores como hacemos en una computadora clásica, usamos la lógica que contiene un procesador cuántico, que son los pulsos electromagnéticos que se mandan a este procesador a través de la computación clásica.
La plataforma de orquestración cuántica (QOP por sus siglas en inglés), representa una nueva era de experimentación y de avances cuánticos, resolviendo los retos de controlar y operar los procesadores cuánticos con las capacidades más avanzadas.
Con ello la orquestración se basa en combinar el hardware clásico que pueda trabajar con todas las plataformas cuánticas a través de un compilador de un lenguaje de alto nivel, que sea intuitivo y tenga una capa de abstracción importante, y esto es precisamente QUA.
¿Qué se espera pueda hacer QUA por el cómputo cuántico?
Sivan indica que hoy en día se corren experimentos en los procesadores cuánticos, en donde los equipos de investigación hacen enormes esfuerzos en la configuración de los procesos.
Escriben código de bajo nivel muy complejo y adaptan su equipo al hardware cuántico, sincronizando así muchos dispositivos. Muchas veces construyen su propio hardware clásico desde cero, para de nuevo, repetir el proceso doloroso del siguiente experimento.
Por ello, QUA promete ser el primer lenguaje comprensivo e universal para la computación cuántica, que unifica las operaciones cuánticas en su nivel de pulsos con las clásicas operaciones universales que conocemos en el hardware clásico que conforman, finalmente, lo que llamamos una máquina de Turing.
QUA, dicen sus diseñadores, es como escribir programas usando pseudocódigo, que es una manera de expresar las ideas de programación sin fijarse demasiado en los detalles.
De esta forma se espera que los investigadores puedan diseñar sus experimentos sin la necesidad de escribir programas de bajo nivel y además, permite que las correcciones sean fáciles de realizar, sin tener que recurrir as la multicalibración de los qubits o a la corrección de los errores cuánticos.
Todo esto, junto con el compilador dedicado QUA, puede acelerar en órdenes de magnitud la programación y ejecución de software corriendo en protocolos cuánticos, ayudando a ahorrar recursos y reducir el tiempo muerto de estas costosísimas máquinas. Y como beneficio añadido, QUA puede correr en una variedad de procesadores cuánticos.
¿Qué es mejor, Silq o QUA?
En realidad son cosas distintas. Silq busca ser un lenguaje de programación universal para la computación cuántica, mientras que QUA quiere ser una capa de abstracción para poder hacer programas cuánticos que se enlacen con el hardware clásico.
Y aunque ambos buscan ser universales, intuitivos y fáciles de usar, las ideas atrás de cada proyecto no necesariamente coinciden. Lo que sí es claro es que, probablemente, el enfoque final decidirá qué lenguaje y qué software termina por imponerse en este nuevo mundo de la programación cuántica.