Упражнение. Начало работы с оценщиком ресурсов Azure Quantum
В предыдущем уроке вы узнали, что оценка ресурсов Azure Quantum работает с помощью трех основных входных данных: физических параметров кубита, схемы исправления квантовых ошибок (QEC) и бюджета ошибок.
Давайте рассмотрим некоторые практические рекомендации по оценке ресурсов Azure Quantum. В этом уроке вы оцениваете физические ресурсы простой программы с помощью средства оценки ресурсов Azure Quantum.
Установка необходимых пакетов
Сначала установите последнюю версию Azure Quantum qsharp
и qsharp-widgets
пакеты.
python -m pip install --upgrade qsharp qsharp-widgets
Создание квантового алгоритма в записной книжке Jupyter
Чтобы приступить к работе с оценщиком ресурсов, необходимо оценить необходимые ресурсы для простого квантового алгоритма, который создает случайный бит.
Откройте Visual Studio Code.
Выберите представление > Командная палитра и выберите Создать: Новая записная книжка Jupyter.
В первой ячейке записной книжки импортируйте
qsharp
пакет:import qsharp from qsharp_widgets import EstimateDetails
Добавьте новую ячейку и скопируйте следующий код:
%%qsharp /// # Sample /// Random Bit /// /// # Description /// This Q# program generates a random bit by setting a qubit in a superposition /// of the computational basis states |0〉 and |1〉, and returning the measurement /// result. operation RandomBit() : Result { // Qubits are only accesible for the duration of the scope where they // are allocated and are automatically released at the end of the scope. use qubit = Qubit(); // Set the qubit in superposition by applying a Hadamard transformation. H(qubit); // Measure the qubit. There is a 50% probability of measuring either // `Zero` or `One`. let result = M(qubit); // Reset the qubit so it can be safely released. Reset(qubit); return result; }
Оценка квантового алгоритма
Теперь запустите средство оценки ресурсов, чтобы оценить физические ресурсы для операции RandomBit
. Если вы ничего не укажете, средство оценки ресурсов использует предположения по умолчанию, то есть модель qubit_gate_ns_e3
кубита, код исправления ошибок surface_code
и бюджет ошибки 0,001.
Добавьте новую ячейку и скопируйте следующий код:
result = qsharp.estimate("RandomBit()") result
Функция
qsharp.estimate
создает объект результата, который можно использовать для отображения таблицы с общим количеством физических ресурсов. В первой таблице показаны основные оценки физического ресурса. ОперацияRandomBit
требует 300 кубитов и принимает два микросекунда для выполнения на квантовом компьютере.Оценка физического ресурса Значение Параметры выполнения 2 микросекса rQOPS 3.00M Физические кубиты 300 Вы можете проверить сведения о затратах, совершите группы, которые содержат дополнительные сведения. Например, свернуть группу параметров логического кубита, чтобы увидеть, что расстояние кода равно 5, а количество физических кубитов на логический кубитов равно 50.
Логический параметр кубита Значение Схема QEC surface_code Расстояние от кода 5 Физические кубиты 50 Время логического цикла 2 микросекса Частота ошибок логического кубита 3.00E-5 Пересечение префактотора 0,03 Порог исправления ошибок 0,01 Формула логического цикла (4 * + twoQubitGateTime
2 * ) *oneQubitMeasurementTime
codeDistance
Формула физических кубитов 2 * codeDistance
*codeDistance
Поле можно использовать
jobParams
для доступа ко всем целевым параметрам, которые можно передать в выполнение задания, и узнать, какие значения по умолчанию были приняты:result['jobParams']
{'errorBudget': 0.001, 'qecScheme': {'crossingPrefactor': 0.03, 'errorCorrectionThreshold': 0.01, 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance', 'name': 'surface_code', 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'}, 'qubitParams': {'instructionSet': 'GateBased', 'name': 'qubit_gate_ns_e3', 'oneQubitGateErrorRate': 0.001, 'oneQubitGateTime': '50 ns', 'oneQubitMeasurementErrorRate': 0.001, 'oneQubitMeasurementTime': '100 ns', 'tGateErrorRate': 0.001, 'tGateTime': '50 ns', 'twoQubitGateErrorRate': 0.001, 'twoQubitGateTime': '50 ns'}}
Вы можете увидеть, что средство оценки ресурсов принимает модель
qubit_gate_ns_e3
кубита, код исправления ошибокsurface_code
и бюджет ошибки 0.001, которые являются значениями по умолчанию для оценки.
Изменение значений по умолчанию и оценка алгоритма
Если вы не хотите использовать значения по умолчанию, можно указать необязательные параметры. Давайте изменим модель кубита, схему QEC и бюджет ошибок.
Изменение модели кубита
Вы оцениваете стоимость того же алгоритма с помощью параметра кубита на основе Майораны, qubit_maj_ns_e6
. Для этого необходимо передать параметр qubitParams
и установить поле name
на значение qubit_maj_ns_e6
.
В новой ячейке скопируйте и запустите следующий код:
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
}})
EstimateDetails(result_maj)
Изменение схемы исправления квантовых ошибок
Вы оцениваете затраты для того же алгоритма с помощью параметров кубита на основе Майораны с помощью флоковой схемы QEC, qecScheme
. Для этого также необходимо передать параметр qecScheme
с полем name
, равным floquet_code
.
В новой ячейке скопируйте и запустите следующий код:
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
},
"qecScheme": {
"name": "floquet_code"
}})
EstimateDetails(result_maj)
Изменение бюджета ошибок
Затем оцените стоимость для тех же параметров, когда errorBudget
равно 10%. Для этого необходимо передать параметр errorBudget
со значением 0.1.
В новой ячейке скопируйте и запустите следующий код:
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
},
"qecScheme": {
"name": "floquet_code"
},
"errorBudget": 0.1})
EstimateDetails(result_maj)
Поздравляю! Вы успешно оценили физические ресурсы для простого квантового алгоритма с помощью средства оценки ресурсов Azure Quantum и настроили параметры, чтобы узнать, как они влияют на оценки ресурсов.
В следующем уроке вы настроите сложность и оцените ресурсы алгоритма Shor с помощью средства оценки квантовых ресурсов Azure.