Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Log inSign up
Challenges
Datasets
Workspaces
Papers
Discussions
Leaderboard
Blog
Job Board
Q3AS

© 2026 Aqora Quantum S.A.S.

TermsPrivacyLegal Notice

Escola Regional de Computação Bahia, Alagoas e Sergipe (ERBASE)

Um Ambiente integrado à Qiskit para Execução Remota de Algoritmos Quânticos em GPU

Maria Eduarda Mascarenhas da Silva, Helena Carvalho Leal, Calebe Micael de Oliveira Conceicao, Rodolfo Botto de Barros Garcia

Published Aug 12, 2025• 0 citations
Publisher

Abstract

Este artigo apresenta um ambiente integrado ao Qiskit para execução remota de algoritmos quânticos utilizando GPUs, visando superar limitações de desempenho em hardware local. A solução permite alocação dinâmica de recursos e paralelização eficiente de operações quânticas, democratizando simulações de grande escala. Para validação, foi desenvolvido um sistema combinando API integrada ao Qiskit com GPUs para cálculo de matrizes e vetores quânticos. Resultados experimentais demonstram ganhos significativos de performance frente a abordagens baseadas exclusivamente em CPUs, o que impulsiona pesquisas em computação quântica. Portanto, o ambiente facilita o desenvolvimento, teste e validação de algoritmos para a comunidade científica.

DOI
10.5753/erbase.2025.13726

Related papers

ADICIONANDO À QISKIT SUPORTE PARA PARA SIMULAR ALGORITMOS QUÂNTICOS EM FPGA

Gustavo Luiz Groeff, Calebe Micael de Oliveira Conceicao, João Vítor

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.

MoExP - Mostra de Ensino, Extensão e Pesquisa do Campus Osório•Oct 14, 2021•0 citations

Abordagem Paralela para Simulação Quântica no Modelo de Máquina Geométrica Quântica

Murilo Schmalfuss, Anderson Ávila, Renata Reiser +1 more

