Поставщик IonQ

Совет

Впервые пользователи автоматически получают бесплатные кредиты Azure Quantum в размере 500 долл. США для использования с каждым участвующим поставщиком квантового оборудования. Если вы используете все кредиты и вам потребуются дополнительные, вы можете подать заявку на участие в программе кредитов Azure Quantum.

Квантовые компьютеры IonQ выполняют вычисления путем управления состояниями энергии сверхтонкого взаимодействия в ионах иттербия с помощью лазеров. Атомы — это естественные кубиты, все кубиты идентичны в пределах одной программы и между программами. Логические операции также можно выполнять с любой произвольной парой кубитов, что позволяет создавать сложные квантовые программы, в которых нет проблемы с физическими связями. Хотите узнать больше? Ознакомьтесь с кратким обзором технологии квантового компьютера с захваченным ионом от IonQ.

  • Издатель: IonQ
  • Идентификатор поставщика: ionq

У этого поставщика доступны следующие targets компоненты:

Имя целевого объекта Идентификатор целевого объекта Количество кубит Описание
Квантовый симулятор ionq.simulator 29 кубит Облачный идеализированный симулятор IonQ. Бесплатно.
IonQ Harmony ionq.qpu 11 кубит Компьютер IonQ для квантовых вычислений на захваченных ионах.
IonQ Aria 1 ionq.qpu.aria-1 25 кубитов Квантовый компьютер IonQ Aria на захваченных ионах.
IonQ Aria 2 ionq.qpu.aria-2 25 кубитов Квантовый компьютер IonQ Aria на захваченных ионах.
IonQ Forte ionq.qpu.forte 32 кубита Квантовый компьютер Forte захваченного иона IonQ. Доступно только в закрытой предварительной версии.

IonQ соответствует targets профилю No Control Flow . Дополнительные сведения об этом target профиле и его ограничениях см. в статье Основные сведения target о типах профилей в Azure Quantum.

Квантовый симулятор

Идеализированный симулятор с ускорением GPU, поддерживающий до 29 кубитов, с использованием одного набора ворот IonQ, доступного на собственном оборудовании для квантовых вычислений — отличное место для предварительной проверки заданий перед их запуском на реальном компьютере для квантовых вычислений.

  • Тип задания: Simulation
  • Формат данных: ionq.circuit.v1
  • Идентификатор целевого объекта: ionq.simulator
  • Целевой профиль выполнения: No Control Flow

Квантовый компьютер IonQ Harmony

IonQ Harmony — это квантовый компьютер на основе технологии захваченных ионов с возможностью программного изменения конфигурации для использования максимум 11 кубит. Все кубиты находятся в полноценной связи, то есть между любой парой кубитов можно запустить двухкубитные ворота.

  • Тип задания: Quantum Program
  • Формат данных: ionq.circuit.v1
  • Идентификатор целевого объекта: ionq.qpu
  • Целевой профиль выполнения: No Control Flow
имени параметра Тип Обязательно Описание
shots int Нет Число экспериментальных снимков. По умолчанию: 500.

Тайминг системы

Мера Средняя продолжительность (мкс)
T1 >10^7
T2 200 000
Однокубитные ворота 10
Двухкубитные ворота 210
Считывание данных 100
Сброс регистра 25
Время когерентности / продолжительность ворот 1667

Точность системы

Операция Средняя точность
Однокубитные ворота 99,35 % (коррекция SPAM)
Двухкубитные ворота 96,02 % (без коррекции SPAM)
SPAM* 99,3 – 99,8 %
Операция среднего геометрического 98,34 %

* Подготовка и измерение состояния (SPAM). Это измерение определяет, насколько точно квантовый компьютер может задать для кубита исходное состояние, а затем измерить результат.

Квантовый компьютер IonQ Aria

IonQ Aria является флагманом квантовых компьютеров IonQ с 25-кубитной динамически перенастраивываемой системой. Дополнительные сведения см. в разделе IonQ Aria (ionq.com).

Важно!

Debiasing включена в системах Aria по умолчанию, и на отправленные задания распространяется расценки на основе debiasing. Дополнительные сведения об отключении и включении службы см. в разделе Устранение ошибок.

  • Тип задания: Quantum Program
  • Формат данных: ionq.circuit.v1
  • Идентификатор целевого объекта: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Целевой профиль выполнения: No Control Flow
имени параметра Тип Обязательно Описание
shots int Нет Число экспериментальных снимков.

