Nuestro mundo está impregnado de sistemas electrónicos: desde computadoras personales hasta teléfonos inteligentes, desde automóviles hasta máquinas industriales. Los ingenieros y científicos sentaron las bases para esto hace varias décadas y construyeron los primeros circuitos electrónicos. Con el tiempo, esos circuitos se volvieron más pequeños y más poderosos, lo que eventualmente llevó a su presencia omnipresente en todas las áreas de nuestras vidas.
Hoy en día, esos sistemas están hechos de millones (a menudo miles de millones) de componentes, por lo que necesitamos informáticos y herramientas eficientes para diseñarlos adecuadamente. Sin lenguajes de programación dedicados, compiladores, herramientas de síntesis, métodos de verificación y prueba, así como depuradores, el desarrollo de su próximo teléfono inteligente o la próxima solución de IA no sería posible.
La computación cuántica es un área emergente con un potencial significativo, especialmente en el área de problemas de optimización. Dado que la computación cuántica funciona con un mecanismo diferente al de la computación clásica, el enfoque del software para la computación cuántica también es diferente.
Aquí incluimos una lista de las principales herramientas de computación cuántica que se usarán en 2022.
Indice
Tipos de software cuántico
Los 2 tipos de software cuántico son:
- Software que ejecuta algoritmos cuánticos: los kits de desarrollo de software cuántico y las plataformas computacionales brindan soluciones para los usuarios finales. Estos ayudan a los usuarios finales a desarrollar y probar sus algoritmos cuánticos.
- Software que permite que las computadoras cuánticas funcionen: las computadoras cuánticas tienen problemas de rendimiento debido a errores aleatorios y el software de corrección de errores está diseñado para corregir dichos errores. Un software o firmware de corrección de errores es un programa de bajo nivel que aumenta la estabilidad de las computadoras cuánticas.
Las plataformas computacionales brindan a los usuarios acceso a computadoras cuánticas para realizar cálculos cuánticos a través de la nube. Construir una nueva computadora cuántica es una inversión muy costosa para muchas empresas, por eso las plataformas computacionales tienen sentido para que las empresas experimenten con la computación cuántica. Las compañías de computadoras cuánticas proporcionan la solución para que los desarrolladores prueben su código en computadoras cuánticas reales.
Al igual que con la computación clásica, la computación cuántica requiere programación de bajo nivel y algoritmos de corrección de errores. Q-CTRL es una de las empresas que trabaja en el firmware de Quantum.
¿Cómo funciona el software cuántico?
Al igual que en la computación clásica, un problema debe formularse y traducirse mediante el uso de software cuántico para que las computadoras cuánticas o los simuladores puedan resolverlo. Diferentes sistemas de software pueden tener diferentes métodos para hacerlos funcionar.
Hay diferentes capas para realizar un software cuántico:
- Aplicación: en este proceso, se define un problema y se transforma a un estado que los algoritmos cuánticos pueden resolver. Diferentes aplicaciones y tipos de problemas pueden tener diferentes enfoques para modelar el problema.
- Mapeo: se toman datos y muestras para que las computadoras cuánticas puedan resolver el problema.
- Uniform Sampler API: una capa que puede acceder a la muestra seleccionada.
- Muestreadores: se pueden utilizar diferentes muestreadores para obtener una muestra de la solución del problema. Por ejemplo, se puede usar un recocido simulado o un muestreador híbrido.
- Recursos informáticos: hardware informático que calcula la solución
Herramientas de computación cuántica
Esta es nuestra selección de las principales herramientas de computación cuántica del mercado.
Microsoft Quantum Development Kit
Microsoft ha lanzado una versión preliminar de su Quantum Development Kit que parece reemplazar a su anterior software LIQUi|>. Este kit presenta un lenguaje de programación cuántico con nombre nuevo llamado Q#, integración con su entorno de desarrollo Visual Studio, simuladores que se ejecutan en un sistema local o en su poderosa plataforma en la nube Azure, y bibliotecas ricas y muestras de código que se pueden usar como bloques de construcción.
IBM Quantum Experience
IBM ha puesto en la web un procesador cuántico experimental de nivel de puerta de 5 qubits y está permitiendo que los miembros del público soliciten acceso a él. En el sitio web de IBM Quantum Experience hay cuatro módulos;
- un breve tutorial que explica los conceptos básicos de la computación cuántica e instrucciones sobre cómo usarlo,
- un compositor cuántico que permite configurar puertas cuánticas para los qubits,
- un simulador que permite simular su configuración antes de ejecutarlo en la máquina real, y finalmente
- acceso a la propia máquina que permite ejecutar su configuración y ver los resultados.
IBM también ha lanzado una API de software asociada llamada QISKIT que se puede utilizar con IBM Quantum Experience.
Rigetti Forest y Cloud Computing Services (QCS)
La suite Rigetti Forest consta de un lenguaje de instrucción cuántica llamado Quil, una biblioteca Python de código abierto para la construcción de programas Quil llamada pyQuil, una biblioteca de programas cuánticos llamada Grove y un entorno de simulación llamado QVM que significa Máquina Virtual Cuántica. pyQuil y Grove son programas de código abierto disponibles en GitHub.
Puedes acceder a la página de inicio de Forest que contiene documentación, enlaces de GitHub y otra información. QCS proporciona un entorno informático clásico virtual que se ubica junto con el hardware cuántico Rigetti. Viene preconfigurado con Forest SDK de Rigetti y proporciona un único punto de acceso a sus backends QVM y QPU.
Laboratorio de Computación Cuántica CAS-Alibaba
CAS-Alibaba brinda acceso a una computadora cuántica superconductora de 12 qubits, el prototipo de computadora cuántica óptica «Jiuzhang» y próximamente una computadora cuántica superconductora más grande. Los sistemas de hardware están disponibles a través de una interfaz en línea donde los usuarios pueden escribir circuitos cuánticos, ejecutarlos de forma remota y descargar los resultados en la nube mediante una interfaz gráfica de usuario.
El sitio web admite la ejecución de un circuito tanto en la computadora cuántica como en un simulador. Actualmente, la plataforma tiene más de 5000 usuarios registrados que incluyen tanto a investigadores científicos como a otras personas interesadas en la tecnología cuántica.
ProjectQ
ProjectQ es un marco de software de código abierto para computación cuántica implementado en Python. Permite a los usuarios implementar sus programas cuánticos en Python usando una sintaxis poderosa e intuitiva. Luego, ProjectQ puede traducir estos programas a cualquier tipo de back-end, ya sea un simulador que se ejecuta en una computadora clásica o un chip cuántico real que incluye la plataforma IBM Quantum Experience.
Otras plataformas de hardware serán compatibles en el futuro. Los enlaces a todo el código y la documentación, así como una biblioteca llamada FermiLib para analizar problemas de simulación cuántica fermiónica, se pueden encontrar en el sitio web de ProjectQ.
Cirq
Cirq es una biblioteca Python de código abierto para escribir, manipular y optimizar circuitos ruidosos de escala intermedia cuántica (NISQ) y ejecutarlos en simuladores y computadoras cuánticas. Actualmente se encuentra en estado de versión alfa y también se puede utilizar con OpenFermion-Cirq, una plataforma para desarrollar algoritmos cuánticos para problemas de química.
Varias otras compañías de software también están trabajando con Cirq como primeros usuarios. Cirq está siendo promocionado por miembros del Google AI Quantum Team, pero no es un producto oficial de Google.
CirqProjectQ
CirqProject Q es un puerto entre ProjectQ y Cirq que proporciona dos funciones principales. Primero, es un backend de ProjectQ que convierte un algoritmo de ProjectQ en un cirq.Circuit. Y segundo, puede descomponer las puertas comunes de ProjectQ en puertas Xmon nativas que se pueden usar para simular una computadora cuántica de Google con ProjectQ.
PennyLane y Strawberry Fields de Xanadu
Xanadu ofrece dos productos de software diferentes para programar computadoras cuánticas. El primero se llama PennyLane y es una biblioteca de Python multiplataforma para el aprendizaje automático cuántico, la diferenciación automática y la optimización de cálculos híbridos cuánticos-clásicos. PennyLane es interesante porque no solo es compatible con la tecnología fotónica variada continua de Xanadu, sino que también tiene complementos para admitir plataformas basadas en puertas, como ProjectQ y Qiskit de IBM.
El segundo producto se llama Strawberry Fields y es una biblioteca completa de Python para diseñar, simular y optimizar circuitos ópticos cuánticos de variable continua (CV), como el hardware cuántico que está desarrollando Xanadu.
Open Controls de Q-CTRL
Q-CTRL Open Controls es un paquete de Python de código abierto que facilita la creación y el despliegue de protocolos de control cuántico resistentes a errores establecidos de la literatura abierta. El objetivo del paquete es ser la biblioteca más completa de técnicas de control cuántico publicadas y probadas desarrolladas por la comunidad, con funciones de exportación fáciles de usar que permiten a los usuarios implementar estos controles en hardware cuántico personalizado, computadoras cuánticas en la nube disponibles públicamente o Q- Paquete de productos CTRL.
Intel Quantum Simulator
El Intel Quantum Simulator, anteriormente conocido como qHiPSTER, es una implementación de código abierto de un solo nodo o distribuida de alto rendimiento de un simulador cuántico que puede simular puertas generales de un solo qubit y puertas controladas de dos qubit. El Intel Quantum Simulator, que se ha utilizado para simular algoritmos de más de 40 qubits, está dirigido a desarrolladores de algoritmos que deseen probar su software en simulación.
Mitiq
Mitiq es un conjunto de herramientas de código abierto para implementar técnicas de mitigación de errores en la mayoría de las computadoras cuánticas de escala intermedia actuales. Está desarrollado por Unity Fund con la ayuda de la amplia comunidad de software cuántico. Mitiq es compatible con programas cuánticos escritos para Qiskit de IBM Q, Cirq de Google, PyQuil de Rigetti y básicamente cualquier otro formalismo de circuito cuántico gracias a las conversiones a OpenQASM.
Los investigadores pueden mitigar su circuito ejecutándolo en simuladores ruidosos o en cualquier dispositivo real. Con Mitiq, es posible implementar técnicas de extrapolación sin ruido, que pueden reducir los errores al integrar el muestreo de circuitos cuánticos con la inferencia clásica.
Berkeley Quantum Synthesis Toolkit (BQSKit)
Es un compilador cuántico optimizador y un vehículo de investigación que combina ideas de varios proyectos en el Laboratorio Nacional Lawrence Berkeley en un paquete de software fácilmente accesible y rápidamente extensible. Un objetivo clave de este software es proporcionar compilaciones altamente optimizadas que minimicen la profundidad del circuito en comparación con otros compiladores como los incluidos en Qiskit de IBM.
QCircuits
QCircuits es una biblioteca Python de simulación de circuitos cuánticos diseñada para que los estudiantes aprendan a usarla fácilmente. Simula el funcionamiento de computadoras cuánticas a pequeña escala, basado en el modelo de circuito cuántico. Utiliza tensores de tipo (d, 0) y tipo (d, d) para representar vectores de estado y operadores en sistemas d-qubit, en lugar de utilizar vectores directos y matrices producidos por productos de Kronecker, como es más habitual.
Yao
Es un marco extensible y eficiente de código abierto para el diseño de algoritmos cuánticos. Yao presenta programación genérica y diferenciable de circuitos cuánticos. Logra un rendimiento de vanguardia en la simulación de circuitos cuánticos de tamaño pequeño a intermedio que son relevantes para aplicaciones a corto plazo. Está escrito en lenguaje Julia y ofrece un rendimiento muy competitivo en comparación con otras plataformas de software, al menos para simulaciones en el rango de 5 a 25 qubits.
Silq
Es un nuevo lenguaje de programación cuántica de alto nivel desarrollado por ETH Zurich. La intención es proporcionar un lenguaje que permita un código más corto y simple, menos propenso a errores y más intuitivo que los lenguajes de programación de nivel inferior existentes.
Los desarrolladores indican que esto proporcionará programas con muchas menos líneas de código que otros lenguajes de programación. Una característica clave es que permite el descálculo automático de valores temporales. Esto es más complicado que restablecer un valor clásico temporal porque los qubits temporales están enredados con otros qubits y restablecerlos al medirlos puede tener algunas consecuencias no deseadas.
Por ahora, Silq no genera código para ningún backend de hardware existente y solo admite su propio simulador. Pero esperamos que esto cambie a medida que se desarrolle más el software.
Paddle Quantum
Paddle Quantum es un conjunto de herramientas de aprendizaje automático cuántico desarrollado en base a la paleta voladora de Baidu. Admite la construcción y el entrenamiento de redes neuronales cuánticas y proporciona kits de desarrollo de aprendizaje cuántico automático fáciles de usar para la optimización cuántica, la química cuántica y otros conjuntos de herramientas de aplicaciones cuánticas de vanguardia. Esto convierte a Baidu Flying Paddle en el primer y único marco de aprendizaje profundo en China que admite el aprendizaje automático cuántico.
Tequila
Tequila es una Arquitectura de Información y Aprendizaje Cuántico Extensible donde el objetivo principal es simplificar y acelerar la implementación de nuevas ideas para algoritmos cuánticos. Opera sobre estructuras de datos abstractas que permiten la formulación, combinación, diferenciación automática y optimización de objetivos generalizados. Puede ejecutar los valores de expectativa cuántica subyacentes en simuladores de última generación, así como en dispositivos cuánticos reales. Actualmente es compatible con los siguientes backends: Qulacs, Qiskit, Cirq y PyQuil.
Qulacs
Qulacs es una biblioteca de python/C++ desarrollada en la Universidad de Kyoto y mantenida por QunaSys para la simulación rápida de circuitos cuánticos grandes, ruidosos o paramétricos. Proporcionan un gráfico en el sitio de GitHub que muestra que Qulacs tiene un mejor rendimiento que Cirq, ProjectQ, pyQuil, Q#, Qiskit Terra y QuPy debido al backend C/C++.
staq
staq es una biblioteca C++17 moderna para la síntesis, transformación, optimización y compilación de circuitos cuánticos. Se puede usar a través de las herramientas binarias provistas o como una biblioteca de solo encabezado que se puede incluir para proporcionar soporte directo para analizar y manipular circuitos escritos en el lenguaje de descripción de circuitos openQASM. Después del procesamiento, staq puede generar sus resultados en los formatos openQASM, Quil, ProjectQ, Q# o Cirq.
Bayesforge
Bayesforge es una imagen de máquina Linux que selecciona el mejor software de código abierto para el científico de datos que necesita herramientas analíticas avanzadas, así como para los profesionales de la computación cuántica y las matemáticas computacionales que buscan trabajar con uno de los principales marcos de control de calidad.
La imagen combina marcos comunes de aprendizaje automático, como TensorFlow, PyTorch y PyMC, con software de control de calidad de código abierto de D-Wave, Rigetti, IBM Quantum Experience, el lenguaje de computación cuántica de Google Cirq, así como otros marcos de control de calidad avanzados. Bayesforge también permite crear Jupyter Notebooks en Python, R y Octave y está disponible como una imagen acoplable en la nube de Amazon y también disponible en la nube de Tencent.
Blueqat
Blueqat es un marco de software basado en Python para computación cuántica universal diseñado tanto para profesionales como para principiantes. También está diseñado para conectar el backend de Blueqat al simulador de modelo universal basado en Nvidia CUDA. Blueqat incluye algoritmos de simulación populares como VQE y QAOE que son fáciles de usar con solo un comando simple. También contiene una función para convertir los problemas del modelo QUBO/Ising de recocido cuántico en simulaciones de operador Pauli que se pueden ejecutar en plataformas de modelo de puerta universal.
Estudio de programación cuántica
El Estudio de programación cuántica es una interfaz gráfica de usuario basada en la web diseñada para permitir a los usuarios construir algoritmos cuánticos y obtener resultados simulando directamente en el navegador o ejecutándolos en computadoras cuánticas reales. El circuito se puede exportar a múltiples lenguajes de programación cuántica y se puede ejecutar en varios simuladores y computadoras cuánticas, incluidas las plataformas Rigetti QCS e IBM Qiskit.
Atos/SFTC Hartree Center – Quantum Learning as a Service (QLaaS)
Atos se está asociando con el Centro Hartree del Consejo de Instalaciones Científicas y Tecnológicas (SFTC) del Reino Unido para ofrecer acceso en la nube a Atos Quantum Learning Machine. Este es un simulador clásico de alto rendimiento que puede simular hasta 38 qubits y puede incluir modelos de ruido cuántico para comprender cómo se ejecutaría un programa en una máquina cuántica real.
Sus herramientas proporcionan una programación cuántica fácil a través de python HL Atos Quantum Assembler (AQASM) y bibliotecas cuánticas como los cuadernos Jupyter.
Interfaz de usuario cuántica (QUI)
La Universidad de Melbourne ha desarrollado un entorno intuitivo de programación y simulación llamado QUI que está diseñado para permitir a los usuarios visualizar y comprender el funcionamiento interno de una computadora cuántica. Tiene una interfaz muy fácil de usar que permite al usuario arrastrar y soltar puertas cuánticas para crear un circuito.
Una de las características clave del programa es su capacidad para mostrar visualizaciones del estado de la computadora cuántica en cada etapa del programa. El programa parece admitir hasta cinco qubits, tiene muy buenos gráficos y permite al usuario ver los resultados utilizando esferas, tablas y gráficos de probabilidad de Bloch. QUI está alojado en un grupo remoto de servidores en la universidad y está abiertamente disponible para cualquiera que se registre como usuario.
Quirk
Quirk es un simulador de arrastrar y soltar que se ejecuta en su navegador web. Vuelve a simular continuamente a medida que edita el circuito, proporcionando retroalimentación inmediata. Es muy bueno en la experimentación iterativa a pequeña escala y proporciona gráficos excelentes e intuitivos para un máximo de 16 qubits.
Qibo
Qibo es una API de alto nivel de código abierto proporcionada por Qilimanjaro, escrita en Python y capaz de ejecutar algoritmos cuánticos sobre diferentes computadoras y simuladores cuánticos. Actualmente es compatible con las máquinas reales y virtuales de IBM, la máquina virtual Rigetti y la máquina virtual de Qilimanjaro llamada VQMlite. Un objetivo clave es proporcionar una interfaz estándar que se pueda aplicar a muchos backends diferentes y esperamos que otros backends sean compatibles en el futuro. Qibo se encuentra actualmente en una versión Alpha.
QuEST
QuEST (Quantum Exact Simulation Toolkit) es un simulador acelerado por GPU de código abierto, híbrido, multiproceso y distribuido, de circuitos cuánticos universales. Incorporado como una biblioteca C, está diseñado para que el código de un usuario pueda implementarse sin problemas en cualquier plataforma, desde una computadora portátil hasta una supercomputadora.
Es capaz de simular circuitos cuánticos genéricos de puertas generales de uno y dos qubits y puertas controladas de múltiples qubits, en estados puros y mixtos, representados como vectores de estado y matrices de densidad, y en presencia de decoherencia.
XACC
XACC (ACCelerator de escala extrema) es un modelo de programación y un marco de software que permite la aceleración cuántica dentro de los flujos de trabajo de software HPC o estándar. Sigue un modelo de máquina de coprocesador que es independiente del hardware de computación cuántica subyacente, lo que permite definir y ejecutar programas cuánticos en una variedad de tipos de QPU a través de una interfaz de programación de aplicaciones unificada.
Actualmente, XACC es compatible con los procesadores cuánticos de IBM, Rigetti y D-Wave, así como con varios simuladores de computadoras cuánticas.
Quantum++
Quantum++ es una moderna biblioteca de computación cuántica de subprocesos múltiples de uso general escrita en C++ 11 y compuesta únicamente por archivos de encabezado. La biblioteca no está restringida a sistemas qubit o tareas específicas de procesamiento de información cuántica, siendo capaz de simular procesos cuánticos arbitrarios.
Los principales factores de diseño que se tuvieron en cuenta fueron la facilidad de uso, la portabilidad y el rendimiento. Las capacidades de simulación de la biblioteca solo están restringidas por la cantidad de memoria física disponible. En una máquina típica (Intel i5 8Gb RAM) Quantum++ puede simular con éxito la evolución de 25 qubits en estado puro o de 12 qubits en estado mixto razonablemente rápido.
Quantum Inspire
Quantum Inspire (QI) es una plataforma de computación cuántica diseñada y construida por QuTech. El objetivo de Quantum Inspire es proporcionar a los usuarios acceso a varias tecnologías para realizar cálculos cuánticos y aprender información sobre los principios de la computación cuántica.
Tiene una variedad de formas para que los usuarios programen algoritmos cuánticos, ejecuten estos algoritmos y examinen los resultados, incluida una interfaz gráfica para programar en QASM (Lenguaje ensamblador cuántico) y visualizar operaciones en diagramas de circuitos. Con QI Editor, los expertos no cuánticos pueden aprender a escribir algoritmos cuánticos con soporte de identificación automática de errores y autocompletado.
Quantum Inspire admite simulaciones de hasta 37 qubits en Cartesius, la supercomputadora nacional holandesa, y recientemente implementó una integración con Qiskit de IBM que permite ejecutar programas desarrollados por QI en simuladores Qiskit de IBM, así como en hardware cuántico de IBM.
QUCAT
QUCAT son las siglas de Quantum Circuit Analyzer Tool. Esta biblioteca Python de código abierto proporciona herramientas de análisis estándar para circuitos electrónicos superconductores, construidos alrededor de al menos un cruce Josephson. Un usuario primero construirá un circuito mediante programación o utilizando la interfaz gráfica de usuario. Trabajando sobre la base de los modos normales, se pueden calcular frecuencias de modo normal, tasas de disipación, anarmonicidades y acoplamientos cruzados de Kerr. Estos modos normales también se pueden visualizar gráficamente. Finalmente, se puede calcular el hamiltoniano del circuito, para su posterior procesamiento en QuTiP.
QuTiP: Quantum Toolbox en Python
QuTiP es un software de código abierto para simular la dinámica de sistemas cuánticos abiertos. La biblioteca QuTiP depende de los excelentes paquetes numéricos Numpy , Scipy y Cython. Además, la salida gráfica es proporcionada por Matplotlib
Tiene como objetivo proporcionar simulaciones numéricas fáciles de usar y eficientes de una amplia variedad de hamiltonianos, incluidos aquellos con dependencia temporal arbitraria, que se encuentran comúnmente en una amplia gama de aplicaciones físicas como la óptica cuántica, iones atrapados, circuitos superconductores y resonadores nanomecánicos cuánticos. QuTiP está disponible gratuitamente para su uso y/o modificación en todas las plataformas principales, como Linux, Mac OSX y Windows. Al estar libre de cualquier tarifa de licencia, QuTiP es ideal para explorar la mecánica cuántica y la dinámica en el aula.
OpenFermion
OpenFermion es un paquete de química de código abierto para computadoras cuánticas. Se puede utilizar como una herramienta para generar y compilar ecuaciones físicas que describen sistemas químicos y materiales en representaciones que pueden ser interpretadas por una computadora cuántica. Los algoritmos cuánticos más efectivos para estos problemas se basan y amplían el poder de los paquetes de química clásica como Psi4 y PySCF utilizados y desarrollados por químicos de investigación en el gobierno, la industria y la academia.
El software incluye varios complementos para ejecutar en estos paquetes y también puede ejecutarse en los marcos Rigetti Forest y ProjectQ para ejecutarse en una variedad de computadoras cuánticas diferentes.
TensorFlow Quantum
TensorFlow Quantum (TFQ) es una biblioteca de aprendizaje automático cuántico para la creación rápida de prototipos de modelos híbridos de aprendizaje automático cuántico-clásico proporcionado por Google.
Se centra en los datos cuánticos y en la creación de modelos híbridos cuánticos-clásicos. Integra lógica y algoritmos de computación cuántica diseñados en Cirq, y proporciona primitivas de computación cuántica compatibles con las API de TensorFlow existentes, junto con simuladores de circuitos cuánticos de alto rendimiento.
Quipper
Quipper es un lenguaje de programación funcional escalable para computación cuántica basado en Quantum Lambda Calculus. Se basa en un lenguaje de programación clásico llamado Haskell, que es especialmente adecuado para la programación de aplicaciones físicas. Proporciona un lenguaje de descripción de circuitos de alto nivel que incluye descripciones puerta por puerta de fragmentos de circuitos, así como poderosos operadores para ensamblar y manipular circuitos.
Las bibliotecas de distribución de Quipper para enteros cuánticos y aritmética de punto fijo, transformada cuántica de Fourier, una implementación eficiente de Qram, simulación de circuitos pseudoclásicos, circuitos estabilizadores y circuitos arbitrarios, descomposición exacta y aproximada de circuitos en conjuntos de puertas específicos y otros algoritmos cuánticos.
Simulador de computación cuántica QX
QX es un simulador de computadora cuántica universal desarrollado en QuTech. El QX permite a los diseñadores de algoritmos cuánticos simular la ejecución de sus circuitos cuánticos en una computadora cuántica. El simulador define un lenguaje ensamblador cuántico de bajo nivel, llamado Quantum Code, que permite a los usuarios describir sus circuitos en un archivo de código fuente de texto simple. El archivo de código fuente se usa luego como entrada del simulador que ejecuta su contenido.
Zoológico de algoritmos cuánticos
Stephen Jordan del NIST ha catalogado docenas de algoritmos diferentes que teóricamente podrían ofrecer una aceleración sustancial cuando se ejecutan en una computadora cuántica. Cada algoritmo se describe en un solo párrafo que también incluye una estimación de la aceleración y enlaces a referencias y documentos técnicos que describen el algoritmo con más detalle.
ScaffCC
Es un compilador y programador para el lenguaje de programación Scaffold. Está escrito utilizando la infraestructura de código abierto LLVM con el fin de escribir y analizar código para aplicaciones de computación cuántica. Permite a los usuarios compilar aplicaciones cuánticas escritas en Scaffold en un formato de ensamblaje cuántico de bajo nivel (QASM), aplicar corrección de errores y generar métricas de tiempo y área.
ScaffCC está escrito para ser escalable a tamaños de problemas en los que los algoritmos cuánticos superan a los clásicos y proporciona información valiosa sobre los gastos generales involucrados y las posibles optimizaciones para una implementación realista en un dispositivo cuántico futuro. ScaffCC incluye uno de los conjuntos de pruebas comparativas de aplicaciones cuánticas más extensos.
TriQ
Es el compilador de back-end para el lenguaje de programación cuántica Scaffold. TriQ toma dos entradas:
- una secuencia de puerta producida por ScaffCC y
- conectividad qubit y datos de calibración para la máquina de destino.
Compila la secuencia de puertas del programa eligiendo una buena ubicación inicial de los qubits del programa en los qubits del hardware, reduciendo la comunicación y aplicando técnicas de optimización de puertas. Tiene una arquitectura flexible que puede admitir múltiples plataformas y genera un código de ensamblaje cuántico optimizado para computadoras cuánticas superconductoras y de trampa de iones.
Qbsolv de D-Wave
D-Wave ha lanzado una herramienta que toma grandes problemas de optimización binaria cuadrática sin restricciones (QUBO) y los divide en sub-QUBO más pequeños. Los sub-QUBO están dimensionados para adaptarse a la capacidad y las limitaciones topológicas del procesador cuántico D-Wave. Los sub-QUBO también se pueden resolver de forma clásica utilizando un algoritmo de búsqueda tabú integrado en Qbsolv.
Dado que el procesador D-Wave actualmente está limitado a 1000 qubits y pasará a 2000 qubits más adelante, este programa ayuda a los usuarios a abordar problemas que son mucho más grandes de lo que cabría en un solo procesador cuántico D-Wave. D-Wave ha hecho que este software sea de código abierto para que los usuarios puedan modificarlo según sus propias necesidades.
Quantum Computing Playground
Quantum Computing Playground fue desarrollado en 2014 por un grupo de ingenieros de Google como un experimento WebGL Chrome basado en navegador. Cuenta con una computadora cuántica de nivel de puerta acelerada por GPU con una interfaz IDE simple y su propio lenguaje de secuencias de comandos con funciones de depuración y visualización de estado cuántico en 3D.
Puede simular eficientemente registros cuánticos de hasta 22 qubits, ejecutar algoritmos de Grover y Shor, y tiene una variedad de puertas cuánticas integradas en el propio lenguaje de secuencias de comandos. Hay una página de ayuda que proporciona documentación y un botón Demostración paso a paso que brinda una demostración rápida en video de cómo usarlo. La página web recomienda encarecidamente que ejecute Quantum Playground con el navegador Google Chrome.
Microsoft LIQUi|>
Microsoft ha lanzado una arquitectura de software y un conjunto de herramientas para computación cuántica. Este conjunto de herramientas está disponible sin cargo e incluye un lenguaje de programación, algoritmos de optimización y programación, y simuladores cuánticos. La herramienta se llama LIQUi|>, que significa Operaciones cuánticas integradas en el lenguaje (y sí, los dos últimos caracteres son el símbolo ket). LIQUi|> se puede utilizar para traducir un algoritmo cuántico escrito en forma de programa de alto nivel en instrucciones de máquina de bajo nivel para un dispositivo cuántico.
Microsoft tiene una página de ayuda que describe la funcionalidad básica de LIQUi|>. La página web de descripción general también contiene un excelente tutorial en video que muestra cómo instalar y operar LIQUi|>.
Cuántica en la nube
La Universidad de Bristol pondrá a disposición una computadora cuántica fotónica de cuatro qubits. Puedes comenzar usando su interfaz web para crear una configuración, simular su configuración y luego ejecutar la configuración en su chip fotónico de cuatro qubits. El simulador está disponible para todos, pero para obtener acceso al hardware real, deberás solicitar un token de acceso. Una vez que se otorga, puedes ejecutar su configuración en su hardware.
Raytheon BBN
Raytheon BBN pone a disposición tres programas de software de código abierto relacionados con la computación cuántica.
- Qlab: un marco de control de MATLAB para sistemas qubit superconductores.
- PySimulator: un marco de python/C++ para la simulación de ecuaciones maestras de sistemas qubit.
- PyQLab: un marco de Python para sistemas qubit superconductores. Incluye Quantum Gate Language (QGL) para escribir programas de pulso QIP de forma compacta.