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 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.
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
- 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.