A Computação Quântica (CQ) [7] segue atingindo novos marcos rumo à construção de computadores quânticos. Apesar de todos os esforços, vários desafios técnicos limitam os sistemas atuais a alguns bits quânticos [10]. Pela indisponibilidade de hardware quântico, o estudo e desenvolvimento de aplicações na CQ usualmente é feito estritamente pela especificação matemática das computações ou por meio de ferramentas de simulação. Este último caracteriza a abordagem mais prática, entretanto a complexidade computacional associada a simulação de sistemas quânticos a partir de computadores clássicos limita o tamanho dos sistemas a serem simulados. O projeto no qual este trabalho está inserido busca consolidar a integração de vários esforços de pesquisa, com destaque para: (i) Distribuição das computações em cluster [2]; (ii)Simulação quântica através de GPUs [5]; (iii) Simulação quântica através de CPUs multicore. Atualmente situado sob o contexto do ambiente de simulação quântica VPE-qGM (Visual Programming Environment for the Quantum Geometric Machine Model), este trabalho tem o objetivo de estabelecer o suporte à aceleração da biblioteca de execução do ambiente através de processadores multicore, beneficiando-se dos recursos providos pela biblioteca OpenMP [3]. Consolida-se assim a biblioteca qGMC-Analyzer, com a implementação, desenvolvimento e validação de algoritmo para simulação quântica em arquiteturas multicore, cuja modelagem foi introduzida em [9]. O ambiente VPE-qGM, fundamentado no modelo de processos qGM (Quantum Geometric Machine Model) [8], é constitúıdo de construtores para modelagem e simulação gráfica de aplicações quânticas. De acordo com o modelo qGM, a noção de portas quânticas pode ser substitúıda pelo conceito de sincronização de processos elementares (PEs). No ambiente VPE-qGM, o PE é um elemento estruturado por três atributos: (i) Ação: Corresponde às transformações quânticas aplicadas a diferentes qubits em um mesmo instante de tempo; (ii) Parâmetros: Contém dados auxiliares associados à definição das transformações quânticas; (iii) Posição: Posição de escrita em um espaço de memória global e compartilhada, na qual é armazenado o resultado calculado pelo PE. Neste contexto, uma transformação quântica, aplicada a N qubits, pode ser modelada pela sincronização de 2N PEs, cujas parametrizações satisfazem as condições equivalentes à definição dos vetores componentes da matriz (transformação unitária ou de medida) associada [6]. Bolsista de Iniciação Científica PIBIC/CNPq †Bolsista de PROBIC/FAPERGS Assim, durante a simulação, ocorre a execução (sequencial ou síncrona) dos PEs, os quais têm suas correspondentes computações efetuadas pela biblioteca qGM-Analyzer, manipulando os dados presentes nas posições de memória e simulando o comportamento de um sistema quântico. A biblioteca de execução dos PEs, denominada qGM-Analyzer, implementa otimizações que controlam o aumento exponencial dos vetores componentes das matrizes de definição do operador de múltiplos qubits, conforme introduzido em [4]. Os resultados relacionados comprovam a redução no consumo de memória durante a simulação, suportando algoritmos com 11 qubits. Entretanto, o tempo total de simulação obtido permanece elevado, devido a quantidade de operações necessárias para simular uma transformação quântica. A implementação da biblioteca qGM-Analyzer em C segue as otimizações introduzidas em [4], apenas alterando as estruturas de dados utilizados e fazendo uso de recursos nativos oferecidos pela linguagem visando a otimização da execução. Visando a compatibilidade da biblioteca com o ambiente VPE-qGM, é considerada a biblioteca Boost 1.49.0 [1] para integração das duas linguagens envolvidas. Para a implementação do paralelismo foi utilizada A biblioteca OpenMP [3] implementa o paralelismo. O módulo Boost-Python auxiliou no desenvolvimento da biblioteca qGMC-Analyzer permitindo que sejam reutilizados no código C tipos do Python, como as listas de valores utilizadas no ambiente VPE-qGM, e ainda realizando a conversão destes tipos para tipos da linguagem C. Outra funcionalidade utilizada do módulo Boost-Python foi a geração da biblioteca compartilhada importada pelo ambiente em Python. A implementação em C manteve o mesmo algoritmo desenvolvido em [4], porém a forma de armazenamento dos dados e os algoritmos para acesso a esses dados foram modificados para diminuir a complexidade da biblioteca. Dentre os fatores que contribúıram para um melhor desempenho, destacam-se a utilização de vetores como alternativa as listas do Python e o fato de a linguagem C ser compilada, permitindo ao compilador otimizações no código gerado. Na implementação paralela, cada thread possui uma cópia privada da pilha, e as memórias de escrita e leitura são compartilhadas entre todos os threads, pois cada valor calculado é escrito em uma posição diferente da memória. A divisão dos threads é feita de forma a manter juntos os valores das matrizes necessários para o cálculo de uma posição. Para tal, iterações são divididas levando em conta o número de colunas da primeira matriz envolvida na transformação. Nos casos em que a transformação possui apenas uma matriz, os threads são divididos de forma diferente, para que o trabalho seja distribúıdo de forma balanceada. A definição do número de threads utilizadas pela biblioteca é definida por uma variável de ambiente (OMP NUM THREADS ), gerando uma implementação mais flexível. Ou seja, dependendo da transformação quântica, tem-se um controle da granulosidade visando melhor desempenho da biblioteca. Para validação e análise de desempenho da implementação da qGM-Analyzer em C, foram desenvolvidos estudos de caso envolvendo sincronizações arbitrárias de transformações quânticas, contemplando sistemas entre 13 e 20 qubits. A metodologia dos testes utilizada contempla, para cada estudo de caso, a realização de 15 simulações. A máquina utilizada na simulação possui as seguintes características: processador Intel Core i7-3770 @ 3.4 GHz, 8GB RAM e sistema operacional Ubuntu 12.04 64 bits. A principal comparação de desempenho se dá com a execução da biblioteca em diferentes números de threads. Os testes foram realizados com transformações Hadamards, representada por uma matriz densa de ordem 2n, onde n é o número de qubits e transformações Pauli X, uma matriz esparsa de ordem 2n. Estas execuções compreenderam duas etapas: (i) Geração dos valores não nulos associados ao correspondente vetor componente da matriz de definição da transformação quântica modelada; (ii) Multiplicação desses valores pelas amplitudes obtidas da estrutura de memória que modela o espaço de estados do sistema quântico. Nas simulações das Hadamards, devido ao elevado número de operações, pode-se facilmente observar um desempenho elevado, ou seja, o aumento no número de qubits diretamente relacionado com a diminuição significativa do tempo de execução. Nas transformações controladas Pauli X houve um aumento no tempo de execução. Justifica-se este fato pelo baixo número de operações enFigura 1: Tempos das transformações Hadamard e Pauli X em relação ao número de threads. volvidas. Sendo a Pauli X uma matriz esparsa, seus valores zerados não são computados pelo algoritmo otimizado, tornando o overhead da criação e troca de contexto dos threads o principal custo da transformação, como observado no decremento de desempenho da Figura da Pauli X. Os tempos de simulação, em cada estudo de caso, abrangendo os casos para 1, 2, 4 e 8 threads são descritos na Figura 1. Como analisado, os tempos de execução para as transformações Hadamards obtiveram os melhores desempenhos. As transformações Pauli X tiveram o seu tempo de execução aumentando conforme aumentava o número de threads, pois envolvem poucos cálculos, e seu tempo é dominado pela criação e troca de contexto dos threads. As otimizações realizadas e a implementação paralela representaram um ganho significativo no tempo de execução das transformações quânticas, permitindo a simulação de transformações de 18 qubits com elevado número de operações, como no caso das Hadamards. A continuidade do trabalho consiste na integração da biblioteca qGMC-Analyzer com o ambiente VPE-qGM além da expansão para suporte a transformações multiqubits e na implementação de aplicações em outras bibliotecas disponíveis, para comparação de desempenho entre diferentes ferramentas para suporte a simulação quântica.

