Quais linguagens de programação estão disponíveis para computadores quânticos?


53

A partir dessa pergunta, concluí que as principais linguagens de programação da computação quântica são Q # e QISKit .

Quais outras linguagens de programação estão disponíveis para a programação de computadores quânticos? Existem certos benefícios na escolha de determinados?

EDIT: Estou procurando linguagens de programação, não emuladores. Emuladores simulam coisas. Linguagens de programação são um método de escrever instruções (para objetos reais ou para emuladores). Pode haver um único idioma que funcione para vários emuladores e vice-versa.


Gostaria de salientar que essencialmente nenhum dos idiomas listados na resposta aceita aqui pode realmente funcionar com um computador quântico existente. Pode fazer mais sentido 1) editar a pergunta para deixar claro que você está solicitando idiomas que não podem ser compilados para serem executados no hardware existente ou 2) aceitar uma resposta diferente.
precisa saber é o seguinte

11
@DanielSank Aceitei a lista da Wikipedia porque assumi que essa lista seria atualizada para incluir idiomas que realmente são executados no hardware; servirá como a melhor resposta, supondo que a Wikipedia continue a ter essa página.
Pro Q

11
@ProQ - Há uma pequena atualização na minha resposta. Além disso, clarifiquei que minha resposta não é recortar / colar, mas possui links verificados. Corrigi um link quebrado. Adicionei o site de um colaborador importante. - Voltarei de tempos em tempos para garantir que essa resposta seja "aproximadamente ótima". Detalhes sobre atendimento e manutenção foram abordados. Alguns dos idiomas da minha resposta são executados no hardware disponível para compra e estão sendo usados ​​regularmente. Obrigado pela sua fé ProQ.
26418 Rob

Há também o Yao (projeto de algoritmo quântico extensível e eficiente para seres humanos), escrito em Julia, github.com/QuantumBFS/Yao.jl . E aqui e aqui você encontrará uma comparação.
skan

Respostas:


35

Lista da Wikipedia de linguagens de programação Quantum Computer

(Esta resposta não é uma cópia dessa página da Web, é mais atualizada e com links verificados. Em alguns casos, o link do artigo ou do site do autor é adicionado.)

O site Quantum Computing Report possui uma página da Web Tools listando mais de uma dúzia de links, alguns novos e outros repetindo a lista acima.

Veja também a página da QuanTiki: " Lista de simuladores de controle de qualidade ", para obter uma lista enorme de simuladores e linguagens de programação baseadas em: C / C ++, CaML, OCaml, F #, juntamente com GUI, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML e outros serviços online que fornecem calculadoras, compiladores, simuladores e kits de ferramentas, etc.

Existem certos benefícios na escolha de determinados?

Se você planeja usar um computador quântico específico, espera-se que a linguagem de programação desenvolvida pelo fabricante seja mais adequada para essa máquina específica e bem suportada.

Escolher um idioma com um número maior de seguidores significa que há mais fóruns disponíveis e, espero, mais correções de bugs e suporte.

Infelizmente, isso deixa alguns ótimos produtos de nicho para obter uma base de usuários. Tentando encontrar um idioma que seja poderoso / expressivo e com suporte em várias plataformas é o truque, a resposta é uma opinião ATM.

Uma avaliação de quatro plataformas de software: Forest (pyQuil), QISKit, ProjectQ e Quantum Developer Kit é oferecida por Ryan LaRose em " Visão geral e comparação de plataformas de software Quantum em nível de portão " (6 de julho de 2018).


Atualizações:

Cirq e OpenFermion-Cirq do Google : " Blog de IA do Google - Anúncio do Cirq: uma estrutura de código aberto para algoritmos NISQ ".

O Leap and Ocean SDK da D-Wave permite o acesso a um sistema D-Wave 2000Q ™ em um ambiente de nuvem com acesso a uma máquina de recozimento quântico com mais de 2000 qubit para testar e executar cargas de trabalho gratuitamente, assumindo que os principais algoritmos usados ​​vão para o pool de código aberto . Inscreva-se para fazer login na página Leap In da D-Wave .

O Quantum Cloud Service (QCS) da Rigetti Computing oferece uma Quantum Machine Image, um ambiente de programação e execução virtualizado pré-configurado com o Forest 2.0, para acessar até 16 qubits de um computador de 128 bits.

