Editar

Compartilhar via


Integração de computação quântica com aplicativos clássicos

Azure Quantum
Cofre de Chave do Azure
Microsoft Entra ID

A computação clássica tem sido cada vez mais desafiada com os problemas de computação mais complexos da atualidade, mesmo na dimensão de nossos supercomputadores mais poderosos. Os computadores quânticos prometem ampliar drasticamente as capacidades de computação. Explorando as propriedades da física quântica para realizar cálculos, eles ajudam a resolver certos tipos de problemas a velocidades exponenciais. Por exemplo, os computadores quânticos se saem excepcionalmente bem com problemas que exigem calcular um grande número de combinações possíveis, com frequência encontradas em cenários de otimização, simulação ou machine learning.

No entanto, os componentes de computação quântica têm um modelo operacional diferente daquele do software clássico. Geralmente, há um ou mais componentes de computação clássica que orquestram a execução de componentes quânticos. Essa orquestração inclui as seguintes atividades:

  • Preparação dos dados de entrada
  • Envio de trabalhos de computação quântica para um ambiente quântico de destino
  • Monitoramento da execução dos trabalhos
  • Pós-processamento dos resultados dos trabalhos

Você pode integrar essa orquestração a aplicativos clássicos de uma destas duas maneiras:

  • Integração via acoplamento apertado. A lógica da orquestração dos recursos quânticos é integrada ao(s) componente(s) clássico(s).
  • Integração via acoplamento fraco. A lógica para a orquestração de recursos quânticos é exposta como uma API que pode ser chamada por vários componentes de software clássicos.

Este artigo descreve como implementar aplicativos quânticos em cada um desses designs. Cada implementação utiliza o Azure Quantum como mecanismo de computação quântica, mas são ligeiramente diferentes em outros aspectos, conforme detalhado abaixo.

Abordagem de acoplamento apertado

Possíveis casos de uso

A abordagem de acoplamento apertado é a preferencial nestes casos:

  • Uma equipe tem tanto o código quântico quanto o clássico, e o código é integrado.
  • Os componentes quânticos compartilham o mesmo ciclo de vida dos componentes clássicos.
  • O uso dos componentes quânticos está limitado a um único aplicativo ou a um pequeno conjunto de aplicativos relacionados.
  • O trabalho quântico representa uma solução especializada (por exemplo, uma simulação molecular) que será usada apenas por um aplicativo clássico especializado.
  • O algoritmo implementado é híbrido quântico-clássico por natureza; por exemplo, VQE (Variational Quantum Eigensolvers) e QAOA (Quantum Approximate Optimization Algorithms).

Arquitetura

Diagrama de arquitetura apresentando um aplicativo híbrido que contém um trabalho de computação quântica altamente acoplado.

Baixe um arquivo do PowerPoint dessa arquitetura.

Fluxo de dados

  1. Um usuário conectado dispara a execução de um trabalho quântico por meio de um aplicativo cliente clássico.
  2. O aplicativo cliente coloca dados de entrada no Armazenamento do Azure.
  3. O aplicativo cliente envia o trabalho para um espaço de trabalho do Azure Quantum, especificando o(s) destino(s) de execução. O cliente identifica o espaço de trabalho por meio dos dados armazenados no Key Vault e é autenticado no espaço de trabalho via identidade gerenciada.
  4. Um provedor de computação quântica executa o trabalho em um ambiente de destino.
  5. O aplicativo cliente monitora a execução do trabalho sondando o status dele.
  6. Assim que o trabalho quântico é concluído, o aplicativo cliente obtém o resultado da computação do Armazenamento.

Esse fluxo de trabalho implementa o padrão de solicitação/resposta assíncrona e as etapas definidas para o ciclo de vida do trabalho do Azure Quantum.