Тайминг системы

Мера Средняя продолжительность времени
T1 10–100 с
T2 1 с
Однокубитные ворота 135 мкс
Двухкубитные ворота 600 мкс

Точность системы

Операция Средняя точность
Однокубитные ворота 99,95 % (исправлена спама)
Двухкубитные ворота 99,6% (не исправлена спам)
SPAM* 99.61%

* Подготовка и измерение состояния (SPAM). Это измерение определяет, насколько точно квантовый компьютер может задать для кубита исходное состояние, а затем измерить результат.

Компьютер Aria IonQ предоставляется с планом Azure Quantum Credits и отдельным планом выставления счетов. Дополнительные сведения см. в разделе Цены на Azure Quantum.

Квантовый компьютер IonQ Forte

IonQ Forte — это самый производительный, коммерчески доступный квантовый компьютер IonQ. Благодаря 32-кубитной программно-конфигурируемой системе IonQ Forte доступна в закрытой предварительной версии в Azure Quantum. Дополнительные сведения см. в разделе IonQ Forte (ionq.com).

Важно!

Debiasing включена в системе Forte по умолчанию, и на отправленные задания распространяется расценки на основе дебиайсинга. Дополнительные сведения об отключении и включении службы см. в разделе Устранение ошибок.

  • Тип задания: Quantum Program
  • Формат данных: ionq.circuit.v1
  • Идентификатор целевого объекта: ionq.qpu.forte
  • Целевой профиль выполнения: No Control Flow
имени параметра Тип Обязательно Описание
shots int Нет Число экспериментальных снимков.

формат входных данных

В Q# выходными данными квантового измерения является значение типа Result, которое может принимать только значения Zero и One. При определении операции Q# ее можно отправить на оборудование IonQ только в том случае, если тип возвращаемого значения является коллекцией Resultобъектов , то есть если выходные данные операции являются результатом квантового измерения. Причина этого заключается в том, что IonQ создает гистограмму на основе возвращаемых значений, поэтому ограничивает тип возвращаемого значения до Result , чтобы упростить создание этой гистограммы.

IonQ targets соответствует No Control Flow profile. Этот профиль не может выполнять квантовые операции, требующие использования результатов измерений кубитов для управления потоком программы.

Примечание

В настоящее время вы не можете отправлять квантовые программы, которые применяют операции к кубитам, измеренным в No Control Flowtargets, даже если вы не используете результаты для управления потоком программы. То есть No Control Flowtargets не разрешайте измерения в середине цепи.

Например, следующий код не может выполняться в No Control Flowtarget:

operation MeasureQubit(q : Qubit) : Result { 
   return M(q); 
}

operation SampleMeasuredQubit(q : Qubit) : Result {
    H(MeasureQubit(q));
    return M(MeasureQubit(q));
}

Формат вывода

При отправке квантовой программы в симулятор IonQ она возвращает гистограмму, созданную измерениями. Симулятор IonQ не выполняет выборку распределения вероятности, созданного квантовой программой, а возвращает распределение, масштабируемое до количества снимков. Это наиболее очевидно при отправке одного выстрела цепи. Вы увидите несколько результатов измерения в гистограмме для одного снимка. Это поведение присуще симулятору IonQ, в то время как QPU IonQ фактически запускает программу и агрегирует результаты.

Дополнительные возможности

Дополнительные возможности, поддерживаемые оборудованием IonQ, перечислены здесь.

Функция Описание
Устранение ошибок Использование debiasing для минимизации шума и максимальной производительности алгоритмов на оборудовании IonQ
Поддержка собственных шлюзов Определение и выполнение каналов непосредственно на аппаратных шлюзах IonQ
Моделирование модели шума Смоделируйте профиль шума, с которым каналы будут сталкиваться при их запуске на разных аппаратных устройствах IonQ.

Пользователи могут воспользоваться этими дополнительными возможностями с помощью параметров сквозной передачи в поставщиках Azure Quantum Q# и Qiskit.

Устранение ошибок

IonQ предоставляет возможность включения устранения квантовых ошибок при отправке заданий на оборудование IonQ. Устранение ошибок — это процесс на уровне компилятора, который запускает и выполняет несколько симметрических вариантов цепи, а затем агрегирует результаты, одновременно снижая влияние ошибок оборудования и разъединения кубитов. В отличие от квантовых методов исправления ошибок , устранение ошибок не требует больших вентилок и кубитов.

