Partilhar via


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

Neste artigo, vai aprender a executar múltiplas configurações de target parâmetros e compará-los com o Avaliador de Recursos do Azure Quantum.

Para obter informações sobre como executar o Avaliador de Recursos, veja Diferentes formas de utilizar o Avaliador de Recursos.

Pré-requisitos

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

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

Se quiser utilizar o Python no VS Code, também precisa do seguinte:

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

  • O mais recente pacote do Azure Quantum qsharp .

    python -m pip install --upgrade qsharp 
    

Para submeter tarefas ao Avaliador de Recursos, precisa do seguinte:


Batching with the Resource Estimator

O Avaliador de Recursos do Azure Quantum permite-lhe submeter tarefas com múltiplas configurações de parâmetros de tarefas, também referidos como itens, como uma única tarefa para evitar executar novamente várias tarefas no mesmo programa quântico.

Uma tarefa de estimativa de recursos consiste em dois tipos de parâmetros de tarefa:

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

Um item consiste numa configuração de parâmetros de tarefa, que é uma configuração de target parâmetros e argumentos de operação. Vários itens são representados como uma matriz de parâmetros de tarefa.

Alguns cenários em que poderá querer submeter vários itens como uma única tarefa:

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

Se estiver a estimar os recursos de um Q# programa, pode executar várias configurações de target parâmetros, também conhecidos como batching. O batching com Q# pode ser feito num Jupyter Notebook no VS Code.

Pode efetuar uma estimativa de lote ao transmitir uma lista de target parâmetros para o params parâmetro da qsharp.estimate função. O exemplo seguinte mostra como submeter duas configurações de target parâmetros como uma única tarefa. A primeira configuração utiliza os parâmetros predefinidos target e a segunda configuração utiliza o qubit_maj_ns_e6 parâmetro qubit e o floquet_code esquema QEC.

No mesmo Jupyter Notebook do programaQ#, 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⁻⁶"])

Também pode construir uma lista de parâmetros de estimativa target com a EstimatorParams classe. O código seguinte mostra como submeter seis configurações de target parâmetros como uma única tarefa.

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 Avaliador de Recursos, consulte a página Resolução de problemas ou contacte AzureQuantumInfo@microsoft.com.