Componentes

  • O Azure Quantum fornece um workspace, que pode ser acessado no portal do Azure, para ativos associados à execução de trabalhos quânticos ou de otimização em diversos destinos. Os trabalhos são executados em simuladores ou hardware quântico, dependendo do provedor escolhido.
  • O Microsoft Entra ID coordena a autenticação do usuário e ajuda a proteger o acesso ao espaço de trabalho do Azure Quantum.
  • O Key Vault protege e mantém o controle de chaves e outros segredos, como o nome do espaço de trabalho do Azure Quantum.
  • O Armazenamento do Azure fornece armazenamento para os dados de entrada e os resultados do provedor de computação quântica.

Disponibilidade

A disponibilidade da funcionalidade de computação quântica depende muito da disponibilidade e da base de instalação do provedor de computação quântica. Dependendo do destino de computação, o aplicativo cliente clássico pode enfrentar longos atrasos ou indisponibilidade do destino.

Para os serviços do Azure relacionados, se aplicam as considerações usuais de disponibilidade:

  • Use as opções de redundância do Key Vault.
  • Se necessário, considere usar as opções de replicação no Armazenamento.

Segurança

Ao contrário da arquitetura da alternativa com acoplamento fraco, a arquitetura apresentada aqui é baseada na suposição de que apenas um cliente acessa o espaço de trabalho do Azure Quantum. Esse cenários leva às seguintes configurações:

  • Como o cliente é conhecido, você pode implementar a autenticação via identidade gerenciada, associada ao aplicativo.
  • Você pode implementar a limitação de solicitações e o cache de resultados no próprio cliente.

De modo geral, considere aplicar os padrões de design comuns de segurança quando apropriado.

Abordagem de acoplamento fraco

Possíveis casos de uso

A abordagem de acoplamento fraco é a preferencial nestes casos:

  • Você tem uma equipe dedicada de especialistas em computação quântica que fornecem centralmente a funcionalidade quântica para outras equipes e os componentes quânticos são desenvolvidos independentemente de quaisquer componentes de cliente clássicos.
  • O trabalho quântico representa uma solução genérica (por exemplo, um agendamento de trabalho) que pode ser reutilizada por vários aplicativos clássicos.

Arquitetura

Diagrama de arquitetura apresentando um aplicativo híbrido que contém um trabalho de computação quântica livremente acoplado.

Baixe um arquivo do PowerPoint dessa arquitetura.

Fluxo de dados

  1. Um usuário conectado dispara a execução de um trabalho quântico por meio de um aplicativo clássico.
  2. O aplicativo clássico chama a API de trabalho personalizada para enviar o trabalho.
  3. O gateway de API dispara a função do Azure de envio de trabalho, que passa os dados de entrada do trabalho.
  4. A função coloca os dados de entrada no Armazenamento do Azure.
  5. A função envia o trabalho para um espaço de trabalho do Azure Quantum, especificando o(s) destino(s) de execução. A função identifica o espaço de trabalho por meio dos dados armazenados no Azure Key Vault e é autenticada no espaço de trabalho via identidade gerenciada.
  6. Um provedor de computação quântica executa o trabalho em um ambiente de destino.
  7. O aplicativo cliente monitora a execução do trabalho sondando o status dele por meio de chamadas de API.
  8. O gateway de API monitora a execução do trabalho sondando o status do trabalho no provedor de computação quântica.
  9. Quando o trabalho é concluído, os resultados da computação são armazenados no Armazenamento do Azure. O aplicativo cliente obtém os resultados usando uma API implementada por meio da função do Azure.

Esse fluxo de trabalho implementa o padrão de solicitação/resposta assíncrona e as etapas definidas para o ciclo de vida do trabalho do Azure Quantum.

Componentes

  • O Azure Quantum fornece um workspace, que pode ser acessado no portal do Azure, para ativos associados à execução de trabalhos quânticos ou de otimização em diversos destinos. Os trabalhos são executados em simuladores ou hardware quântico, dependendo do provedor escolhido.
  • O Microsoft Entra ID coordena a autenticação do usuário e ajuda a proteger o acesso ao espaço de trabalho do Azure Quantum.
  • O Gerenciamento de API é o gateway de API que expõe centralmente os pontos de extremidade de API para o gerenciamento de trabalhos quânticos.
  • O Azure Functions é usado para encaminhar as solicitações do cliente aos recursos quânticos apropriados.
  • O Azure Key Vault protege e mantém o controle de chaves e outros segredos, como o nome do espaço de trabalho do Azure Quantum.
  • O Armazenamento do Azure fornece armazenamento para os dados de entrada e os resultados do provedor de computação quântica.

