¿Qué lenguajes de programación están disponibles para las computadoras cuánticas?

53

A partir de esta pregunta, deduje que los principales lenguajes de programación de computación cuántica son Q # y QISKit .

¿Qué otros lenguajes de programación están disponibles para programar computadoras cuánticas? ¿Hay ciertos beneficios al elegir unos en particular?

EDITAR: Estoy buscando lenguajes de programación, no emuladores. Los emuladores simulan cosas. Los lenguajes de programación son un método para escribir instrucciones (ya sea para objetos reales o para emuladores). Puede haber un solo lenguaje que funcione para múltiples emuladores y viceversa.

Pro Q
fuente
Me gustaría señalar que, en esencia, ninguno de los idiomas enumerados en la respuesta aceptada aquí puede funcionar en una computadora cuántica existente. Puede tener más sentido ya sea 1) editar la pregunta para dejar en claro que está solicitando idiomas que no se pueden compilar para ejecutarse en el hardware existente, o 2) aceptar una respuesta diferente.
DanielSank
1
@DanielSank Acepté la lista de Wikipedia porque supuse que esa lista se actualizará para incluir idiomas que realmente se ejecutan en hardware; servirá como la mejor respuesta asumiendo que Wikipedia sigue teniendo esa página.
Pro Q
1
@ProQ: hay una pequeña actualización en mi respuesta. Además, he aclarado que mi respuesta no es cortar / pegar, sino enlaces verificados. He arreglado un enlace roto. He añadido un sitio web importante para contribuyentes. - Volveré de vez en cuando para asegurarme de que esta respuesta sea "aproximadamente excelente". Se han abordado los detalles sobre la respuesta y el mantenimiento. Algunos de los idiomas en mi respuesta se ejecutan en el hardware disponible para la compra y se usan regularmente. Gracias por su fe ProQ.
Rob
También está Yao (Diseño de algoritmo cuántico extensible y eficiente para humanos), escrito en Julia, github.com/QuantumBFS/Yao.jl . Y aquí y aquí encontrarás una comparación.
skan

Respuestas:

35

Lista de Wikipedia de los lenguajes de programación de computadoras Quantum

(Esta respuesta no es una copia de esa página web, está más actualizada y con enlaces verificados. En algunos casos se agrega el artículo del autor o el enlace al sitio web).

El sitio web Quantum Computing Report tiene una página web de Herramientas que enumera más de una docena de enlaces, algunos nuevos y otros que repiten la lista anterior.

Consulte también la página web de QuanTiki: " Lista de simuladores de control de calidad ", para obtener una gran lista de simuladores y lenguajes de programación basados ​​en: C / C ++, CaML, OCaml, F #, junto con GUI basado, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML y otros servicios en línea que proporcionan calculadoras, compiladores, simuladores y kits de herramientas, etc.

¿Hay ciertos beneficios al elegir unos en particular?

Si planea usar una computadora cuántica en particular, uno esperaría que el lenguaje de programación desarrollado por el fabricante sea el más adecuado para esa máquina en particular y tenga un buen soporte.

Elegir un idioma con un seguimiento más amplio significa que hay más foros disponibles y, con suerte, más correcciones de errores y soporte.

Desafortunadamente, eso deja algunos productos de gran nicho para luchar por ganar una base de usuarios. Intentar encontrar un idioma que sea potente / expresivo y compatible con varias plataformas es el truco, la respuesta es una opinión ATM.

Ryan LaRose ofrece una evaluación de cuatro plataformas de software: Forest (pyQuil), QISKit, ProjectQ y Quantum Developer Kit en " Descripción general y comparación de las plataformas de software Quantum de nivel de puerta " (6 de julio de 2018).


Actualizaciones:

Cirq de Google y OpenFermion-Cirq: " Blog de IA de Google - Anunciando Cirq: un marco de código abierto para algoritmos NISQ ".

El SDK Leap and Ocean de D-Wave permite el acceso a un sistema D-Wave 2000Q ™ en un entorno de nube con acceso a una máquina de recocido cuántico de más de 2000 qubits para probar y ejecutar cargas de trabajo de forma gratuita, suponiendo que los algoritmos principales utilizados entren en el grupo de código abierto . Solicite iniciar sesión en la página web Leap In de D-Wave .

El servicio Quantum Cloud Service (QCS) de Rigetti Computing ofrece una imagen de máquina cuántica, un entorno virtualizado de programación y ejecución preconfigurado con Forest 2.0, para acceder a hasta 16 qubits de una computadora de 128 qubit.

