Pular para o conteúdo principal

Introdução ao Qiskit

O nome "Qiskit" é um termo geral que se refere a uma coleção de softwares para executar programas em computadores quânticos. Entre essas ferramentas, destacam-se o Qiskit SDK de código aberto e o ambiente de execução (acessado pelo Qiskit Runtime), por meio do qual você pode executar cargas de trabalho em unidades de processamento quântico (QPUs) da IBM®. À medida que a tecnologia quântica evolui, o Qiskit também evolui, com novas capacidades lançadas a cada ano que expandem essa coleção central de softwares quânticos.

Além disso, muitos projetos de código aberto fazem parte do ecossistema mais amplo do Qiskit. Essas ferramentas de software não são parte do Qiskit em si, mas sim se integram a ele e podem fornecer funcionalidades adicionais valiosas.

A IBM está comprometida com o desenvolvimento responsável da computação quântica. Saiba mais e revise nossos princípios de computação quântica responsável no tópico Computação quântica responsável.

O Qiskit SDK

O Qiskit SDK (nome do pacote qiskit) é um SDK de código aberto para trabalhar com computadores quânticos no nível de Circuits quânticos estendidos (estáticos, dinâmicos e agendados), operadores e primitivas. Esta biblioteca é o componente central do Qiskit; é o maior pacote sob o nome Qiskit, com o conjunto mais abrangente de ferramentas para computação quântica, e muitos outros componentes se integram a ele.

Alguns dos recursos mais úteis do Qiskit SDK incluem:

  • Ferramentas de construção de Circuit (qiskit.circuit) - Para inicializar e manipular registradores, circuits, instruções, gates, parâmetros e objetos de fluxo de controle.

  • Biblioteca de Circuit (qiskit.circuit.library) - Uma vasta gama de circuits, instruções e gates — blocos de construção fundamentais para computações quânticas baseadas em circuit.

  • Biblioteca de informações quânticas (qiskit.quantum_info) - Um conjunto de ferramentas para trabalhar com estados quânticos, operadores e canais, usando cálculos exatos (sem ruído de amostragem). Use este módulo para especificar observáveis de entrada e analisar a fidelidade das saídas de consultas às primitivas.

  • Transpiler (qiskit.transpiler) - Para transformar e adaptar Circuits quânticos à topologia específica de um dispositivo e otimizar a execução em unidades de processamento quântico (QPUs) reais.

  • Primitivas (qiskit.primitives) - O módulo que contém as definições base e implementações de referência das primitivas Sampler e Estimator, a partir das quais diferentes provedores de hardware quântico podem derivar suas próprias implementações. Veja mais informações sobre as primitivas do Qiskit Runtime na documentação.

Instalação

Para uma introdução mais detalhada sobre a instalação do Qiskit SDK, consulte a página de instalação. Se você estiver pronto para instalá-lo agora, basta executar:

pip install qiskit

Benchmarking e o pacote Benchpress

O benchmarking é importante para comparar o desempenho relativo de softwares quânticos em diferentes etapas de um fluxo de desenvolvimento. Testes de benchmarking para softwares quânticos podem, por exemplo, analisar a velocidade e a qualidade da construção, manipulação e transpilação de circuits. A IBM Quantum está comprometida em entregar o SDK mais eficiente possível e, para isso, o Qiskit SDK é avaliado com mais de 1.000 testes desenvolvidos por universidades renomadas, laboratórios nacionais e pesquisadores da IBM. O conjunto de benchmarking usado nesses testes, chamado Benchpress, está agora disponível como um pacote de código aberto. Você pode usar o pacote Benchpress para realizar sua própria análise do desempenho do SDK quântico.

Qiskit Runtime

O Qiskit Runtime é um serviço baseado em nuvem para executar computações quânticas no hardware do IBM Quantum®. O pacote qiskit-ibm-runtime é um cliente desse serviço e é o sucessor do Qiskit IBM Provider. O serviço Qiskit Runtime simplifica as computações quânticas e fornece implementações otimizadas das primitivas do Qiskit para o hardware da IBM Quantum. Para começar com as primitivas do Qiskit Runtime, visite a documentação.