Disponibilidade

A disponibilidade da funcionalidade de computação quântica depende altamente da disponibilidade e da base de instalação do provedor de computação quântica. Dependendo do destino de computação, o aplicativo cliente clássico pode enfrentar longos atrasos ou indisponibilidade do destino.

Para os serviços do Azure relacionados, se aplicam as considerações usuais de disponibilidade:

  • Para alta disponibilidade, você pode implantar o Gerenciamento de API em várias zonas ou regiões.
  • Se você usa a replicação geográfica, pode provisionar o Azure Functions em várias regiões.
  • Use as opções de redundância do Key Vault.
  • Se necessário, considere usar as opções de replicação no Armazenamento.

Desempenho e escala

O desempenho do aplicativo depende da disponibilidade e do desempenho dos destinos de computação quântica subjacentes. Para obter informações sobre o desempenho e a escalabilidade dos componentes clássicos, consulte os padrões de design típicos para escalabilidade e a lista de verificação de eficiência de desempenho.

Segurança

Ao contrário da arquitetura da alternativa de acoplamento apertado, a arquitetura apresentada aqui é baseada na suposição de que vários clientes acessam o espaço de trabalho do Azure Quantum por meio da API. Esse cenários leva às seguintes configurações:

De modo geral, considere aplicar os padrões de design comuns de segurança quando apropriado.

Recursos comuns

Os recursos a seguir são comuns aos modelos de implementação com acoplamento apertado e com acoplamento fraco

Alternativas

As arquiteturas apresentadas aqui destinam-se a problemas de negócios que exigem recursos de computação quântica para suas tarefas de computação. Para alguns desafios de computação, os serviços existentes criados para executar computação de alto desempenho ou para fornecer funcionalidade de IA podem ser uma alternativa.

Considerações

Alguns dos destinos de computação quântica do Azure (principalmente em termos de hardware quântico) serão um recurso limitado no futuro previsível. O acesso a esses recursos é implementado por meio de um mecanismo de enfileiramento. Quando você envia um trabalho quântico para o Azure Quantum, esse trabalho é adicionado a uma fila de trabalhos. O trabalho será executado assim que o destino concluir o processamento das entradas iniciais da fila. Você pode obter o tempo de espera almejado listando os destinos disponíveis. Para calcular o tempo de resposta completo, você precisa adicionar o tempo gasto esperando um recurso disponível ao tempo de execução do trabalho.

Desempenho e escala

O desempenho do aplicativo depende da disponibilidade e do desempenho dos destinos de computação quântica subjacentes. Para obter informações sobre o desempenho e a escalabilidade dos componentes clássicos, consulte os padrões de design típicos para escalabilidade e a lista de verificação de eficiência de desempenho.

Resiliência

Pelo fato de os ambientes de destino quântico, como o Azure Quantum, normalmente fornecerem correção de erro limitada (limitada ao processador quântico, no caso do Azure Quantum), ainda podem ocorrer outros erros, como tempo limite do computador quântico; por isso é recomendável monitorar a execução do trabalho para que você possa informar o usuário sobre o status do trabalho. Quando a execução do trabalho falhar devido a um erro temporário, implemente um padrão de repetição. Envie os trabalhos por meio de chamadas assíncronas, com sondagem do resultado, para evitar o bloqueio desnecessário do cliente de chamada.

Como os recursos de computação quântica normalmente são limitados, as expectativas de resiliência devem levar esse fator em conta. Desse modo, as sugestões apresentadas neste artigo podem fornecer medidas adicionais de resiliência.

DevOps