Proceeding Series of the Brazilian Society of Computational and Applied Mathematics•Dec 11, 2014•0 citations

Exploring the Optimization Possibilities for the Simulation of Quantum Algorithms in the VPE-qGM

Adriano Maron

A simulação de algoritmos quânticos a partir de computadores clássicos consiste em uma metodologia de estudo, desenvolvimento e validação que busca complementar a abordagem te orica aplicada nos estágios iniciais de construção dos algoritmos em questão. Entretanto, tal simulação é caracterizada por um elevado custo de processamento e armazenamento, exigindo recursos computacionais em larga escala. Visando a obtenção de soluções para uma simulação mais e ciente, este trabalho propõe uma metodologia de desenvolvimento caracterizada por duas etapas principais: (i) estudo teórico e implementação sequencial das abstrações de Processos Quânticos e Processos Quânticos Parciais de finidos no modelo qGM, visando a redução no consumo de memória associado à transformações quânticas multidimensionais; (ii) implementação paralela dessas abstrações para correspondente execução sobre a arquitetura massivamente paralela das GPUs. Os resultados obtidos neste trabalho contemplam a simulação sequencial de transformações quânticas controladas de até 24 qubits. No âmbito da simulação paralela, transformações Hadamard de até 20 qubits foram simuladas com speedup de 185 sobre uma simulação distribuída com 8 cores, caracterizando uma excelente melhora de desempenho no ambiente VPE-qGM com relação a suas limitações anteriores. Este trabalho estabelece as diretrizes para o desenvolvimento de extensões da biblioteca de simulação do ambiente e das capacidades de simulação paralela para transformações quânticas controladas e operações de medida.

•Aug 22, 2013•0 citations

Uma arquitetura de co-processador para simulação de algoritmos quânticos em FPGA

Calebe Micael de Oliveira Conceicao

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.

•Jan 1, 2013•0 citations

Manual da Computação Quântica na Prática Fundamentos, cálculos e aplicações científicas

Jhonata Jankowitsch

Este manual apresenta uma introdução técnica e aplicada à computação quântica, articulando os seus fundamentos físicos, matemáticos e computacionais com exemplos práticos de programação, simulação e análise de algoritmos. A obra explica a constituição de sistemas quânticos contemporâneos, incluindo processadores baseados em qubits supercondutores, infraestrutura criogénica, portas quânticas, superposição, interferência, medição e entrelaçamento. São desenvolvidos cálculos passo a passo para demonstrar a representação de estados quânticos, a aplicação de operadores matriciais e o comportamento probabilístico dos circuitos. O manual aborda ainda algoritmos como Grover e Shor, a utilização da biblioteca Qiskit e a diferença entre simulação clássica e execução em hardware quântico real. Em complemento, discute aplicações emergentes em química computacional, ciência dos materiais, investigação biomolecular, otimização e criptografia pós-quântica, destacando tanto o potencial transformador dessas tecnologias quanto as suas atuais limitações técnicas. A abordagem adotada procura diferenciar resultados já demonstrados experimentalmente de hipóteses, projeções e aplicações ainda em desenvolvimento, oferecendo uma visão crítica, pedagógica e cientificamente fundamentada sobre o papel da computação quântica na evolução da ciência e da engenharia.