Fique atento às informações sobre o Digital Annealer da Fujitsu , uma arquitetura capaz de realizar cálculos 10.000 vezes mais rápidos que um computador convencional. Se eles eventualmente fornecerem um ambiente de desenvolvimento compatível com computadores quânticos verdadeiros, esses dois parágrafos permanecerão nesta resposta, caso contrário, eu os removerei.

Embora seu chip de silício não seja de natureza quântica, a Fujitsu fez uma parceria com o 1Qbit para desenvolver o que é descrito como um " Serviço de nuvem AI inspirado na Quantum ", independentemente de o seu Annealer digital parecer um pato (um anel como um D-Wave e usar um código compatível) continua a ser visto. Visite aqui para acessar o Serviço Técnico do Revendedor Digital Fujitsu .

O QWIRE da Universidade da Pensilvânia ( coral ) é uma linguagem quântica de circuitos e uma ferramenta formal de verificação; possui uma página do GitHub .

Uma revisão de: Cirq, Cliffords.jl, dimod, sistema dwave, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra e Aqua, Qiskit Tutorials e Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC e, finalmente, XACC VQE são oferecidos no artigo: " Software de código aberto na computação quântica " (21 de dezembro de 2018), por Mark Fingerhuth, Tomáš Babej e Peter Wittek.

Voltarei a esta resposta de tempos em tempos para fazer atualizações, sem esbarrões excessivos .



Notícias relacionadas à "programação": a IBM anuncia 53 computadores Qubit disponíveis no próximo mês , para uso do público.
Rob

28

Os fornecedores de hardware do modelo Gate criaram seus próprios idiomas de baixo nível:

Estes possuem sdk python de nível superior disponíveis:

Rigetti também está agrupando seu idioma em uma biblioteca de nível superior para chamar aplicativos pré-criados chamados Grove .

A Microsoft desenvolveu o Q # para executar o simulador existente e, eventualmente, o hardware físico.

Como os idiomas acima são específicos do fornecedor, o principal benefício é que você pode executar programas quânticos em seus computadores.

Fora dos idiomas específicos do fornecedor está o Scaffold, que está sendo desenvolvido por pesquisadores de Princeton. Essa linguagem é interessante, pois inclui uma cadeia de ferramentas para analisar os programas para determinar custos, potencial de desempenho e potencial de escalabilidade.

Edit: Project Q é outra estrutura que permite desenvolver programas utilizando Python, que podem ser executados em um simulador incluído.

O Oak Ridge National Labs começou a trabalhar em um projeto chamado XACC, cujo objetivo é abstrair o código específico do fornecedor para permitir que os usuários acessem as várias plataformas de hardware sem duplicar o código no idioma específico de cada fornecedor.


3
O projectq.ch também merece uma menção.
precisa

11
Eu gosto dessa resposta porque explica quais idiomas podem realmente ser executados no hardware existente .
precisa saber é o seguinte


3

Eu incluiria o compositor da IBM. Não parece programação porque você não recebe todos os bugs, erros e funcionalidade, mas converte claramente suas instruções nos portões em QASM e as executa em um simulador real da IBM ou em um computador quântico IBM real (a escolha é do usuário).


1

Infelizmente, a lista no Quantiki é bastante antiga e não é bem mantida. Mesmo listar todas as linguagens de programação quânticas em uma única resposta a essa pergunta não é sustentável, pois o cenário quântico está em constante evolução. Por exemplo, o Google acaba de lançar o Cirq , uma nova estrutura de programação quântica para computadores Noisy Intermediate Scale Quantum (NISQ) que não aparece em nenhuma das respostas acima, pois foi anunciada há apenas alguns dias.

Para resolver esse problema e como resposta a outra pergunta no QC StackExchange, iniciei uma lista com curadoria de projetos de software de código aberto no GitHub, que também inclui uma visão abrangente das linguagens e estruturas de programação quântica desenvolvidas ativamente. A lista é mantida ativamente pela comunidade e constantemente adicionamos novos projetos.


2
Parece um recurso maravilhoso. Obrigado! Gostaria de saber se existe outra lista semelhante de projetos que não são apenas de código aberto.
Pro Q

11
@ProQ, para ser sincero, acho que a lista de código aberto cobre> 95% do espaço quântico de software. Quase não existem pacotes de código fechado com acesso público e você não se importaria com o software quântico usado internamente em alguma empresa sem acesso público.
27618 Mark Fingerhuth
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.