O Qiskit Runtime foi projetado para usar recursos adicionais de computação clássica e quântica, incluindo técnicas como supressão de erros e mitigação de erros, a fim de retornar um resultado de maior qualidade ao executar Circuits quânticos em processadores quânticos. Exemplos incluem o desacoplamento dinâmico para supressão de erros, e a mitigação de leitura e a extrapolação de ruído zero (ZNE) para mitigação de erros. Saiba como configurar essas opções na página Configurar mitigação de erros.

O Qiskit Runtime também inclui três tipos de modos de execução para rodar seu programa quântico no hardware da IBM: Job, Session e Batch,, cada um com diferentes casos de uso e implicações para a fila de jobs quânticos. Um Job é uma única consulta a uma primitiva que pode ser executada por um número especificado de shots. Sessions permitem que você execute vários jobs de forma eficiente em cargas de trabalho iterativas em computadores quânticos. O modo Batch permite que você envie todos os seus jobs de uma vez para processamento paralelo. Observe que usuários do Plano Open não podem enviar jobs de session.

Para instalar o Qiskit Runtime rapidamente, execute o seguinte comando:

pip install qiskit-ibm-runtime

Mais detalhes sobre como configurar um ambiente de desenvolvimento para criar programas quânticos podem ser encontrados na página de instalação.

O Qiskit Runtime é de código aberto?

A resposta curta é: não todo ele. O software do serviço Qiskit Runtime, que lida com os detalhes técnicos de execução do seu programa quântico em um dispositivo IBM Quantum (incluindo qualquer mitigação e supressão de erros), não é de código aberto. No entanto, o cliente do Qiskit Runtime (a interface para os usuários acessarem o serviço Qiskit Runtime), o Qiskit SDK rodando no lado do servidor e alguns dos softwares usados para mitigação de erros são de código aberto. Para se envolver com os esforços de código aberto do Qiskit, visite nossa organização no GitHub em github.com/Qiskit e github.com/Qiskit-Extensions.

Qiskit Serverless

A criação de aplicações quânticas em escala de utilidade geralmente exige uma variedade de requisitos de recursos computacionais. O Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) fornece uma interface simples para executar cargas de trabalho em recursos quântico-clássicos. Isso inclui a implantação de programas na IBM Quantum Platform e a execução remota de cargas de trabalho, além de gerenciamento fácil de recursos para casos de uso de computação multi-nuvem e supercomputação centrada em quântica. Veja mais informações na documentação do Qiskit Serverless sobre como usar essa coleção de ferramentas para:

  • Paralelizar tarefas clássicas, como pré-processamento e pós-processamento
  • Manter cargas de trabalho de longa duração na nuvem, mesmo que seu laptop esteja desligado
  • Implantar programas reutilizáveis na nuvem

Para começar a usar o Qiskit Serverless imediatamente, instale-o com pip:

pip install qiskit_serverless

Qiskit Functions

As Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) são serviços abstratos projetados para acelerar a descoberta de algoritmos e a prototipagem de aplicações. Explore o Catálogo de Qiskit Functions, incluindo:

  • Circuit functions: Serviços que incluem transpilação, supressão de erros, mitigação de erros e técnicas de pós-processamento que recebem circuits abstratos e observáveis de medição desejados como entrada. Com as Circuit functions, os usuários podem descobrir novos algoritmos e aplicações sem precisar gerenciar a transpilação ou o desempenho do hardware quântico.
  • Application functions: Serviços que incluem fluxos de trabalho quânticos completos, desde o mapeamento do clássico para o quântico, otimização para o hardware, execução no hardware e pós-processamento. Os usuários podem prototipar aplicações industriais com entradas e saídas familiares ao domínio.

Membros dos Planos Premium, Flex e On-Prem (via IBM Quantum Platform API) podem acessar as funções fornecidas pela IBM imediatamente ou adquirir licenças para as funções fornecidas por parceiros diretamente com esses parceiros.

