Pular para o conteúdo principal

Fluxo de desenvolvimento

O termo padrão Qiskit descreve o fluxo de desenvolvimento para decompor problemas específicos de domínio e contextualizar as capacidades necessárias em etapas. Isso permite a composição contínua de novas capacidades desenvolvidas por pesquisadores da IBM Quantum® (e outros) e viabiliza um futuro em que tarefas de computação quântica sejam realizadas por uma poderosa infraestrutura de computação heterogênea (CPU/GPU/QPU). Blocos ou grupos de blocos executam as etapas de um padrão, com o Qiskit SDK fornecendo uma camada fundamental importante, apoiada por outras ferramentas ou serviços desenvolvidos pela IBM Quantum ou pela comunidade de código aberto quântico. Os padrões Qiskit permitem que especialistas de domínio especifiquem um problema e componham o conjunto de ferramentas (blocos) que realiza um padrão Qiskit. Esse padrão pode então ser executado localmente, por meio de serviços em nuvem, ou implantado com o Qiskit Serverless.

As quatro etapas de um padrão Qiskit são as seguintes:

  • Mapear o problema para circuits e operadores quânticos
  • Otimizar para o hardware alvo
  • Executar no hardware alvo
  • Pós-processar os resultados

Cada etapa é detalhada nas seções abaixo.

Mapear o problema para circuits e operadores quânticos

Esta etapa descreve como um usuário parte de um problema clássico e descobre como mapeá-lo para um computador quântico. Por exemplo, em aplicações como química e simulação quântica, esta etapa geralmente envolve a construção de um Circuit quântico que representa o Hamiltoniano que você está tentando resolver. Durante esta etapa, para certos problemas, pode ser desejável especificar o mapeamento do problema em qubits na rede heavy-hex (ou gross) do hardware da IBM® desde o início, se a estrutura do problema se prestar a uma otimização mais cedo. Também vale considerar neste ponto qual será o resultado do algoritmo específico em preparação para a etapa de execução posterior — por exemplo, se o resultado desejado envolver a inferência de funções de correlação usando testes de Hadamard, você pode se preparar para usar o Sampler, enquanto a especificação de observáveis usaria o Estimator e poderia oferecer muitas opções de mitigação de erros.

A saída desta etapa normalmente é uma coleção de circuits ou operadores quânticos que podem ser otimizados para o hardware na próxima etapa.

Otimizar para o hardware alvo

Nesta etapa, você pega os circuits abstratos (ou operadores) produzidos na etapa de mapeamento e realiza uma série de otimizações neles. Isso pode incluir mapear a rota e o layout do Circuit para o hardware físico de qubits, converter para as gates de base do hardware e reduzir o número de operações — tudo projetado para otimizar a probabilidade de sucesso na etapa de execução posterior. Neste ponto, você também pode querer testar seus circuits com um simulador antes de executar no hardware real na próxima etapa.

Durante esta etapa, os circuits abstratos devem ser transpilados para circuits da Arquitetura de Conjunto de Instruções (ISA). Um Circuit ISA é aquele que consiste apenas em gates compreendidas pelo hardware alvo (gates de base), e quaisquer gates multi-qubit necessárias para obedecer a restrições de conectividade (mapa de acoplamento). Apenas circuits ISA podem ser executados em hardware IBM usando o IBM Qiskit Runtime.

Executar no hardware alvo

Esta etapa envolve a execução dos seus circuits no hardware e produz as saídas da computação quântica. Os circuits ISA produzidos na etapa anterior podem ser executados usando uma primitiva Sampler ou Estimator do Qiskit Runtime, inicializada localmente no seu computador ou a partir de um cluster ou outro ambiente de computação heterogênea. Eles podem ser executados em um Batch, que permite transpilação paralela para eficiência computacional clássica — ou em uma Session, que permite que tarefas iterativas sejam implementadas de forma eficiente sem atrasos de fila. Durante esta etapa, há também a opção de configurar certas técnicas de supressão e mitigação de erros fornecidas pelo Qiskit Runtime.

Dependendo de você estar usando a primitiva Sampler ou Estimator, o resultado desta etapa será diferente. Se usar o Sampler, a saída serão medições por disparo na forma de bitstrings. Se usar o Estimator, a saída serão valores esperados de observáveis correspondentes a quantidades físicas ou funções de custo.

Pós-processar os resultados

Esta etapa final envolve reunir as saídas da etapa anterior para obter o resultado desejado. Isso pode envolver uma série de etapas de processamento clássico de dados, como visualização de resultados, técnicas de mitigação de erros de leitura, marginalização de distribuições de quase-probabilidade para obter resultados em conjuntos menores de qubits, ou pós-seleção com base em propriedades inerentes ao problema, como spin total, paridade ou conservação de partículas, removendo observáveis não físicos.

À medida que o campo avança da construção de circuits sob medida para fluxos de trabalho em escala utilitária, a flexibilidade e a facilidade com que os padrões Qiskit permitem que os usuários componham as diferentes etapas do padrão abrem a computação quântica para uma ampla variedade de aplicações e técnicas para uso fácil por cientistas computacionais quânticos.