Compartilhar via


Como executar várias configurações de parâmetros com o Avaliador de target Recursos

Neste artigo, você aprenderá a executar várias configurações de parâmetros e compará-las usando o Avaliador de target Recursos do Azure Quantum.

Para obter informações sobre como executar o Avaliador de Recursos, consulte Diferentes maneiras de usar o Avaliador de Recursos.

Pré-requisitos

Os seguintes pré-requisitos são necessários para executar o Avaliador de Recursos:

Para executar Q# programas no Avaliador de Recursos, você precisa do seguinte:

Se você quiser usar o Python no VS Code, também precisará do seguinte:

  • Instale a versão mais recente das extensões Python e Jupyter para VS Code.

  • O pacote mais recente do Azure Quantum qsharp .

    python -m pip install --upgrade qsharp 
    

Para enviar trabalhos para o Avaliador de Recursos, você precisa do seguinte:

  • Uma conta do Azure com uma assinatura ativa. Se você não tiver uma conta do Azure, registre-se gratuitamente e inscreva-se para uma assinatura paga conforme o uso.
  • Um workspace do Azure Quantum. Para obter mais informações, confira Criar um workspace do Azure Quantum.

Envio em lote com o Avaliador de Recursos

O Avaliador de Recursos do Azure Quantum permite que você envie trabalhos com várias configurações de parâmetros de trabalho, também conhecidos como itens, como um único trabalho para evitar a repetição de vários trabalhos no mesmo programa quântico.

Um trabalho de estimativa de recursos consiste em dois tipos de parâmetros de trabalho:

  • Target parâmetros: modelo de qubit, esquemas QEC, orçamento de erro, restrições no nível do componente e unidades de destilação.
  • Argumentos de operação: argumentos que podem ser passados para o programa (se o ponto de entrada QIR contiver argumentos).

Um item consiste em uma configuração de parâmetros de trabalho, ou seja, uma configuração de parâmetros e argumentos de target operação. Vários itens são representados como uma matriz de parâmetros de trabalho.

Alguns cenários em que talvez você queira enviar vários itens como um único trabalho:

  • Envie vários target parâmetros com os mesmos argumentos de operação em todos os itens.
  • Envie vários target parâmetros com diferentes argumentos de operação em todos os itens.
  • Compare facilmente vários resultados em um formato tabular.
  • Compare facilmente vários resultados em um gráfico.

Trabalhos em lote usando idiomas diferentes

Selecione as guias desejadas para obter exemplos de envio em lote do Avaliador de Recursos.

Se você estiver estimando os recursos de um Q# programa, poderá executar várias configurações de target parâmetros, também conhecidas como envio em lote. O envio em lote pode Q# ser feito em um Jupyter Notebook no VS Code.

Você pode executar uma estimativa de lote passando uma lista de target parâmetros para o params parâmetro da qsharp.estimate função. O exemplo a seguir mostra como enviar duas configurações de target parâmetros como um único trabalho. A primeira configuração usa os parâmetros padrão target e a segunda configuração usa o qubit_maj_ns_e6 parâmetro qubit e o floquet_code esquema QEC.

No mesmo Jupyter Notebook do seu Q# programa, adicione uma nova célula e execute o seguinte código:

result_batch = qsharp.estimate("RunProgram()", params=
                [{}, # Default parameters
                {
                    "qubitParams": {
                        "name": "qubit_maj_ns_e6"
                    },
                    "qecScheme": {
                        "name": "floquet_code"
                    }
                }])
result_batch.summary_data_frame(labels=["Gate-based ns, 10⁻³", "Majorana ns, 10⁻⁶"])

Você também pode construir uma lista de parâmetros de estimativa target usando a EstimatorParams classe. O código a seguir mostra como enviar seis configurações de target parâmetros como um único trabalho.

from qsharp.estimator import EstimatorParams, QubitParams, QECScheme

labels = ["Gate-based µs, 10⁻³", "Gate-based µs, 10⁻⁴", "Gate-based ns, 10⁻³", "Gate-based ns, 10⁻⁴", "Majorana ns, 10⁻⁴", "Majorana ns, 10⁻⁶"]

params = EstimatorParams(num_items=6)
params.error_budget = 0.333
params.items[0].qubit_params.name = QubitParams.GATE_US_E3
params.items[1].qubit_params.name = QubitParams.GATE_US_E4
params.items[2].qubit_params.name = QubitParams.GATE_NS_E3
params.items[3].qubit_params.name = QubitParams.GATE_NS_E4
params.items[4].qubit_params.name = QubitParams.MAJ_NS_E4
params.items[4].qec_scheme.name = QECScheme.FLOQUET_CODE
params.items[5].qubit_params.name = QubitParams.MAJ_NS_E6
params.items[5].qec_scheme.name = QECScheme.FLOQUET_CODE

qsharp.estimate("RunProgram()", params=params).summary_data_frame(labels=labels)

Observação

Se você tiver algum problema ao trabalhar com o Avaliador de recursos, verifique a página Solução de problemas ou entre em contato com AzureQuantumInfo@microsoft.com.