Partilhar via


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

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

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

Pré-requisitos

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

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

Se você quiser usar Python no VS Code, você também precisa 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 Estimador de Recursos, você precisa do seguinte:

  • Uma conta do Azure com uma subscrição ativa. Se não tiver uma conta do Azure, registe-se gratuitamente e inscreva-se numa subscrição pré-paga.
  • Um espaço de trabalho do Azure Quantum. Para obter mais informações, consulte Criar um espaço de trabalho do Azure Quantum.

Envio em lote com o Resource Estimator

O Azure Quantum Resource Estimator permite que você envie trabalhos com várias configurações de parâmetros de trabalho, também chamados de itens, como um único trabalho para evitar a reexecuçã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 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 você pode querer 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 formato tabular.
  • Compare facilmente vários resultados em um gráfico.

Envio em lote de trabalhos usando idiomas diferentes

Selecione as guias desejadas para obter exemplos de lotes do Resource Estimator.

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

Você pode executar uma estimativa em lote passando uma lista de target parâmetros para o params qsharp.estimate parâmetro da 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)

Nota

Se tiver algum problema ao trabalhar com o Estimador de Recursos, consulte a página Resolução de problemas ou contacte AzureQuantumInfo@microsoft.com.