Por Darío Gil, Director de IBM Research
Actualmente, los investigadores y entusiastas de la computación cuántica necesitan saber programación cuántica; es simplemente una obligación. Sin embargo, pronto, todo lo que necesitarán es una app store de aplicaciones cuánticas y una línea de código. No se trata de una app store como la de un teléfono inteligente, pero es similar a un repositorio de código actual, como GitHub, un tipo de biblioteca digital donde los desarrolladores de software ponen el código que han escrito a disposición de cualquier usuario. En el futuro cercano, los desarrolladores podrán ingresar sus líneas de código, que invocarán a computadoras cuánticas para realizar tareas específicas que una computadora normal no puede hacer.
Mi predicción es que las computadoras cuánticas experimentarán las mismas etapas de desarrollo que las computadoras clásicas experimentaron durante varias décadas, pero lo harán con una velocidad mucho mayor, dentro del marco de la década actual.
Diez años atras, solo había unas pocas docenas de grupos de investigación que podían desarrollar código para la computación cuántica. Cuando IBM lanzó su plataforma en línea Quantum Experience en 2016, dando a todas las personas acceso gratuito a procesadores cuánticos a través de la nube, ese número aumentó a algunos miles en solo una semana. Cuatro años después, el número de programadores que experimentan con algoritmos cuánticos –lo que la comunidad llama circuitos cuánticos, las secuencias de instrucciones que definen comandos para manipular datos y hacer que una computadora cuántica funcione— es de cientos de miles. Y pronto, millones de desarrolladores de software en el ámbito de la tecnología informática comenzarán a aprovechar ese esfuerzo y diseñarán una multitud de circuitos cuánticos para que todos puedan usar.
Esta evolución será paralela a las mismas etapas de desarrollo que las computadoras clásicas han tenido durante varias décadas, pero se producirá mucho más rápido, tan solo en el espacio de esta década. ¿Recuerdan a Alan Turing? Desarrolló su teoría del software en 1936, y al hacerlo dio inicio a la ciencia de la computación y la ingeniería de software. Cuatro décadas después, el uso de computadoras mainframe seguía estando reservado solo aquellos que sabían cómo escribir software. Y en la década del 70, cuando compañías como IBM y Apple comenzaron a construir y vender las primeras computadoras personales, a menudo se dejaba que fueran los entusiastas del software quienes se encargaran de escribir aplicaciones que se ejecutaran en ellas.
Pero rápidamente, las empresas de software tomaron la delantera y, con el uso generalizado de las computadoras personales, los usuarios pudieron armar su propio stack de software sin necesitar un conocimiento profundo de la computadora. Esto mismo se repitió con los dispositivos móviles en la década de 2000: muy rápidamente, las personas sin experiencia en programación comenzaron a crear aplicaciones y diseñar sitios web. Hoy, todo lo que tienen que hacer es ingresar una simple línea de código en un programa con plantilla y, en segundo plano, los engranajes se ponen a funcionar automáticamente.
Las computadoras cuánticas presentan la misma promesa. Primero, programadores entusiastas; luego, desarrolladores, y con el tiempo, repositorios de circuitos cuánticos, o quizás bibliotecas, con circuitos de código abierto y protegidos por derechos de autor, una extensión natural del ecosistema de software de la actualidad.
Este es el siguiente paso inevitable en el proceso que ha estado en el centro de la atención de las empresas y los laboratorios universitarios en los últimos años: construir qubits. Estas unidades básicas de información cuántica son análogas a los bits que nos son mucho más familiares y que son utilizados por las computadoras clásicas: dígitos binarios simples que pueden tener un valor de 1 o 0, verdadero o falso. Los qubits, por el contrario, pueden hallarse en una superposición de estados 0 y 1. En nuestra vida diaria, no vemos superposición cuando se trata de objetos, solo en el caso de ondas. Pero en el ámbito de lo muy pequeño, las partículas pueden estar en múltiples estados a la vez. Los núcleos atómicos con dos orientaciones de giro pueden hacerlo, al igual que los fotones con dos direcciones de polarización y, en el caso de las computadoras cuánticas de IBM, los qubits formados por corrientes eléctricas superconductoras.
Hoy, los qubits no tienen el rendimiento suficiente para que una computadora cuántica supere a una máquina clásica en una tarea útil. Pero las computadoras cuánticas están mejorando rápidamente; nos estamos volviendo bastante buenos para hacer qubits, y la teoría detrás de los próximos pasos es sólida. Estamos ejecutando una hoja de ruta para hacer qubits con muy poco ruido, es decir, lo más libres posible de la influencia de perturbaciones externas. Cualquier ruido interrumpe el reino cuántico, haciendo que la superposición frágil colapse en el estado final del qubit, que siempre es 0 o 1. Una vez que tengamos suficientes qubits de bajo ruido – unos pocos cientos –, aplicaremos códigos especiales de corrección de errores para corregir o mitigar los problemas restantes y poder ejecutar circuitos cuánticos más complejos.
En este momento, cuando solo unas pocas docenas de qubits nos limitan a circuitos de tamaño moderado, aficionados a la computación cuántica de todo el mundo están ocupados creando código para ejecutar en nuestras computadoras cuánticas, utilizando IBM Quantum Experience. Para crear sus circuitos, codifican con Qiskit, un kit de desarrollo de software de código abierto que presentamos en 2017. Los Qiskitters ya han diseñado miles y miles de millones de circuitos cuánticos. A principios de mayo, durante la conferencia Digital Think de IBM, casi 2000 personas de 45 países participaron en nuestro Quantum Challenge, y utilizando 18 sistemas IBM Quantum a través de IBM Cloud, ejecutaron más de mil millones de circuitos por día en hardware cuántico real.
Hoy, estos entusiastas de la computación cuántica tienen que conocer la programación cuántica, sus gates y circuitos. Si no lo hacen, no pueden escribir código para una computadora cuántica y no pueden crear o usar un circuito cuántico. Pero eso es solo temporal, ya que todavía estamos en los albores de la era de las computadoras cuánticas. Es solo cuestión de tiempo antes de que los desarrolladores comiencen a diseñar cada vez más circuitos para sus propósitos específicos, desde machine learning hasta la optimización y los cálculos científicos. Eso conducirá a bibliotecas de circuitos cuánticos para beneficio de todos. Bastará con escribir una línea de código en cualquier lenguaje de programación con el que uno trabaje, y el sistema lo combinará con el circuito de la biblioteca y la computadora cuántica correcta, la que tenga la configuración más adecuada del chip, la forma en que los cables superconductores se unen para unir los qubits.
Computación cuántica sin fricciones. Solo una línea de código, eso es todo lo que se necesitará para obtener un resultado en su máquina clásica a través de la nube, mientras que detrás de escena, invisible para el usuario, se desarrollará el misterio cuántico, con superposición, entrelazamiento e interferencia.
Si me lo preguntan, el futuro ya casi está aquí.