Simuladores de circuito quântico QSIM e QSIMH. Esses simuladores foram utilizados para benchmarking cruzado de entropia em [1].
[1], F. Arute et al, "Supremacia quântica usando um processador de supercondutor programável", Nature 574, 505, (2019).
O QSIM é um simulador de vetor de estado completo de Schrödinger. Ele calcula todas as amplitudes de 2 n do vetor de estado, onde n é o número de qubits. Essencialmente, o simulador executa multiplicações de vetor de matriz repetidamente. Uma multiplicação de vetor de matriz corresponde à aplicação de um portão. O tempo de execução total é proporcional ao G2 N , onde G é o número de portões de 2 quits. Para acelerar o simulador, usamos fusão de portão [2] [3], aritmética de precisão única, instruções AVX/FMA para vetorização e OpenMP para multi-threading.
[2] M. Smelyanskiy, NP Sawaya, A. Aspuru-Guzik, "Qhipster: O ambiente de teste de software de alto desempenho quântico", Arxiv: 1601.07195 (2016).
[3] T. Häner, DS Steiger, "0,5 simulação petabyte de um circuito quântico de 45 quits", arxiv: 1704.01127 (2017).
QSIMH é um simulador híbrido de Schrödinger-Feynman [4]. A treliça é dividida em duas partes e a decomposição de Schmidt é usada para decompor portões de 2 quits no corte. Se a classificação Schmidt de cada portão for M e o número de portões no corte é k , existem M K caminhos. Para simular um circuito com fidelidade, é preciso simular todos os caminhos M K e resumir os resultados. O tempo de execução total é proporcional a (2 n 1 + 2 n 2 ) m k , onde n 1 e n 2 são os números de qubit na primeira e na segunda parte. As simulações de caminho são independentes umas das outras e podem ser paralelas triviais para executar em supercomputadores ou em data centers. Observe que se pode executar simulações com fidelidade f <1 apenas somando uma fração f de todos os caminhos.
Um esquema de poça de verificação de dois níveis é usado para melhorar o desempenho. Digamos, existem K portões no corte. Nós os dividimos em três partes: p+r+s = k , onde p é o número de portões "prefixos", r é o número de portões "raiz" e s é o número de portões "sufixo". O primeiro ponto de verificação é executado após a aplicação de todos os portões e incluindo os portões do prefixo e o segundo ponto de verificação é executado após a aplicação de todos os portões e a inclusão dos portões da raiz. O resumo completo sobre todos os caminhos para as portões da raiz e do sufixo é realizado.
Se p> 0 , uma dessas simulação fornecerá F ≈ M -p (para todos os portões de prefixo que têm a mesma classificação Schmidt M ). É preciso executar simulações M P com diferentes caminhos de prefixo e soma os resultados para obter f = 1 .
[4] Il Markov, A. Fatima, SV Isakov, S. Boixo, "A supremacia quântica está mais próxima e mais distante do que parece", Arxiv: 1807.10749 (2018).
O código é basicamente projetado como uma biblioteca. O usuário pode modificar aplicativos de amostra em aplicativos para atender às suas próprias necessidades. O uso de aplicativos de amostra é descrito nos documentos.
O formato de entrada do circuito é descrito nos documentos.
NOTA: Este formato está preguiçoso e não é mais mantido ativamente.
Vários circuitos de amostra são fornecidos em circuitos.
Os testes de unidade para bibliotecas C ++ usam a estrutura de teste do Google e estão localizados em testes. Os testes Python usam pytest e estão localizados em QSIMCIRQ_TESTS.
Para construir e executar todos os testes, execute:
make run-tests
Isso compilará todos os binários de teste em arquivos com extensões .x e executará cada teste em série. Os testes serão interrompidos mais cedo se um teste falhar. Ele também executará testes da interface qsimcirq Python. Para executar apenas os testes C ++ ou Python, execute make run-cxx-tests ou make run-py-tests , respectivamente.
Para limpar os arquivos de teste gerados, a execução make clean o diretório de teste.
O CIRQ é uma estrutura para modelar e invocar circuitos quânticos de escala intermediária (NISQ).
Para começar a simular os circuitos do Google Cirq com o QSIM, consulte o tutorial.
Informações mais detalhadas sobre a API QSIM-CIRQ podem ser encontradas nos documentos.
Este não é um produto do Google oficialmente suportado.
O QSIM é enviado para Zenodo automaticamente. Clique neste crachá para ver todos os formatos de citação para todas as versões.
Uma referência equivalente ao formato BIBTEX está abaixo para todas as versões:
@software{quantum_ai_team_and_collaborators_2020_4023103,
author = {Quantum AI team and collaborators},
title = {qsim},
month = Sep,
year = 2020,
publisher = {Zenodo},
doi = {10.5281/zenodo.4023103},
url = {https://doi.org/10.5281/zenodo.4023103}
}