A incorporação de trabalhos quânticos em pipelines clássicos de CI/CD pode ser feita usando o Azure DevOps com pequenas alterações em um design típico. O design abaixo ilustra um fluxo de trabalho de pipeline de DevOps que pode ser aplicado às arquiteturas de acoplamento apertado e acoplamento fraco.

Arquitetura

Diagrama de arquitetura apresentando um pipeline de CI/CD clássico com o Azure Quantum incorporado.

Baixe um arquivo do PowerPoint dessa arquitetura.

Fluxo de dados

  1. O desenvolvedor altera o código-fonte dos componentes do aplicativo.
  2. As alterações são confirmadas no repositório do código-fonte.
  3. As alterações no código quântico disparam o pipeline de build quântico. O pipeline de build verifica o código, compila-o, avalia os recursos necessários e executa o algoritmo em um simulador.
  4. O algoritmo quântico compilado é enviado para um ambiente quântico para teste.
  5. As alterações disparam um pipeline de build para os componentes clássicos. O pipeline verifica o código, compila-o e executa testes de unidade e integração.
  6. A compilação e os testes bem-sucedidos disparam um pipeline de lançamento. Primeiro, o pipeline provisiona o ambiente do Azure implantando os modelos do Azure Resource Manager que são armazenados no repositório (Infraestrutura como Código).
  7. Os artefatos de aplicativo clássicos compilados são implantados no Azure. Os trabalhos quânticos são enviados para um workspace quântico durante o runtime.
  8. O Application Insights monitora o comportamento, a integridade, o desempenho e as informações de uso do runtime.
  9. Os itens da lista de pendências do produto são atualizados conforme necessário, dependendo dos resultados do monitoramento.
  10. O desenvolvedor usa o Application Insights para comentários e otimização do aplicativo.

Componentes

Esta solução usa as seguintes ferramentas DevOps:

  • Azure Repos: oferece repositórios git privados ilimitados e hospedados na nuvem. Ele é usado aqui para armazenar o código quântico e clássico e os modelos do Azure Resource Manager usados para provisionar o ambiente.
  • O Azure Pipelines permite que você crie, teste e implante continuamente na nuvem. Aqui, ele é usado para implementar a CI/CD, incluindo o provisionamento de ambiente antes da implantação do código.

Como alternativa, você pode usar os repositórios e as ações do GitHub para implementar os processos de CI/CD.

A solução usa os seguintes componentes:

  • Um aplicativo cliente orquestra o trabalho quântico. Você pode implementar a integração usando uma abordagem menos rígida ou mais rígida.
  • O Azure Quantum fornece um workspace para ativos associados à execução de aplicativos de computação quântica. Os trabalhos são executados em simuladores ou hardware quântico, dependendo do provedor que você escolheu.
  • O Microsoft Entra ID coordena a autenticação do usuário e protege o acesso ao espaço de trabalho do Azure Quantum.
  • O Azure Key Vault protege e mantém o controle de chaves e outros segredos, como o nome do workspace quântico.
  • O Armazenamento do Azure contém os dados de entrada e saída do trabalho quântico.
  • O Application Insights monitora o aplicativo, detecta anomalias do aplicativo como falhas e baixo desempenho, e envia a telemetria ao portal do Azure.

Otimização de custo

O custo geral dessa solução depende do destino de computação quântica escolhido para executar o trabalho quântico. O cálculo dos custos estimados dos componentes clássicos é simples. Você pode usar a calculadora de preços do Azure.

Para o serviço Azure Quantum, considere que os provedores de Computação quântica podem ser consumidos por meio de uma oferta do Azure Marketplace. O preço depende do tipo de recurso (simulador ou hardware), da SKU e do uso. Para obter detalhes, consulte a página de referência do provedor de que você precisa para o seu cenário. Essas páginas de referência estão listadas em Provedores de computação quântica no Azure Quantum.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi escrito originalmente pelos colaboradores a seguir.

Autor principal:

  • Holger Sirtl | Arquiteto Técnico Sênior no Centro de Tecnologia Microsoft

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas