As atuais abordagens para implementação de simulação algoritmos quânticos em hardware sofrem de problemas relacionados a desempenho e complexidade. Neste artigo, revisitamos uma implementação em FPGA de um processador dedicado de 3 qubits para dar suporte às portas quânticas Sgate, Tgate, Hadamard, Paulix, CNOT, e Toffoli. A arquitetura proposta alia alto desempenho à simplicidade de projeto, já que permite simular o comportamento de um circuito quântico de forma eficiente com um modelo programável inspirado na arquitetura RISC, eliminando a necessidade de re-síntese do modelo, reduzindo possíveis erros e algumas limitações de outras soluções existentes. Tal abordagem pode representar uma alternativa viável ao desenvolvimento e validação de novas soluções baseadas em sistemas quânticos.
As atuais abordagens para implementação de simulação algoritmos quânticos em hardware sofrem de problemas relacionados a desempenho e complexidade. Neste artigo, revisitamos uma implementação em FPGA de um processador dedicado de 3 qubits para dar suporte às portas quânticas Sgate, Tgate, Hadamard, Paulix, CNOT, e Toffoli. A arquitetura proposta alia alto desempenho à simplicidade de projeto, já que permite simular o comportamento de um circuito quântico de forma eficiente com um modelo programável inspirado na arquitetura RISC, eliminando a necessidade de re-síntese do modelo, reduzindo possíveis erros e algumas limitações de outras soluções existentes. Tal abordagem pode representar uma alternativa viável ao desenvolvimento e validação de novas soluções baseadas em sistemas quânticos.
Simuladores quânticos têm tido um importante papel no estudo e desenvolvimento da computação quântica ao longo dos anos. A simulação de algoritmos quânticos em computadores clássicos é computacionalmente difícil, principalmente devido à natureza paralela dos sistemas quânticos. Para acelerar essas simulações, alguns trabalhos propõem usar hardware paralelo programável como FPGAs, o que diminui consideravelmente o tempo de execução. Contudo, essa abordagem tem três problemas principais: pouca escalabilidade, já que apenas transfere a complexidade do domínio do tempo para o domínio do espaço; a necessidade de re-síntese a cada mudança no algoritmo; e o esforço extra ao projetar o código RTL para simulação. Para lidar com esses problemas, uma arquitetura de um co-processador SIMD é proposta, cujas operações das portas quânticas está baseada no modelo Network of Butterflies. Com isso, eliminamos a necessidade de re-síntese com mudanças pequenas no algoritmo quântico simulado, e eliminamos a influência de um dos fatores que levam ao crescimento exponencial do uso de recursos da FPGA. Adicionamente, desenvolvemos uma ferramenta para geração automática do código RTL sintetizável do co-processador, reduzindo assim o esforço extra de projeto.
Simuladores quânticos têm tido um importante papel no estudo e desenvolvimento da computação quântica ao longo dos anos. A simulação de algoritmos quânticos em computadores clássicos é computacionalmente difícil, principalmente devido à natureza paralela dos sistemas quânticos. Para acelerar essas simulações, alguns trabalhos propõem usar hardware paralelo programável como FPGAs, o que diminui consideravelmente o tempo de execução. Contudo, essa abordagem tem três problemas principais: pouca escalabilidade, já que apenas transfere a complexidade do domínio do tempo para o domínio do espaço; a necessidade de re-síntese a cada mudança no algoritmo; e o esforço extra ao projetar o código RTL para simulação. Para lidar com esses problemas, uma arquitetura de um co-processador SIMD é proposta, cujas operações das portas quânticas está baseada no modelo Network of Butterflies. Com isso, eliminamos a necessidade de re-síntese com mudanças pequenas no algoritmo quântico simulado, e eliminamos a influência de um dos fatores que levam ao crescimento exponencial do uso de recursos da FPGA. Adicionamente, desenvolvemos uma ferramenta para geração automática do código RTL sintetizável do co-processador, reduzindo assim o esforço extra de projeto.
O custo para o desenvolvimento de um computador quântico é alto nos dias atuais. Nesse contexto, este artigo tem como objetivo descrever os processos e resultados de uma pesquisa voltada ao desenvolvimento de um núcleo RISC-V dedicado à simulação de circuitos quânticos. A metodologia adotada envolveu a simplificação do processador Tiny RISC-V e a realização de testes de desempenho em um Arranjo de Portas Programáveis em Campo (FPGA). Os resultados obtidos são promissores, indicando a viabilidade de instanciar múltiplos cores para explorar o paralelismo para realizar a simulação de circuitos quânticos, como uma alternativa à simulação em GPU.
Realizar computacao quântica real esta no roteiro de trabalho de empresas gigantes da computacao como Microsoft, Google e IBM. Algumas delas disponibilizam acesso a seus prototipos gratuitamente por meio de suas APIs para pesquisadores de todo o mundo a fim de popularizar o assunto entre a academia e entusiastas. Este e o caso do Qiskit, uma API Open Source escrita em Python para dar suporte a modelagem, simulacao e execucao de algoritmos quânticos em dispositivos NISQ (Noise Intermediate Scale Quantum) da IBM. Porem, a dificuldade de construir um computador quântico torna ainda necessario investir na simulacao de sistemas quânticos em computadores classicos, com o objetivo de fornecer um ambiente mais acessivel para criacao e aprimoramento de algoritmos quânticos maiores do que os prototipos existentes podem suportar. Acontece que a natureza paralela e exponencial da computacao quântica torna impossivel realizar simulacoes com eficiencia de tempo em maquinas sequenciais classicas. Para enfrentar este problema, a literatura tem mostrado alternativas explorando o paralelismo de outras arquiteturas como FPGAs e GPUs, com o objetivo de transferir a complexidade da simulacao do dominio do tempo para o dominio do espaco. Curiosamente, apesar de suportar simulacao em GPU, a API Qiskit ainda nao possui suporte para executar em FPGA. Pretendemos investigar diferentes modelos de arquitetura customizada para simulacao de algoritmos quânticos em FPGA, visando futura implementacao em um ASIC. Os modelos serao implementados em Verilog HDL, validados usando os prototipos de computadores quânticos da IBM como modelos de referencia, e serao comparados tendo como metricas de avaliacao parâmetros como escalabilidade e tempo de execucao. A ideia final e contornar o mecanismo de simulacao nativo da Qiskit para executar remotamente em um modelo FPGA disponivel remotamente por meio de nosso servico web capaz de processar essas solicitacoes, executar o algoritmo quântico e enviar os resultados finais de volta. O projeto encontra-se em desenvolvimento, ja tendo sido realizado os primeiros estudos sobre os fundamentos da computacao quântica, estudo da API Qiskit, e implementacao dos primeiros circuitos quânticos em C e em Python visando entendimento e desafios da complexidade de simulacao inerentes a esse novo modelo computacional.
A Computacao Quântica surgiu como uma promissora tecnologia alternativa capaz de contornar os problemas previstos para acontecerem em breve com a saturacao da tecnologia atual (Computacao Classica). Estes problemas acontecem quando se trabalha com componentes muito pequenos, da ordem de poucos nanometros, quando os efeitos da Mecânica Quântica comecam a tornar-se mais fortes, gerando resultados aleatorios. A Computacao Quântica toma proveito desses efeitos, resultando numa Computacao nao somente mais rapida, como um novo tipo de Computacao, capaz de realizar tipos novos de computacao impossiveis, em principio, de serem realizadas classicamente. Embora a teoria da Computacao Quântica venha se desenvolvendo com rapidez, a parte experimental ainda enfrenta grandes dificuldades. Embora implementacoes de algoritmos simples e com poucos qubits ja tenham sido realizadas, ainda ha problemas serios de escalabilidade, descoerencia e controlabilidade a serem resolvidos. Devido a esses problemas, torna-se imperativo o uso de simuladores tanto para o desenvolvimento de novos algoritmos quanto para o estudo dos algoritmos existentes. A simulacao, porem, apresenta um problema, no que um sistema quântico so pode ser simulado eficientemente por outro sistema quântico. Um sistema quântico de n qubits levara um tempo O(2n ) para ser simulado por um computador classico. A simulacao, entretanto, mostra-se a alternativa mais viavel em vista da falta de um hardware quântico. Este trabalho apresenta o processo de concepcao e implementacao de um simulador universal de circuitos quânticos, denominado Zeno. O modelo de circuitos quânticos foi escolhido por ser amplamente difundido e de facil assimilacao. O trabalho apresenta uma introducao aos conceitos de Computacao Quântica usados na implementacao do simulador, os requisitos gerais desejaveis para um novo simulador de circuitos quânticos, tanto do ponto de vista funcional quanto do nao-funcional, o processo de desenvolvimento utilizado e uma analise dos resultados obtidos com a implementacao do simulador.
Computação quântica é uma área de grande desenvolvimento hoje em dia e isso traz uma necessidade para desenvolver hardware e software. Uma vez que o hardware disponível é muito pouco e o software precisa de ser testado, existe uma necessidade de uma boa plataforma para testar as soluções de software. Simular um computador quântico num computador clássico não é ideal, contudo é uma resposta viável a esta necessidade, para um pequeno número de qubits. Além disso, os computadores quânticos necessitam dos computadores clássicos de forma a criar um sistema real prático, isto apresenta-se como uma excelente oportunidade para testar técnicas de programação clássica para melhorar a programação quântica. Esta tese propõe o uso de programação clássica para melhorar a implementação de um algoritmo de adição modular usando transformadas de Fourier quânticas. Os principais objectivos deste trabalho são: simular um circuito quântico; testar um algoritmo quântico e compará-lo com o seu equivalente clássico; implementar o algoritmo de adição modular, usando as capacidades de aceleração de computação das transformadas de Fourier quânticas e optimizá-lo; Testar e implementar códigos quânticos de correcção de erros; fazer um teste num computador quântico real.De forma a testar a linguagem e comparar um algoritmo quântico com um clássico, fez-se um teste ao algoritmo de Shor que está disponível de raiz na plataforma liquid. Apesar do algoritmo de Shor ter, teoricamente, uma dependência de tipo polinomial com a dimensão do problema, os testes realizados mostraram que o tempo de computação tem um comportamento exponencial. Simular um algoritmo quântico num computador clássico requer tempo de computação que cresce de forma exponencial, pois é necessário armazenar e processar todos os estados do sistema, que é um espaço de Hilbert de dimensão 2^n.O algoritmo de adição modular usando transformadas de Fourier quânticas foi implementado na plataforma liquid. Seguidamente fizeram-se melhorias e optimizações. O número de operações teórico é O(n^2). Contudo, depois de fazer melhorias ao circuito, removendo gates desnecessárias para casos específicos, o número de operações passa a ter um valor mínimo de Omega(n). Com este tipo de alterações o sistema pode apresentar melhorias no que respeito ao tempo de simulação até um factor de ordem 10. Isto mostra que programar um algoritmo quântico tendo em conta casos específicos pode melhorar imenso o desempenho da simulação.Os códigos de correção de erros quânticos foram implementados num circuito simples, com as ferramentas disponíveis na plataforma liquid, e obteve-se um sistema que consegue lidar com erros com probabilidade inferior ou igual a 2%, com uma taxa de sucesso na sua correção de 95%. Contudo são necessários circuitos muito grandes, pouco exequíveis.A plataforma disponibilizada pela IBM para fazer testes num computador quântico real, foi utilizada para testar o algoritmo de adição modular e adição normal (com carry bit). Uma vez que esta plataforma tem um número limitado de gates, reforça a ideia de que se deve otimizar os algoritmos tendo em conta casos particulares. Os resultados destes testes mostram também que é importante utilizar correcção de erros quânticos, mas para que isso seja viável é necessário que haja mais qubits disponíveis ou outro tipo de códigos.