¿Hay emuladores para computadoras cuánticas?

64

¿Hay alguna forma de emular una computadora cuántica en mi computadora normal, de modo que pueda probar y probar lenguajes de programación cuántica (como Q # )? Me refiero a algo en lo que realmente puedo probar mi hipótesis y obtener los resultados más precisos.

Actualización: Realmente no estoy buscando simular una computadora cuántica, pero no estoy seguro de si es posible emular eficientemente una en una PC normal no cuántica.

Michel Gokan
fuente
44
Publicación de

Respuestas:

39

Sí, es posible (pero lento). Hay un par de emuladores existentes (esto es solo una lista parcial):

  • QDD: una biblioteca de emulación de computadora cuántica

    QDD es una biblioteca C ++ que proporciona un conjunto relativamente intuitivo de construcciones de computación cuántica dentro del contexto del entorno de programación C ++. QDD es único porque su emulación de la computación cuántica se basa en una representación del Diagrama de Decisión Binaria (BDD) del estado cuántico.

  • jQuantum

    jQuantum es un programa que simula una computadora cuántica. Puedes diseñar circuitos cuánticos con él y dejarlos correr. Se ilustra el estado actual del registro cuántico.

  • QCE

    QCE es una herramienta de software que emula varios diseños de hardware de computadoras Quantum. QCE simula los procesos físicos que rigen el funcionamiento de un procesador cuántico de hardware, estrictamente de acuerdo con las leyes de la mecánica cuántica. QCE también proporciona un entorno para depurar y ejecutar algoritmos cuánticos en condiciones experimentales realistas.

(Además, Q # solo funciona con QDK de MS , gracias @Pavel)

La desventaja de todo esto es simple: todavía se ejecutan en circuitos binarios (no cuánticos). Que yo sepa, no hay una computadora cuántica fácilmente accesible para usar para ejecutar estas cosas. Y dado que se requieren múltiples bits binarios para expresar un solo qubit, la cantidad de potencia computacional necesaria para simular un programa cuántico aumenta rápidamente.

Citaré un artículo sobre el tema ( J. Allcock, 2010 ):

Nuestra evaluación muestra que nuestras implementaciones son muy precisas, pero al mismo tiempo utilizamos una cantidad significativa de memoria adicional para lograr esto. Reducir nuestros objetivos de precisión nos permitiría disminuir el tamaño de la representación y, por lo tanto, emular más qubits con la misma cantidad de memoria.

p 89, sección 5.1

A medida que nuestras implementaciones se vuelven más precisas, también se vuelven más lentas.

TL; DR: es posible, y existen algunos emuladores, pero ninguno es muy eficiente para grandes cantidades de qubits.

Riker
fuente
Tenga en cuenta que ninguno de estos emuladores puede (actualmente) ser utilizado por Q #, que solo funciona con QDK de Microsoft.
Pavel
3
Además de lo que dijo: Existen formas programáticas para ejecutar código en IBM Quantum Experience que proporciona computadoras cuánticas reales, no un código Q #, sino QASM. QISKit es el camino a seguir aquí. github.com/QISKit
blalasaadri
Lo que dijo tiene sentido porque la simulación se ejecuta en una computadora. ¿Pero es posible alcanzar la misma velocidad si se usaran varias computadoras?
Calendario de iOS patchthecode.com
26

Sí, es posible simular una computadora cuántica en una normal, pero lo más probable es que tenga que sacrificar la eficiencia.

2nortenorte


Recursos

Puede que le interese Q # como se observan otras respuestas. Algunos emuladores más:

  • Zona de juegos de computación cuántica

    Quantum Computing Playground es un experimento WebGL Chrome basado en navegador. Cuenta con una computadora cuántica acelerada por GPU con una interfaz IDE simple y su propio lenguaje de scripting con depuración y funciones de visualización de estado cuántico en 3D. Quantum Computing Playground puede simular eficientemente registros cuánticos de hasta 22 qubits, ejecutar los algoritmos de Grover y Shor, y tiene una variedad de puertas cuánticas integradas en el lenguaje de script.

  • QX Simulator

    El QX Simulator es un simulador de computadora cuántico universal desarrollado en QuTech por Nader Khammassi. 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 de ensamblaje cuántico de bajo nivel, a saber, el Código Cuántico que permite a los usuarios describir sus circuitos en un simple archivo de código fuente textual. El archivo de código fuente se utiliza como entrada del simulador que ejecuta su contenido.

  • Quantum ++

    Quantum ++ es una biblioteca moderna de computación cuántica de propósito general C ++ 11, compuesta únicamente por archivos de encabezado de plantilla. Quantum ++ está escrito en C ++ 11 estándar y tiene dependencias externas muy bajas, utilizando solo la biblioteca de plantillas de encabezado de álgebra lineal Eigen 3 y, si está disponible, la biblioteca de multiprocesamiento OpenMP.

  • Lenguaje informático cuántico

    A pesar de muchos conceptos comunes con la informática clásica, la computación cuántica todavía se considera ampliamente como una disciplina especial dentro del amplio campo de la física teórica. [...] QCL (lenguaje de computación cuántica) intenta llenar este vacío: QCL es un lenguaje de programación independiente de arquitectura de alto nivel para computadoras cuánticas, con una sintaxis derivada de lenguajes de procedimiento clásicos como C o Pascal. Esto permite la implementación completa y la simulación de algoritmos cuánticos (incluidos los componentes clásicos) en un formalismo consistente.

  • Se pueden encontrar emuladores más relevantes en Quantiki

Sr. Xcoder
fuente
21

Sí, es posible simular cálculos cuánticos en una computadora clásica. Pero el costo de las simulaciones crece exponencialmente con el recuento de qubits y / o la profundidad del circuito y / o los recuentos de operaciones particulares.

Para probar ideas rápidamente, mi simulador Quirk es genial. Es un simulador de circuito cuántico de código abierto de arrastrar y soltar que se ejecuta en su navegador web. Puede acceder a una versión en vivo en algassert.com/quirk .

Aquí hay una captura de pantalla del ejemplo del circuito Grover de Quirk, que está equipado con pantallas de estado intermedio para rastrear el estado "oculto" cada vez más probable:

Captura de pantalla de Quirk

Craig Gidney
fuente
16

Si está buscando específicamente Q #, entonces es muy fácil de usar con un emulador; de hecho, no es posible tener Q # pero no tener el emulador, están agrupados.

Para comenzar, primero debe descargar .NET Core del sitio web de Microsoft .

Cuando descarga el Kit de desarrollo cuántico de Microsoft a través dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"del sitio web de Microsoft, descarga el lenguaje y el emulador propio de Microsoft juntos.

La creación de un nuevo proyecto Q # ( dotnet new console -lang Q#) lo configurará automáticamente para usar el emulador, por lo que cuando escriba algún Q # y ejecute el proyecto, "simplemente funciona".

Pavel
fuente
3

Si. Si lo construye usted mismo, busque una computadora de terceros con las mismas especificaciones que la serie BullSequana M9600, o obtenga € 100K + y compre un sistema de Atos.

Observe la similitud entre la serie BullSequana M9600 y el Atos QLM . Atis QLM vs. M9600

La misma caja (y probablemente componentes internos) con un software diferente (pero quería usar el suyo, Q #). Atos afirma: "El simulador cuántico de más alto rendimiento en el mundo". No estoy seguro de eso, pero las especificaciones para la versión de 30 qubits son accesibles, solo dos CPU Intel y 1 TB de memoria.

Folleto Atos QLM .PDF .

¿Hay alguna forma de emular una computadora cuántica en mi computadora normal , de modo que pueda probar y probar lenguajes de programación cuántica (como Q #)?

Si sólo utiliza 256 GB de memoria y 1-24TB de unidad de intercambio será lento pero va a funcionar.

Me refiero a algo en lo que realmente puedo probar mi hipótesis y obtener los resultados más precisos .

Cita del folleto:

"La máquina de aprendizaje cuántica Atos calcula la ejecución exacta de un programa cuántico, con precisión de dos dígitos. Simula las leyes de la física , que están en el corazón de la computación cuántica. Esto es muy diferente a los procesadores cuánticos existentes, que sufren de cuántica ruido, decoherencia cuántica y sesgos de fabricación, así como cuellos de botella de rendimiento. La simulación en Atos Quantum Learning Machine permite a los desarrolladores centrarse en sus aplicaciones y algoritmos, sin tener que esperar a que las máquinas cuánticas estén disponibles ".

Afirman una alta precisión, ya que es un simulador que no está sujeto a ruido, ni será tan rápido ni tan costoso. En teoría, podría agregar algo de memoria, unidades y software a su computadora ...

Robar
fuente
3

Creo que se puede encontrar una buena "visión general" sobre el tema en: Quantiki

Tienen una lista de simuladores de computadora cuántica en varios idiomas, algunos de los simuladores se han citado aquí anteriormente. Sin embargo, mantienen una lista que actualizan para informar (o intentar informar) sobre el estado del proyecto. Hay algunas "bibliotecas" como:

Haskell

qchas (qchas: una biblioteca para implementar Algoritmos Cuánticos) - Una biblioteca útil para implementar Algoritmos Cuánticos. Contiene definiciones de puertas cuánticas, Qubits.

Pitón

qubiter : el proyecto Qubiter tiene como objetivo proporcionar eventualmente un conjunto completo de herramientas, escritas principalmente en Python, para diseñar y simular circuitos cuánticos en computadoras clásicas.

Javascript

jsqis : jsqis, en esencia, es un simulador de computadora cuántico escrito en Javascript. Permite la inicialización de registros cuánticos y su manipulación mediante puertas cuánticas.

Gustavo Banegas
fuente