•Jan 1, 2026•0 citations

EFEITOS DA DESCOERÊNCIA NA DINÂMICA DE ÍONS APRISIONADOS INTERAGINDO COM UM CAMPO, ALÉM DO LIMITE DE LAMB-DICK, E SUAS APLICAÇÕES EM COMPUTAÇÃO QUÂNTICA.

Lauro de Jesus Mascarenhas

Nos últimos anos tem sido dado uma grande atenção à computação quântica e o seu interesse tem sido intensificado em função do desenvolvimento de algoritmos que possibilitam a fatoração de números primos com velocidade superior à computação convencional. Algoritmos baseadas no controle de estados quânticos, ou simplesmente algoritmos quânticos, oferecem um ganho exponencial de eficiência em relação à algoritmos clássicos equivalentes. No entanto, a implementação experimental destes algoritmos esbarra em um grande obstáculo: a descoerência. Resultante da interação do sistema de interesse com o ambiente externo, a descoerência dificulta o controle de estados quânticos e a realização das operações que compõem os algoritmos.

Anais dos Seminários de Iniciação Científica•Apr 1, 2021•0 citations
Este artigo apresenta um ambiente integrado ao Qiskit para execução remota de algoritmos quânticos utilizando GPUs, visando superar limitações de desempenho em hardware local. A solução permite alocação dinâmica de recursos e paralelização eficiente de operações quânticas, democratizando simulações de grande escala. Para validação, foi desenvolvido um sistema combinando API integrada ao Qiskit com GPUs para cálculo de matrizes e vetores quânticos. Resultados experimentais demonstram ganhos significativos de performance frente a abordagens baseadas exclusivamente em CPUs, o que impulsiona pesquisas em computação quântica. Portanto, o ambiente facilita o desenvolvimento, teste e validação de algoritmos para a comunidade científica.
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 Computação Quântica (CQ) [7] segue atingindo novos marcos rumo à construção de computadores quânticos. Apesar de todos os esforços, vários desafios técnicos limitam os sistemas atuais a alguns bits quânticos [10]. Pela indisponibilidade de hardware quântico, o estudo e desenvolvimento de aplicações na CQ usualmente é feito estritamente pela especificação matemática das computações ou por meio de ferramentas de simulação. Este último caracteriza a abordagem mais prática, entretanto a complexidade computacional associada a simulação de sistemas quânticos a partir de computadores clássicos limita o tamanho dos sistemas a serem simulados. O projeto no qual este trabalho está inserido busca consolidar a integração de vários esforços de pesquisa, com destaque para: (i) Distribuição das computações em cluster [2]; (ii)Simulação quântica através de GPUs [5]; (iii) Simulação quântica através de CPUs multicore. Atualmente situado sob o contexto do ambiente de simulação quântica VPE-qGM (Visual Programming Environment for the Quantum Geometric Machine Model), este trabalho tem o objetivo de estabelecer o suporte à aceleração da biblioteca de execução do ambiente através de processadores multicore, beneficiando-se dos recursos providos pela biblioteca OpenMP [3]. Consolida-se assim a biblioteca qGMC-Analyzer, com a implementação, desenvolvimento e validação de algoritmo para simulação quântica em arquiteturas multicore, cuja modelagem foi introduzida em [9]. O ambiente VPE-qGM, fundamentado no modelo de processos qGM (Quantum Geometric Machine Model) [8], é constitúıdo de construtores para modelagem e simulação gráfica de aplicações quânticas. De acordo com o modelo qGM, a noção de portas quânticas pode ser substitúıda pelo conceito de sincronização de processos elementares (PEs). No ambiente VPE-qGM, o PE é um elemento estruturado por três atributos: (i) Ação: Corresponde às transformações quânticas aplicadas a diferentes qubits em um mesmo instante de tempo; (ii) Parâmetros: Contém dados auxiliares associados à definição das transformações quânticas; (iii) Posição: Posição de escrita em um espaço de memória global e compartilhada, na qual é armazenado o resultado calculado pelo PE. Neste contexto, uma transformação quântica, aplicada a N qubits, pode ser modelada pela sincronização de 2N PEs, cujas parametrizações satisfazem as condições equivalentes à definição dos vetores componentes da matriz (transformação unitária ou de medida) associada [6]. Bolsista de Iniciação Científica PIBIC/CNPq †Bolsista de PROBIC/FAPERGS Assim, durante a simulação, ocorre a execução (sequencial ou síncrona) dos PEs, os quais têm suas correspondentes computações efetuadas pela biblioteca qGM-Analyzer, manipulando os dados presentes nas posições de memória e simulando o comportamento de um sistema quântico. A biblioteca de execução dos PEs, denominada qGM-Analyzer, implementa otimizações que controlam o aumento exponencial dos vetores componentes das matrizes de definição do operador de múltiplos qubits, conforme introduzido em [4]. Os resultados relacionados comprovam a redução no consumo de memória durante a simulação, suportando algoritmos com 11 qubits. Entretanto, o tempo total de simulação obtido permanece elevado, devido a quantidade de operações necessárias para simular uma transformação quântica. A implementação da biblioteca qGM-Analyzer em C segue as otimizações introduzidas em [4], apenas alterando as estruturas de dados utilizados e fazendo uso de recursos nativos oferecidos pela linguagem visando a otimização da execução. Visando a compatibilidade da biblioteca com o ambiente VPE-qGM, é considerada a biblioteca Boost 1.49.0 [1] para integração das duas linguagens envolvidas. Para a implementação do paralelismo foi utilizada A biblioteca OpenMP [3] implementa o paralelismo. O módulo Boost-Python auxiliou no desenvolvimento da biblioteca qGMC-Analyzer permitindo que sejam reutilizados no código C tipos do Python, como as listas de valores utilizadas no ambiente VPE-qGM, e ainda realizando a conversão destes tipos para tipos da linguagem C. Outra funcionalidade utilizada do módulo Boost-Python foi a geração da biblioteca compartilhada importada pelo ambiente em Python. A implementação em C manteve o mesmo algoritmo desenvolvido em [4], porém a forma de armazenamento dos dados e os algoritmos para acesso a esses dados foram modificados para diminuir a complexidade da biblioteca. Dentre os fatores que contribúıram para um melhor desempenho, destacam-se a utilização de vetores como alternativa as listas do Python e o fato de a linguagem C ser compilada, permitindo ao compilador otimizações no código gerado. Na implementação paralela, cada thread possui uma cópia privada da pilha, e as memórias de escrita e leitura são compartilhadas entre todos os threads, pois cada valor calculado é escrito em uma posição diferente da memória. A divisão dos threads é feita de forma a manter juntos os valores das matrizes necessários para o cálculo de uma posição. Para tal, iterações são divididas levando em conta o número de colunas da primeira matriz envolvida na transformação. Nos casos em que a transformação possui apenas uma matriz, os threads são divididos de forma diferente, para que o trabalho seja distribúıdo de forma balanceada. A definição do número de threads utilizadas pela biblioteca é definida por uma variável de ambiente (OMP NUM THREADS ), gerando uma implementação mais flexível. Ou seja, dependendo da transformação quântica, tem-se um controle da granulosidade visando melhor desempenho da biblioteca. Para validação e análise de desempenho da implementação da qGM-Analyzer em C, foram desenvolvidos estudos de caso envolvendo sincronizações arbitrárias de transformações quânticas, contemplando sistemas entre 13 e 20 qubits. A metodologia dos testes utilizada contempla, para cada estudo de caso, a realização de 15 simulações. A máquina utilizada na simulação possui as seguintes características: processador Intel Core i7-3770 @ 3.4 GHz, 8GB RAM e sistema operacional Ubuntu 12.04 64 bits. A principal comparação de desempenho se dá com a execução da biblioteca em diferentes números de threads. Os testes foram realizados com transformações Hadamards, representada por uma matriz densa de ordem 2n, onde n é o número de qubits e transformações Pauli X, uma matriz esparsa de ordem 2n. Estas execuções compreenderam duas etapas: (i) Geração dos valores não nulos associados ao correspondente vetor componente da matriz de definição da transformação quântica modelada; (ii) Multiplicação desses valores pelas amplitudes obtidas da estrutura de memória que modela o espaço de estados do sistema quântico. Nas simulações das Hadamards, devido ao elevado número de operações, pode-se facilmente observar um desempenho elevado, ou seja, o aumento no número de qubits diretamente relacionado com a diminuição significativa do tempo de execução. Nas transformações controladas Pauli X houve um aumento no tempo de execução. Justifica-se este fato pelo baixo número de operações enFigura 1: Tempos das transformações Hadamard e Pauli X em relação ao número de threads. volvidas. Sendo a Pauli X uma matriz esparsa, seus valores zerados não são computados pelo algoritmo otimizado, tornando o overhead da criação e troca de contexto dos threads o principal custo da transformação, como observado no decremento de desempenho da Figura da Pauli X. Os tempos de simulação, em cada estudo de caso, abrangendo os casos para 1, 2, 4 e 8 threads são descritos na Figura 1. Como analisado, os tempos de execução para as transformações Hadamards obtiveram os melhores desempenhos. As transformações Pauli X tiveram o seu tempo de execução aumentando conforme aumentava o número de threads, pois envolvem poucos cálculos, e seu tempo é dominado pela criação e troca de contexto dos threads. As otimizações realizadas e a implementação paralela representaram um ganho significativo no tempo de execução das transformações quânticas, permitindo a simulação de transformações de 18 qubits com elevado número de operações, como no caso das Hadamards. A continuidade do trabalho consiste na integração da biblioteca qGMC-Analyzer com o ambiente VPE-qGM além da expansão para suporte a transformações multiqubits e na implementação de aplicações em outras bibliotecas disponíveis, para comparação de desempenho entre diferentes ferramentas para suporte a simulação quântica.
A simulação de algoritmos quânticos a partir de computadores clássicos consiste em uma metodologia de estudo, desenvolvimento e validação que busca complementar a abordagem te orica aplicada nos estágios iniciais de construção dos algoritmos em questão. Entretanto, tal simulação é caracterizada por um elevado custo de processamento e armazenamento, exigindo recursos computacionais em larga escala. Visando a obtenção de soluções para uma simulação mais e ciente, este trabalho propõe uma metodologia de desenvolvimento caracterizada por duas etapas principais: (i) estudo teórico e implementação sequencial das abstrações de Processos Quânticos e Processos Quânticos Parciais de finidos no modelo qGM, visando a redução no consumo de memória associado à transformações quânticas multidimensionais; (ii) implementação paralela dessas abstrações para correspondente execução sobre a arquitetura massivamente paralela das GPUs. Os resultados obtidos neste trabalho contemplam a simulação sequencial de transformações quânticas controladas de até 24 qubits. No âmbito da simulação paralela, transformações Hadamard de até 20 qubits foram simuladas com speedup de 185 sobre uma simulação distribuída com 8 cores, caracterizando uma excelente melhora de desempenho no ambiente VPE-qGM com relação a suas limitações anteriores. Este trabalho estabelece as diretrizes para o desenvolvimento de extensões da biblioteca de simulação do ambiente e das capacidades de simulação paralela para transformações quânticas controladas e operações de medida.
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.
Este manual apresenta uma introdução técnica e aplicada à computação quântica, articulando os seus fundamentos físicos, matemáticos e computacionais com exemplos práticos de programação, simulação e análise de algoritmos. A obra explica a constituição de sistemas quânticos contemporâneos, incluindo processadores baseados em qubits supercondutores, infraestrutura criogénica, portas quânticas, superposição, interferência, medição e entrelaçamento. São desenvolvidos cálculos passo a passo para demonstrar a representação de estados quânticos, a aplicação de operadores matriciais e o comportamento probabilístico dos circuitos. O manual aborda ainda algoritmos como Grover e Shor, a utilização da biblioteca Qiskit e a diferença entre simulação clássica e execução em hardware quântico real. Em complemento, discute aplicações emergentes em química computacional, ciência dos materiais, investigação biomolecular, otimização e criptografia pós-quântica, destacando tanto o potencial transformador dessas tecnologias quanto as suas atuais limitações técnicas. A abordagem adotada procura diferenciar resultados já demonstrados experimentalmente de hipóteses, projeções e aplicações ainda em desenvolvimento, oferecendo uma visão crítica, pedagógica e cientificamente fundamentada sobre o papel da computação quântica na evolução da ciência e da engenharia.
Nos últimos anos tem sido dado uma grande atenção à computação quântica e o seu interesse tem sido intensificado em função do desenvolvimento de algoritmos que possibilitam a fatoração de números primos com velocidade superior à computação convencional. Algoritmos baseadas no controle de estados quânticos, ou simplesmente algoritmos quânticos, oferecem um ganho exponencial de eficiência em relação à algoritmos clássicos equivalentes. No entanto, a implementação experimental destes algoritmos esbarra em um grande obstáculo: a descoerência. Resultante da interação do sistema de interesse com o ambiente externo, a descoerência dificulta o controle de estados quânticos e a realização das operações que compõem os algoritmos.