Skip to main content
IBM Quantum Platform

Escolha o modo de execução correto

As cargas de trabalho em escala de utilidade podem levar muitas horas para serem concluídas, portanto, é importante que os recursos clássicos e quânticos sejam programados de forma eficiente para agilizar a execução. Os modos de execução oferecem flexibilidade para equilibrar a troca de custo e tempo e usar os recursos de forma ideal para suas cargas de trabalho. Há vários aspectos a serem considerados ao escolher o modo de execução a ser usado, como o tempo total de execução (tempo máximo de vida, ou TTL) e o tempo entre os trabalhos (TTL interativo).

Os benefícios de cada um estão resumidos abaixo:

  • Lote
    • Todo o lote de trabalhos é programado em conjunto e não há tempo adicional de fila para cada um deles.
    • A computação clássica dos trabalhos, como a compilação, é executada em paralelo. Portanto, executar vários trabalhos em um lote é significativamente mais rápido do que executá-los em série.
    • Normalmente, há um atraso mínimo entre os trabalhos, o que pode ajudar a evitar desvios.
    • Se você dividir sua carga de trabalho em vários trabalhos e executá-los em modo de lote, poderá obter resultados de trabalhos individuais, o que os torna mais flexíveis para trabalhar. Por exemplo, se os resultados de um trabalho não atenderem às suas expectativas, você poderá cancelar os trabalhos restantes. Além disso, se um trabalho falhar, você poderá reenviá-lo em vez de executar novamente toda a carga de trabalho.
    • Geralmente é mais barato do que as sessões.
  • Sessão
    • Todas as funcionalidades do modo em lote (mas exigindo maior uso; consulte Uso da carga de trabalho para obter mais detalhes sobre como o uso é calculado).
    • Acesso dedicado e exclusivo à QPU durante a janela ativa da sessão.
    • Útil para cargas de trabalho que não têm todas as entradas prontas desde o início, para cargas de trabalho iterativas que exigem pós-processamento clássico antes que a próxima possa ser executada e para experimentos que precisam ser executados da forma mais unida possível.
  • job
    • Mais fácil de usar ao executar um pequeno experimento.
    • Pode ser executado antes do modo em lote.

Recomendações e melhores práticas

Em geral, use o modo em lote, a menos que você tenha cargas de trabalho que não tenham todas as entradas prontas desde o início.

  • Use o modo em lote para enviar vários trabalhos primitivos simultaneamente para reduzir o tempo de processamento.

  • Use o modo de sessão para cargas de trabalho iterativas ou se você precisar de acesso dedicado à QPU.

  • Sempre use o modo de trabalho para enviar uma única solicitação primitiva.

  • Como as sessões geralmente são mais caras, recomenda-se que você use o lote sempre que não precisar dos benefícios adicionais do uso de sessões.

  • Os usuários do Open Plan não podem enviar trabalhos de sessão.

Para garantir o uso mais eficiente dos modos de execução, recomendamos as seguintes práticas:

  • Há um custo indireto fixo associado à execução de um trabalho. Em geral, se cada um de seus trabalhos usar menos de um minuto de tempo de QPU, considere combinar vários deles em um trabalho maior (isso se aplica a todos os modos de execução). o "tempo de QPU" refere-se ao tempo gasto pelo complexo de QPU para processar seu trabalho.

  • Se cada um de seus trabalhos consumir mais de um minuto de tempo de QPU, ou se a combinação de trabalhos não for prática, você ainda poderá executar vários trabalhos em paralelo. Todo trabalho passa pelo processamento clássico e quântico. Embora uma QPU possa processar apenas um trabalho por vez, até cinco trabalhos clássicos podem ser processados em paralelo. Você pode tirar proveito disso enviando vários trabalhos em lote ou no modo de execução de sessão.

As diretrizes acima são gerais, e você deve ajustar sua carga de trabalho para encontrar a proporção ideal, especialmente ao usar sessões. Por exemplo, se estiver usando uma sessão para obter acesso exclusivo a um backend, considere a possibilidade de dividir trabalhos grandes em trabalhos menores e executá-los em paralelo. Isso pode ser mais econômico porque pode reduzir o tempo de relógio de parede.


Exemplos

Executar um algoritmo variacional quântico

A execução de um algoritmo variacional quântico normalmente segue esse fluxo:

  1. Prepare o ansatz.
  2. Avalie a função de custo em uma QPU.
  3. Pegue o resultado da etapa anterior e execute-o em um otimizador clássico.
  4. Ajuste os parâmetros de acordo com o resultado de (3) e, em seguida, volte à etapa (2).

Nesse caso, se você estiver usando o modo de trabalho ou lote, cada trabalho gerado pela etapa (2) precisará voltar para a fila. Isso aumenta drasticamente a duração do experimento (tempo de relógio de parede) devido ao tempo de fila. Também pode levar mais tempo para convergir devido ao desvio do dispositivo. Ou seja, cada iteração deve lhe proporcionar um resultado melhor, mas o desvio do dispositivo pode piorar os resultados subsequentes.

Além disso, se você usar o PEA ou o PEC, poderá aprender o modelo de ruído uma vez e aplicá-lo aos trabalhos subsequentes ao executá-los em uma sessão dedicada. Isso geralmente não funciona com o modo de lote ou trabalho porque o modelo de ruído pode se tornar obsoleto no momento em que o próximo trabalho sair da fila.

Compare as configurações de mitigação de erros

Para comparar os efeitos dos métodos de atenuação de erros disponíveis, você pode seguir este fluxo:

  1. Construa um circuito e um observável.
  2. Envie trabalhos primitivos que usem diferentes combinações de configurações de atenuação de erros.
  3. Faça um gráfico dos resultados para observar os efeitos das várias configurações.

Nesse caso, todos os trabalhos (que são relacionados, mas independentes) estão disponíveis desde o início. Se você usar o modo em lote, eles serão agendados coletivamente, de modo que você só precisará esperar que eles passem pela fila uma vez. Além disso, como o objetivo é comparar os efeitos de vários métodos de atenuação de erros, é bom que eles sejam executados o mais próximo possível. Portanto, o lote seria uma boa opção. Você poderia executar esses trabalhos em uma sessão, mas como as sessões geralmente são mais caras, é recomendável usar o lote sempre que não precisar da funcionalidade adicional oferecida pelas sessões.


Próximas etapas

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.