Estén atentos para obtener información sobre el Digital Annealer de Fujitsu , una arquitectura capaz de realizar cálculos unas 10.000 veces más rápido que una computadora convencional. Si finalmente proporcionan un entorno de desarrollo compatible con las computadoras cuánticas verdaderas , estos dos párrafos permanecerán en esta respuesta; de lo contrario, los eliminaré.

Si bien su chip de silicio no es de naturaleza cuántica, Fujitsu se ha asociado con 1Qbit para desarrollar lo que se describe como un " Servicio de Nube de AI inspirado en Quantum ", ya sea que su Annealer digital grazne como un pato (se recorta como un D-Wave y usa código compatible) Queda por ver. Visite aquí para acceder al Servicio técnico de Fujitsu Digital Annealer .

El QWIRE ( coro ) de la Universidad de Pensilvania es un lenguaje de circuito cuántico y una herramienta de verificación formal, tiene una página web de GitHub .

Una revisión de: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra and Aqua, Qiskit Tutorials y Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC y finalmente XACC VQE se ofrecen en el documento: " Software de código abierto en computación cuántica " (21 de diciembre de 2018), de Mark Fingerhuth, Tomáš Babej y Peter Wittek.

Volveré a esta respuesta de vez en cuando para hacer actualizaciones, sin golpes excesivos .

Robar
fuente
Una especie de noticias relacionadas con la "programación": IBM anuncia 53 computadoras Qubit disponibles el próximo mes , para uso del público.
Rob el
28

Los proveedores de hardware del modelo Gate han desarrollado sus propios idiomas de bajo nivel:

Estos tienen sdk de python de nivel superior disponibles:

Rigetti también está envolviendo su idioma en una biblioteca de nivel superior para llamar a aplicaciones preconstruidas llamadas Grove .

Microsoft ha desarrollado Q # para correr contra su simulador existente, y eventualmente su hardware físico.

Dado que los idiomas anteriores son específicos del proveedor, el principal beneficio es que puede ejecutar programas cuánticos en sus computadoras.

Fuera de los lenguajes específicos del proveedor se encuentra Scaffold, que está siendo desarrollado por investigadores de Princeton. Este lenguaje es interesante ya que incluye una cadena de herramientas para analizar los programas para determinar los costos, el potencial de rendimiento y el potencial de escalabilidad.

Editar: Project Q es otro marco que le permite desarrollar programas utilizando Python que pueden ejecutarse en un simulador incluido.

Oak Ridge National Labs ha comenzado a trabajar en un proyecto llamado XACC que pretende abstraer el código específico del proveedor para permitir a los usuarios acceder a las diversas plataformas de hardware sin duplicar el código en cada idioma específico del proveedor.

j4ustin
fuente
3
projectq.ch también merece una mención.
James Wootton
1
Me gusta esta respuesta porque explica qué idiomas pueden ejecutarse realmente contra el hardware existente .
DanielSank
3

Incluiría al compositor de IBM. No tiene ganas de programar porque no obtienes todos los errores, errores y funcionalidades, pero convierte claramente tus instrucciones en puertas a QASM y las ejecuta en un simulador real de IBM o en una computadora cuántica real de IBM (la opción es Los usuarios).

Avery Leider
fuente
1

Desafortunadamente, la lista en Quantiki es bastante antigua y no está bien mantenida. Incluso enumerar todos los lenguajes de programación cuántica en una sola respuesta a esta pregunta no es sostenible ya que el panorama cuántico está en constante evolución. Por ejemplo, Google acaba de lanzar Cirq , un nuevo marco de programación cuántica para computadoras Noisy Intermediate Scale Quantum (NISQ) que no aparece en ninguna de las respuestas anteriores, ya que se anunció hace solo un par de días.

Para abordar este problema y como respuesta a otra pregunta sobre QC StackExchange, comencé una lista curada de proyectos de software de código abierto en GitHub que también incluye una descripción completa de los marcos y lenguajes de programación cuántica desarrollados activamente. La comunidad mantiene activamente la lista y constantemente agregamos nuevos proyectos.

Mark Fingerhuth
fuente
2
Esto parece un recurso maravilloso. ¡Gracias! Me pregunto si hay otra lista similar de proyectos que no sean solo de código abierto.
Pro Q
1
@ProQ para ser honesto, creo que la lista de código abierto cubre> 95% del espacio cuántico de software. Apenas hay paquetes de código cerrado con acceso público y, de todos modos, no le interesaría el software cuántico que se utiliza internamente en alguna empresa sin acceso público.
Mark Fingerhuth