O catálogo pode ser instalado com pip:

pip install qiskit-ibm-catalog

Qiskit Transpiler Service

O Qiskit Transpiler Service (nome do pacote qiskit-ibm-transpiler) é um novo serviço experimental que fornece capacidades de transpilação remota na nuvem para usuários dos Planos IBM Quantum Premium, Flex e On-Prem (via IBM Quantum Platform API). Além das capacidades locais do Transpiler do Qiskit SDK, suas tarefas de transpilação podem se beneficiar tanto dos recursos de nuvem da IBM Quantum quanto de passes de Transpiler com tecnologia de IA ao usar esse serviço. Para saber mais sobre como integrar a transpilação baseada em nuvem ao seu fluxo de trabalho no Qiskit, você pode consultar a documentação.

O serviço de transpilação pode ser instalado com pip:

pip install qiskit-ibm-transpiler

Qiskit addons

Os Qiskit addons são uma coleção de capacidades de pesquisa para a descoberta de algoritmos em escala de utilidade. Essas capacidades se baseiam na fundação de alto desempenho do Qiskit para criar e executar algoritmos quânticos. Os addons são componentes de software modulares que se conectam a um fluxo de trabalho para escalar ou projetar novos algoritmos quânticos. Para saber mais sobre o conjunto de Qiskit addons disponíveis e como começar a usá-los, visite a documentação.

Há vários addons dependendo da capacidade de pesquisa em que você está interessado. Cada um deles pode ser instalado com pip.

Diagonalização quântica baseada em amostras (SQD):

pip install qiskit-addon-sqd

Compilação quântica aproximada (AQC):

pip install qiskit-addon-aqc-tensor[quimb-jax]

Retropropagação de operadores (OBP):

pip install qiskit-addon-obp

Fórmulas de múltiplos produtos (MPF):

pip install qiskit-addon-mpf

O ecossistema Qiskit

Além do Qiskit, há muitos projetos de código aberto que usam o nome "Qiskit", mas não fazem parte do Qiskit em si; em vez disso, eles se integram ao Qiskit e podem fornecer funcionalidades adicionais valiosas para complementar o fluxo de trabalho central do Qiskit. Alguns desses projetos são mantidos por equipes da IBM Quantum, enquanto outros são apoiados pela comunidade de código aberto em geral. O Qiskit SDK é projetado de forma modular e extensível para facilitar que desenvolvedores criem projetos como esses que ampliam suas capacidades.

Alguns projetos populares no ecossistema Qiskit incluem:

  • Qiskit Aer (qiskit-aer) - um pacote para simuladores de computação quântica com modelos de ruído realistas. Ele fornece interfaces para executar Circuits quânticos com ou sem ruído usando diferentes métodos de simulação. Mantido pela IBM Quantum.
  • qBraid SDK (qbraid) - um framework de execução quântica agnóstico de plataforma para provedores de software e hardware quântico, projetado para simplificar o gerenciamento completo do ciclo de vida de jobs quânticos — desde a definição das especificações do programa até o envio do job e o pós-processamento e visualização dos resultados. Mantido pela qBraid.
  • mthree mthree - um pacote para implementar M3 (Mitigação de Medição Sem Matriz), uma técnica de mitigação de medição que resolve probabilidades de medição corrigidas usando uma etapa de redução de dimensionalidade seguida por fatoração LU direta ou um método iterativo pré-condicionado que converge nominalmente em O(1) passos, e pode ser computado em paralelo. Mantido pela IBM Quantum.

Você pode encontrar um catálogo de projetos na página do ecossistema Qiskit, bem como informações sobre como nomear seu próprio projeto.

Próximos passos

Recomendações
  • Conheça a biblioteca de circuits e instruções disponível na biblioteca de circuit do Qiskit.
  • Leia sobre o Transpiler do Qiskit e as diversas opções de transpilação na seção Transpiler.
  • Descubra como usar as primitivas do Qiskit para simplificar a programação quântica.