Поделиться через


Поставщик IonQ

Внимание

IonQ отставил свой квантовый компьютер Harmony-2 с 1 сентября 2024 года.

Совет

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

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

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

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

Имя в Target Target ИДЕНТИФИКАТОР Количество кубит Description
Квантовый симулятор ionq.simulator 29 кубит Облачный идеализированный симулятор 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 кубита Квантовый компьютер IonQ в ловушке иона. Доступно только в закрытой предварительной версии.

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

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

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

  • Тип задания: Simulation
  • Формат данных: ionq.circuit.v1
  • Target ИДЕНТИФИКАТОР: ionq.simulator
  • Target Профиль выполнения: QIR Base

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

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

Внимание

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

  • Тип задания: Quantum Program
  • Формат данных: ionq.circuit.v1
  • Target Идентификатор: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Target Профиль выполнения: QIR Base
имени параметра Тип Обязательно Описание
shots INT No Число экспериментальных снимков.

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

Измерение Средняя длительность времени
T1 10-100 s
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).

Внимание

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

  • Тип задания: Quantum Program
  • Формат данных: ionq.circuit.v1
  • Target ИДЕНТИФИКАТОР: ionq.qpu.forte
  • Target Профиль выполнения: QIR Base
имени параметра Тип Обязательно Описание
shots INT No Число экспериментальных снимков.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

В 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": "aria-1",
    "seed": 100
    }
}

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

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

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

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

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

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

%%qsharp
import Std.Measurement.*;
import Std.Arrays.*;
import Std.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.aria-1")

Указание конфигурации 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.

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

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

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

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

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

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

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

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

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

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

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

Снимок осведомленности

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

Емкость Кубита

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

Включение моделирования модели шума

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

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


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

Примечание.

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

option_params = {
    "error-mitigation": {
        "debias": False
    },
    "noise": {
    "model": "aria-1",
    "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 см. в этой статье.