Debiasing — это процесс создания небольших вариаций заданной цепи, которые должны быть идентичными на идеальной бесшумной машине, с использованием таких методов, как различные задания кубитов, разложение вентилей и импульсных решений, а затем выполнение этих вариантов.

Резкость и усреднение — это варианты агрегирования результатов вариантов. Усреднение в равной степени основано на всех вариантах результатов, тогда как sharpening отфильтровывает ошибочные результаты и может быть более надежным для определенных типов алгоритмов.

Дополнительные сведения см. в разделе Debiasing and Sharpening. Сведения о ценах на устранение ошибок см. в разделе Цены на IonQ.

Включение устранения ошибок

Примечание

Debiasing включена по умолчанию в системах Aria и Forte и отключена по умолчанию в системах Harmony.

В Azure Quantum можно включить или отключить устранение ошибок для заданий, отправленных с помощью Q# или Qiskit.

Чтобы включить устранение ошибок, добавьте необязательный параметр для target компьютера:


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

Чтобы отключить устранение ошибок, задайте для параметра значение False:


option_params = {
    "error-mitigation": {
        "debias": False
    }
}

Примечание

Если вы также используете имитацию модели шума IonQ, эти параметры можно включить, например:

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "harmony",
    "seed": 100
    }
}

Дополнительные сведения см. в разделе Моделирование модели шума.

Выполнение задания в Azure Quantum с устранением ошибок

В этом примере используется простой генератор случайных чисел.

Сначала импортируйте необходимые пакеты и инициируйте базовый профиль:

import qsharp
import azure.quantum
qsharp.init(target_profile=qsharp.TargetProfile.Base)

Затем определите функцию .

%%qsharp
open Microsoft.Quantum.Measurement;
open Microsoft.Quantum.Arrays;
open Microsoft.Quantum.Convert;

operation GenerateRandomBit() : Result {
    use target = Qubit();

    // Apply an H-gate and measure.
    H(target);
    return M(target);
}

and compile the operation:

```python
MyProgram = qsharp.compile("GenerateRandomBit()")

Подключитесь к Azure Quantum, выберите target компьютер и настройте параметры шума для эмулятора:

MyWorkspace = azure.quantum.Workspace(
    resource_id = "",
    location = ""
)

MyTarget = MyWorkspace.get_targets("ionq.qpu")

Указание конфигурации error-mitigation


option_params = {
    "error-mitigation": {
        "debias": True
    }
}

Передайте конфигурацию устранения ошибок при отправке задания:

job = MyTarget.submit(MyProgram, "Experiment with error mitigation", shots = 10, input_params = option_params)
job.get_results()

В Qiskit перед отправкой задания в конфигурацию target компьютера передаются необязательные параметры:

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

Примечание

Если не передать error-mitigation параметр, target компьютер будет использовать его значение по умолчанию: включено для систем Aria и Forte и отключено для систем Harmony.

Поддержка и использование собственных вентилей

По умолчанию IonQ позволяет указать квантовую цепь с помощью абстрактного набора квантовых вентилей, называемых qis, что обеспечивает гибкость и переносимость при написании алгоритма без необходимости оптимизации оборудования.

Однако в некоторых расширенных случаях использования может потребоваться определить цепь непосредственно на собственных вентилях, чтобы максимально эффективно использовать оборудование и исключить оптимизацию. Набор собственных вентилей — это набор квантовых вентилей, физически выполняющихся в квантовом процессоре и сопоставляющих цепь в рамках процесса выполнения.

Дополнительные сведения см. в статье Начало работы с собственными вентилями (ionq.com).

Чтобы использовать собственный набор вентилей при отправке заданий Qiskit в Azure Quantum, необходимо указать параметр gateset при инициализации серверной части, как показано в примере ниже.

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
имени параметра Тип Обязательно Описание
gateset строка Нет Задает набор вентилей, который будет использоваться для определения цепи. Значение qis соответствует абстрактным вентилям (поведение по умолчанию) и nativeаппаратным собственным вентилям IonQ.

Дополнительные сведения о заданиях Qiskit см. в разделе Отправка канала с помощью Qiskit.

Моделирование модели шума

Даже лучшее из современных квантовых аппаратных средств имеет присущий шум, и знание характеристик шума системы target может помочь вам уточнить алгоритмы и получить более реалистичное прогнозирование результатов при запуске цепи на оборудовании. IonQ предоставляет имитацию модели шума , которая вводит шум в цепь с помощью "отпечатка шума", относящийся target к оборудованию. Дополнительные сведения см. в статье Начало работы с имитацией аппаратной модели шума.

Параметры модели шума

имени параметра Значения Описание
noise model, seed Включает имитацию модели шума.
model ideal, harmony, aria-1 Указывает модель шума для target оборудования.
  • ideal - В цепь не вводятся никакие шумы. Это то же самое, что и отсутствие имитации шума.
  • harmony — Использует модель шума для квантового компьютера IonQ Harmony.
  • aria-1 — Использует модель шума для квантового компьютера IonQ Aria.
seed Целое число от 1 до $2^{31}$ (2 147 483 648) Позволяет указать начальное значение для псевдослучайного шума и выборки выстрелов, создавая воспроизводимые шумные результаты. Если параметр не указан, создается случайное seed значение.

Осведомленность о снимке

Имитация модели шума учитывается с учетом выстрелов; то есть он выполняет выборку измерений из выходного состояния на основе количества предоставленных снимков. В Azure Quantum shots параметр отправляется вместе с заданием и требуется для harmony моделей шума и aria-1 . Если значение не shot указано, используется значение 1000 по умолчанию . Если используется ideal модель шума, shots параметр игнорируется.

Емкость кубитов

ideal Хотя модель шума позволяет имитировать до 29 кубитов с помощью квантового симулятора IonQ, аппаратные модели шума ограничены фактической target емкостью кубит оборудования: 11 кубитов для harmony модели шума и 25 кубитов для aria-1 модели шума.

Включение имитации модели шума

В Azure Quantum имитацию модели шума можно включить или отключить для заданий, отправленных с помощью Q# или Qiskit.

Чтобы включить имитацию модели шума, добавьте необязательный параметр для target компьютера, например:


option_params = {
    "noise": {
        "model": "harmony",   # targets the Harmony quantum computer
        "seed" : 1000         # If seed isn't specified, a random value is used  
    }
}

Примечание

Если вы также используете устранение ошибок IonQ, эти параметры можно включить, например:

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "harmony",
    "seed": 1000
    }
}

Дополнительные сведения см. в статье Устранение ошибок.

Выполнение задания с имитацией модели шума

Вы можете использовать тот же пример программы, который показан ранее в разделе Устранение ошибок , и добавить или заменить конфигурацию модели шума в option_params;

option_params = {
    "error-mitigation": {
        "debias": True
    },
    "noise": {
    "model": "aria",
    "seed": 1000
    }
}

Затем передайте необязательные параметры при отправке задания:

job = MyTarget.submit(MyProgram, "Experiment with noise model simulation", shots = 10, input_params = option_params)
job.get_results()

В Qiskit перед отправкой задания в конфигурацию target компьютера передаются необязательные параметры:

circuit.name = "Single qubit random - Debias: True"
backend.options.update_options(**option_params)
job = backend.run(circuit, shots=500)

Цены

Чтобы просмотреть план выставления счетов для IonQ, перейдите на страницу цен для Azure Quantum.

Ограничения и квоты

Отслеживание квот IonQ ведется на основе единицы использования QPU — qubit-gate-shot (QGS). Плата за использование ресурсов взимается путем вычета кредитов из вашей учетной записи.

Каждая квантовая программа состоит из $N$ квантовых логических вентилей с одним или несколькими кубитами и выполняется для определенного числа запусков. Количество единиц gate-shots вычисляется по следующей формуле:

$$ QGS = N · C $$

где:

  • $N$ — это количество отправленных вентилей с одним или двумя кубитами.
  • $C$ — это количество запрошенных запусков выполнения

Квоты зависят от выбора плана. Их можно увеличить, отправив запрос в службу поддержки. Чтобы просмотреть текущие ограничения и квоты, перейдите в колонку Кредиты и квоты и откройте вкладку Квоты в рабочей области на портале Azure. Дополнительные сведения см. в статье Квоты Azure Quantum.

Примечание

Если вы используете план Кредиты Azure Quantum, а не план выставления счетов, сведения о квотах сопоставляются с выделенными кредитами. В этом случае в квоте указывается общее количество полученных кредитов.

Состояние IonQ

Сведения о задержках обработки заданий QPU IonQ см. на странице состояния IonQ.

Лучшие методики и граф подключения IonQ

Рекомендации по использованию IonQ QPU см. в этой статье.