A computação clássica é cada vez mais desafiada com os problemas computacionais mais complexos de hoje - mesmo à escala dos nossos supercomputadores mais poderosos. Os computadores quânticos têm a promessa de ampliar drasticamente nossas capacidades de computação. Ao explorar as propriedades da física quântica para realizar cálculos, eles fornecem acelerações exponenciais para certos tipos de problemas. Por exemplo, computadores quânticos se saem excepcionalmente bem com problemas que exigem o cálculo de um grande número de combinações possíveis, frequentemente encontradas em cenários de otimização, simulação ou aprendizado de máquina.
No entanto, os componentes de computação quântica têm um modelo operacional diferente do software clássico. Normalmente, há um ou mais componentes de computação clássica que orquestram a execução de componentes quânticos. Esta orquestração inclui as seguintes atividades:
- Preparação de dados de cálculo
- Submissão de trabalhos de computação quântica a um ambiente quântico alvo
- Acompanhamento da execução de trabalhos
- Pós-processamento dos resultados do trabalho
Pode integrar esta orquestração com aplicações clássicas de uma de duas formas:
- Integração através de acoplamento apertado. A lógica para a orquestração de recursos quânticos é integrada no componente ou componentes clássicos.
- Integração através de acoplamento solto. 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 aplicações quânticas em cada um desses projetos. Cada implementação utiliza o Azure Quantum como o mecanismo de computação quântica, mas eles diferem ligeiramente em outros aspetos, conforme detalhado abaixo.
Abordagem estreitamente articulada
Potenciais casos de utilização
É preferível a abordagem estreitamente associada nos seguintes casos:
- Uma equipe possui o código quântico e o código clássico, e o código é integrado.
- Os componentes quânticos compartilham o mesmo ciclo de vida que os componentes clássicos.
- O uso dos componentes quânticos é limitado a uma única aplicação ou pequeno conjunto de aplicações relacionadas.
- O trabalho quântico representa uma solução especializada (por exemplo, uma simulação molecular) que será usada apenas por uma aplicação clássica especializada.
- O algoritmo implementado é híbrido quântico-clássico por natureza, por exemplo, Variational Quantum Eigensolvers (VQE) e Quantum Approximate Optimization Algorithms (QAOA).
Arquitetura
Transfira um ficheiro PowerPoint desta arquitetura.
Fluxo de dados
- Um usuário conectado aciona a execução de trabalho quântico por meio de um aplicativo cliente clássico.
- O aplicativo cliente coloca dados de entrada no Armazenamento do Azure.
- O aplicativo cliente envia o trabalho para um espaço de trabalho do Azure Quantum, especificando o destino ou destinos de execução. O cliente identifica o espaço de trabalho por meio de dados armazenados no Cofre de Chaves e se autentica no espaço de trabalho por meio de identidade gerenciada.
- Um provedor quântico executa o trabalho em um ambiente de destino.
- O aplicativo cliente monitora a execução do trabalho pesquisando o status do trabalho.
- Assim que o trabalho quântico terminar, o aplicativo cliente obterá o resultado da computação do armazenamento.
Este fluxo de trabalho implementa o padrão 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 espaço de trabalho, acessível a partir do portal do Azure, para ativos associados à execução de trabalhos quânticos em vários destinos. Os trabalhos são executados em simuladores quânticos 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 Cofre de Chaves protege e mantém o controle de chaves e outros segredos, como o nome do espaço de trabalho Azure Quantum.
- O Armazenamento do Azure fornece armazenamento para dados de entrada e resultados do provedor quântico.
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 circundantes, aplicam-se as considerações de disponibilidade habituais:
- Use as opções de redundância do Cofre da Chave .
- Se necessário, considere usar as opções de replicação no armazenamento.
Segurança
Ao contrário da arquitetura para a alternativa de acoplamento flexível, a arquitetura apresentada aqui baseia-se na suposição de que apenas um cliente acessa o espaço de trabalho do Azure Quantum. Esse cenário leva às seguintes configurações:
- Como o cliente é conhecido, você pode implementar a autenticação por meio da identidade gerenciada, associada ao aplicativo.
- Você pode implementar a limitação de solicitações e o armazenamento em cache dos resultados no próprio cliente.
Em geral, considere a aplicação dos padrões de design típicos para segurança , quando apropriado.
Abordagem de acoplamento flexível
Potenciais casos de utilização
Nestes casos, é preferível a abordagem de associação flexível:
- Você tem uma equipe dedicada de especialistas quânticos que fornecem centralmente a funcionalidade quântica para outras equipes e os componentes quânticos são desenvolvidos independentemente de qualquer componente cliente clássico.
- O trabalho quântico representa uma solução genérica (por exemplo, agendamento de tarefas) que pode ser reutilizada por vários aplicativos clássicos.
Arquitetura
Transfira um ficheiro PowerPoint desta arquitetura.
Fluxo de dados
- Um usuário conectado aciona a execução de trabalho quântico por meio de um aplicativo clássico.
- O aplicativo clássico chama a API de trabalho personalizada para enviar o trabalho.
- O gateway de API aciona a função Azure de envio de trabalho, que passa dados de entrada de trabalho.
- A função coloca os dados de entrada no Armazenamento do Azure.
- A função envia o trabalho para um espaço de trabalho do Azure Quantum, especificando o destino ou destinos de execução. A função identifica o espaço de trabalho por meio de dados armazenados no Azure Key Vault e se autentica no espaço de trabalho por meio da identidade gerenciada.
- Um provedor quântico executa o trabalho em um ambiente de destino.
- O aplicativo cliente monitora a execução do trabalho sondando o status do trabalho por meio de chamadas de API.
- O gateway de API monitora a execução do trabalho sondando o status do trabalho do provedor quântico.
- 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.
Este fluxo de trabalho implementa o padrão 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 espaço de trabalho, acessível a partir do portal do Azure, para ativos associados à execução de trabalhos quânticos em vários destinos. Os trabalhos são executados em simuladores quânticos 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 da API para o gerenciamento quântico de tarefas.
- O Azure Functions é usado para encaminhar as solicitações do cliente para 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 Azure Quantum.
- O Armazenamento do Azure fornece armazenamento para dados de entrada e resultados do provedor quântico.
Disponibilidade
A disponibilidade da funcionalidade de computação quântica é altamente dependente 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 circundantes, aplicam-se as considerações de disponibilidade habituais:
- Para alta disponibilidade, você pode implantar o Gerenciamento de API em várias zonas ou regiões.
- Se você usar a replicação geográfica, poderá provisionar o Azure Functions em várias regiões.
- Use as opções de redundância do Cofre da Chave .
- Se necessário, considere usar as opções de replicação no armazenamento.
Desempenho e Escalabilidade
O desempenho do aplicativo depende da disponibilidade e do desempenho dos alvos de computação quântica subjacentes. Para obter informações sobre o desempenho e a escalabilidade dos componentes clássicos, revise 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 para a alternativa fortemente acoplada, a arquitetura apresentada aqui baseia-se na suposição de que vários clientes acessam o espaço de trabalho do Azure Quantum por meio da API. Esse cenário leva às seguintes configurações:
- Os clientes devem autenticar-se na API. Você pode implementar essa autenticação usando políticas de autenticação.
- Você pode implementar a autenticação das funções do Azure por meio de identidades gerenciadas associadas às funções. Você pode usar essas identidades para autenticar no espaço de trabalho do Azure Quantum.
- Vários clientes acessam a API. Você pode implementar a limitação de solicitações usando a limitação de solicitações do Gerenciamento de API para proteger o back-end quântico e limitar o uso de recursos quânticos.
- Dependendo do padrão de solicitação, você poderá implementar o cache de resultados de computação quântica usando políticas de cache de Gerenciamento de API.
Em geral, considere a aplicação dos padrões de design típicos para segurança , quando apropriado.
Características comuns
Os recursos a seguir são comuns a modelos de implementação fortemente acoplados e fracamente acoplados
Alternativas
As arquiteturas apresentadas aqui são para 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 fornecer funcionalidade de IA podem ser uma alternativa.
Considerações
Alguns dos alvos quânticos do Azure (especialmente 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 de entradas de fila anteriores. Você pode obter o tempo de espera esperado listando os alvos disponíveis. Para calcular o tempo de resposta completo, você precisa adicionar o tempo gasto aguardando um recurso disponível ao tempo de execução do trabalho.
Desempenho e Escalabilidade
O desempenho do aplicativo depende da disponibilidade e do desempenho dos alvos de computação quântica subjacentes. Para obter informações sobre o desempenho e a escalabilidade dos componentes clássicos, revise os padrões de design típicos para escalabilidade e a lista de verificação de eficiência de desempenho.
Resiliência
Como os ambientes de destino quântico como o Azure Quantum normalmente fornecem correção de erro limitada (limitada ao processador quântico no caso do Azure Quantum), outros erros, como o tempo limite da máquina quântica, ainda podem ocorrer, portanto, é 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 transitório, implemente um padrão de nova tentativa. Envie os trabalhos por meio de chamadas assíncronas, com sondagem para o resultado, para evitar bloquear desnecessariamente o cliente chamador.
Como os recursos de computação quântica são normalmente limitados, as expectativas de resiliência devem considerar esse fator. Como tal, as sugestões oferecidas 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 realizada 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 fortemente acopladas e fracamente acopladas.
Arquitetura
Transfira um ficheiro PowerPoint desta arquitetura.
Fluxo de dados
- O desenvolvedor altera o código-fonte dos componentes do aplicativo.
- As alterações são confirmadas no repositório de código-fonte.
- Alterações no código quântico acionam o pipeline de construção quântica. O pipeline de compilação verifica o código, compila-o, estima os recursos necessários e executa o algoritmo em um simulador.
- O algoritmo quântico compilado é submetido a um ambiente quântico para teste.
- As alterações acionam um pipeline de construção para os componentes clássicos. O pipeline verifica o código, compila-o e executa testes de unidade e integração.
- A compilação e os testes bem-sucedidos acionam um pipeline de versão. O pipeline primeiro provisiona o ambiente do Azure implantando os modelos do Azure Resource Manager armazenados no repositório (Infraestrutura como Código).
- Artefatos de aplicativos clássicos compilados são implantados no Azure. Os trabalhos quânticos são enviados para um espaço de trabalho quântico durante o tempo de execução.
- O Application Insights monitora o comportamento, a integridade, o desempenho e as informações de uso do tempo de execução.
- Os itens da lista de pendências são atualizados conforme necessário, dependendo dos resultados do monitoramento.
- O desenvolvedor usa o Application Insights para feedback e otimização de aplicativos.
Componentes
Esta solução usa as seguintes ferramentas de DevOps:
- O Azure Repos fornece repositórios Git privados ilimitados hospedados na nuvem. Ele é usado aqui para armazenar o código quântico e clássico e os modelos do Azure Resource Manager que são usados para provisionar o ambiente.
- O Azure Pipelines permite que você crie, teste e implante continuamente na nuvem. Aqui, ele é usado para implementar CI/CD, incluindo o provisionamento do ambiente antes da implantação do código.
Como alternativa, você pode usar repositórios do GitHub e ações do GitHub para implementar os processos de CI/CD.
A solução usa os seguintes outros componentes:
- Um aplicativo cliente orquestra o trabalho quântico. Você pode implementar a integração usando uma abordagem fortemente acoplada ou fraca.
- O Azure Quantum fornece um espaço de trabalho para ativos associados à execução de aplicativos de computação quântica. Os trabalhos são executados em simuladores quânticos ou hardware quântico, dependendo do provedor escolhido.
- 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 espaço de trabalho 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, deteta anomalias do aplicativo, como baixo desempenho e falhas, e envia telemetria para o portal do Azure.
Otimização de custos
O custo geral desta solução depende do alvo de computação quântica que você selecionar para executar o trabalho quântico. Calcular os custos estimados para os componentes clássicos é simples. Pode utilizar 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 seu uso. Para obter detalhes, consulte a página de referência do provedor necessário para seu cenário. Essas páginas de referência estão listadas em Provedores de computação quântica no Azure Quantum.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelo seguinte colaborador.
Autor principal:
- Holger Sirtl - Brasil | Arquiteto Técnico Sênior no Microsoft Technology Center
Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.
Próximos passos
- Para obter uma visão geral do Microsoft Quantum, um ecossistema de computação quântica de nuvem aberta e full-stack, consulte Microsoft Quantum e conclua o caminho de aprendizado dos fundamentos da computação quântica.
- Para obter mais informações sobre o serviço Azure Quantum, consulte Azure Quantum.
- Para obter informações gerais sobre o gerenciamento de tarefas do Azure Quantum, consulte Trabalhar com trabalhos do Azure Quantum.
- Para obter informações sobre como executar algoritmos em hardware quântico, consulte o módulo Executar algoritmos em hardware quântico usando o Azure Quantum.