La computación cuántica ya es una realidad, los avances científicos en esta área cada vez son más frecuentes y con un mayor grado de complejidad. Está claro que está tecnologia dentro de pocos años revolucionará el modo en el que actualmente nos comunicamos y utilizamos la información.
Hoy en día IBM está impulsando la investigación en computación cuántica con un Servicio en línea que permite a cualquier persona usar una computadora cuántica de cinco cúbits que sus investigadores han establecido en un laboratorio de investigación en Yorktown Heights, Nueva York.
Pueden acceder a la máquina por Internet a través de una interfaz de software simple o, al menos, es simple si entiendes los conceptos básicos de la informática cuántica. Existen procesadores cuánticos también que casi llegan a los 2 000 cúbits y que están en el mercado pero construir una computadora cuántica como para que la utilices en tu escritorio aún está muy lejos.
En este caso, sabemos que las computadoras cuánticas existen, y aunque no esten al alcance de todos, nos gustaría saber cómo funcionan, aunque la principal pregunta es ¿Que sistema operativo utiliza una computadora cuántica?
No vamos a ser tan quisquillosos al momento de definir y encontrar el concepto de sistema operativo, y más debido a que lo veremos en torno a las computadoras cuánticas, así que nos centraremos en aquellos sistemas que ofrezcan utilerías de software y comunicación para las computadoras cuánticas.
A lo largo de este artículo veremos aquellos sistemas operativos conocidos, diversos simuladores e incluso lenguajes de programación para la tecnología cuantica.
t|ket
t|ket⟩ ™ es una pila de software cuántico independiente de la arquitectura y el mejor compilador de su clase. t | ket⟩ ™ traduce algoritmos independientes de la máquina en circuitos ejecutables, optimizando el diseño físico de qubit mientras reduce la cantidad de operaciones requeridas.
t|ket⟩ ofrece un flujo de trabajo flexible para desarrollar aplicaciones de química cuántica y aprendizaje automático cuántico. t|ket⟩ es un optimizador de circuitos líder en su clase y sistema de asignación qubit que genera circuitos altamente eficientes ajustados para cualquiera de los principales procesadores y dispositivos de computación cuántica.
El motor de compilación proporciona pases de optimización orientados a aplicaciones de alto rendimiento, con una interfaz coherente en enrutamiento, optimizaciones y otras transformaciones de circuitos.
Los combinadores de transformación únicos permiten a los usuarios diseñar sus propias pasadas, para minimizar los requisitos de recursos cuánticos para su aplicación elegida, a la vez que garantizan siempre la corrección del circuito general, independientemente de la plataforma de destino.
¿Quien desarrollo t|ket⟩?
Cambridge Quantum Computing (CQC) es una empresa líder mundial en software de computación cuántica con más de 60 científicos, incluyendo 35 doctorados en oficinas en Cambridge (Reino Unido), San Francisco, Londres y Tokio. CQC construye herramientas para la comercialización de tecnologías cuánticas que tendrán un profundo impacto global.
LIQUi|>
El gigante Microsoft no podía quedarse atrás y nos presenta (se abre en una nueva pestaña)»>LIQUi|> . LIQUi|> es una arquitectura de software y un conjunto de herramientas para la computación cuántica. Incluye un lenguaje de programación, algoritmos de optimización y programación, y simuladores cuánticos.
LIQUi|> se puede utilizar para traducir un algoritmo cuántico escrito en forma de un programa de alto nivel en las instrucciones de máquina de bajo nivel para un dispositivo cuántico. LIQUi|> está siendo desarrollado por Quantum Architectures and Computation Group (QuArC) en Microsoft Research.
Para ayudar en el desarrollo y la comprensión de protocolos cuánticos, algoritmos cuánticos, corrección cuántica de errores y dispositivos cuánticos, QuArC ha desarrollado una extensa plataforma de software llamada LIQUi |>. LIQUi |> permite la simulación de hamiltonianos, circuitos cuánticos, circuitos estabilizadores cuánticos y modelos de ruido cuántico, y es compatible con el cliente, el servicio y la operación en la nube.
Permite al usuario expresar circuitos en un lenguaje funcional de alto nivel (F #), y admite la extracción de estructuras de datos de circuitos que pueden pasarse a otros componentes para la optimización de circuitos, corrección de errores cuánticos, reemplazo de puertas, exportación o renderizado. El sistema está diseñado para ser completamente modular para permitir una fácil extensión según se desee.
¿Qué puede hacer LIQUi|>?
lgunos de los algoritmos específicos que puede simular con LIQUi |> son:
- Teletransportación cuántica simple
- Algoritmo de factorización de Shor
- Química cuántica: calcular la energía del estado fundamental de una molécula
- Corrección de error cuántico
- Memoria asociativa cuántica (Ventura y Martínez)
- Álgebra lineal cuántica (Harrow, Hassidim y Lloyd)
En cierta manera LIQUi|> pareciera ser que se tratase de un lenguaje de comunicación o programación entre sentencias normales y los datos cuánticos, pero al permitir una comunicación en interacción entre el núcleo cuántico y las instrucciones que procesa, podría definirse que es como un sistema operativo.
Linux
Sabemos que Linux domina el área de las supercomputadoras, pero desgraciadamente no tenemos información que indique que alguna distro de Linux esté siendo desarrollada o usada para la comunicación con las computadoras cuanticas. Aún así, existen los kits de software que pueden instalarse en Linux.
Quantum Development Kit
Microsoft presenta el Quantum Development Kit, el cual, le brindan las herramientas que necesita para desarrollar programas de computación cuántica que resuelvan nuestros problemas más desafiantes en la computación.
El kit de desarrollo cuántico contiene las herramientas que necesitará para construir sus propios programas y experimentos de computación cuántica. Asumiendo cierta experiencia con Visual Studio, los principiantes pueden escribir su primer programa cuántico, y los investigadores experimentados pueden desarrollar nuevos algoritmos cuánticos de manera rápida y eficiente.
Simuladores
Los desarrolladores interesados en trabajar y visualizar la computación cuántica pueden usar herramientas de código abierto para ayudar a comenzar.
- jQuantum . jQuantum es un programa que simula una computadora cuántica. Los usuarios pueden diseñar circuitos cuánticos con jQuantum y dejarlos correr. Se puede visualizar el estado actual del registro cuántico. GPL
- Squankum . Squankum es un simulador informático cuántico que permite la visualización de un solo qubit. También puede observar la representación en una esfera Bloch [http://en.wikipedia.org/wiki/Bloch_Sphere], una herramienta útil para comprender situaciones de muchos estados. GPL
- Q ++ . Q ++ es una biblioteca de plantillas C ++ multiplataforma utilizada para simular el cálculo cuántico. Q ++ permite la prueba de algoritmos cuánticos al proporcionar una forma más rápida de crear programas compilados para la velocidad. LGPL.
- Kit de herramientas cuánticas . Un kit de herramientas de mecánica cuántica y un visor 3D para C ++, esta aplicación permite la visualización a través de imágenes, superficies y gráficos de volumen utilizando OpenGL. GPL
Lenguaje Q# (Q-sharp)
Q# (Q-sharp) es un lenguaje de programación específico de dominio utilizado para expresar algoritmos cuánticos. Se debe utilizar para escribir subrutinas que se ejecutan en un procesador cuántico adjunto, bajo el control de un programa host clásico y una computadora. Hasta que los procesadores cuánticos estén ampliamente disponibles, las subrutinas Q # se ejecutan en un simulador.
Q# proporciona un pequeño conjunto de tipos primitivos, junto con dos formas (matrices y tuplas) para crear nuevos tipos estructurados. Admite un modelo de procedimiento básico para escribir programas, con bucles y sentencias if / then. Las construcciones de nivel superior en Q # son tipos, operaciones y funciones definidas por el usuario.
Lenguaje QCL
Quantum Computing Language es un lenguaje de programación que se puede usar para escribir programas para computadoras cuánticas .
Dado que cada máquina cuántica debe ser controlada por un dispositivo clásico, los lenguajes de programación cuántica existentes incorporan estructuras de control clásicas, como bucles y ejecución condicional, y permiten operar con datos clásicos y cuánticos.
Lenguaje Quipper
Quipper es un lenguaje de programación funcional incrustado y escalable para la computación cuántica. Proporciona, entre otras cosas:
- Un lenguaje de descripción de circuito de alto nivel. Esto incluye descripciones puerta a puerta de fragmentos de circuitos, así como potentes operadores para ensamblar y manipular circuitos.
- Una sintaxis que permite una mezcla de estilos de programación procesal y declarativa.
- Instalaciones integradas para la síntesis automática de circuitos cuánticos reversibles, incluso a partir del código clásico.
- Soporte para circuitos jerárquicos.
- Tipos de datos cuánticos extensibles.
- Transformadores de circuito programables.
- Soporte para tres fases de ejecución: tiempo de compilación, tiempo de generación del circuito y tiempo de ejecución del circuito. Una operación de elevación dinámica para permitir que la generación de circuitos sea paramétrica en los valores generados en el tiempo de ejecución del circuito.
- Amplias bibliotecas de funciones cuánticas, que incluyen: bibliotecas para enteros cuánticos y aritmética de punto fijo; la transformada cuántica de Fourier; una implementación eficiente de Qram; bibliotecas para la simulación de circuitos pseudoclásicos, circuitos estabilizadores y circuitos arbitrarios; bibliotecas para la descomposición exacta y aproximada de circuitos en conjuntos de puertas específicos.
Finalizando…
Sabemos que la computación cuántica aún está en sus inicios, pero es de gran importancia empezar a conocer todas las áreas de desarrollo que esta nueva tecnología creará y modificará en el futuro.
Muy buen artículo. Un saludo.
Interesante, gracias por el artículo.