Proveedor IonQ

Sugerencia

Los usuarios de primera vez obtienen automáticamente 500 USD gratis (USD)Créditos de Azure Quantum para su uso con cada proveedor de hardware cuántico participante. Si ha consumido todos los créditos y necesita más, puede solicitar participar en el programa Créditos de Azure Quantum.

Los equipos cuánticos de IonQ realizan cálculos mediante la manipulación de los estados de energía hiperfinos de iones de iterbio con láseres. Los átomos son los cúbits de la naturaleza: cada cúbit es idéntico dentro de un programa y en los distintos programas. Las operaciones lógicas también se pueden realizar en cualquier par arbitrario de cúbits, lo que permite utilizar programas cuánticos complejos sin las restricciones de la conectividad física. ¿Quiere saber más? Lea la introducción a la tecnología de los equipos cuánticos de iones atrapados de IonQ.

  • Publicador: IonQ
  • Identificador de proveedor: ionq

Los siguientes targets están disponibles en este proveedor:

Nombre de destino Id. de destino Número de cúbits Descripción
Simulador cuántico Simulador de IonQ 29 cúbits Simulador idealizado basado en la nube de IonQ. Sin costo.
IonQ Harmony ionq.qpu 11 cúbits Equipo cuántico de iones atrapados de IonQ.
IonQ Aria 1 ionq.qpu.aria-1 25 cúbits Equipo cuántico de iones atrapados de IonQ Aria.
IonQ Aria 2 ionq.qpu.aria-2 25 cúbits Equipo cuántico de iones atrapados de IonQ Aria.
IonQ Forte ionq.qpu.forte 32 cúbits Equipo cuántico de IonQ forte atrapado-ion. Disponible solo en versión preliminar privada.

IonQ targets corresponde a un No Control Flow perfil. Para más información sobre este target perfil y sus limitaciones, consulte Descripción target de los tipos de perfil en Azure Quantum.

Simulador cuántico

Simulador idealizado acelerado por GPU que admite hasta 29 cúbits, con el mismo conjunto de puertas que IonQ proporciona en su hardware cuántico. Esto hace que sea excelente lugar para realizar trabajos previos antes de ejecutarlos en un equipo cuántico real.

  • Tipo de trabajo: Simulation
  • Formato de datos: ionq.circuit.v1
  • Id. de destino: ionq.simulator
  • Perfil de ejecución de destino: No Control Flow

Equipo cuántico de IonQ Harmony

La instancia de IonQ Harmony es un equipo cuántico de iones atrapados que se reconfigura dinámicamente en el software para usar hasta 11 cúbits. Todos los cúbits están totalmente conectados, lo que significa que puede ejecutar una puerta de dos cúbits entre cualquier par.

  • Tipo de trabajo: Quantum Program
  • Formato de datos: ionq.circuit.v1
  • Id. de destino: ionq.qpu
  • Perfil de ejecución de destino: No Control Flow
Nombre de parámetro Tipo Requerido Descripción
shots int No Número de disparos experimentales. El valor predeterminado es 500.

Tiempos del sistema

Measure Duración promedio (μs)
T1 >10^7
T2 200 000
Puerta de un solo cúbit 10
Puerta de dos cúbits 210
Lectura 100
Restablecimiento del registro 25
Tiempo de coherencia/duración de la puerta 1667

Fidelidad del sistema

Operación Fidelidad promedio
Puerta de un solo cúbit 99,35 % (con corrección de SPAM)
Puerta de dos cúbits 96,02 % (sin corrección de SPAM)
SPAM* 99,3 - 99,8 %
Media geométrica 98,34 %

* Preparación y medición del estado (SPAM): esta medida determina la precisión con la que un equipo cuántico puede establecer un cúbit en su estado inicial y, a continuación, medir el resultado al final.

Equipo cuántico de IonQ Aria

IonQ Aria es el insignia de los equipos cuánticos de ion atrapados de IonQ, con un sistema reconfigurable dinámicamente de 25 cúbits. Para obtener más información, consulte IonQ Aria (ionq.com) .

Importante

Debiasing está habilitado en sistemas Aria de forma predeterminada y los trabajos enviados están sujetos a precios basados en desbiasing. Para obtener más información sobre la desbiasing y cómo deshabilitar o habilitar el servicio, consulte Mitigación de errores.

  • Tipo de trabajo: Quantum Program
  • Formato de datos: ionq.circuit.v1
  • Identificador de destino: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Perfil de ejecución de destino: No Control Flow
Nombre de parámetro Tipo Requerido Descripción
shots int No Número de disparos experimentales.

Tiempos del sistema

Measure Duración media del tiempo
T1 10-100 s
T2 1 s
Puerta de un solo cúbit 135 μs
Puerta de dos cúbits 600 μs

Fidelidad del sistema

Operación Fidelidad promedio
Puerta de un solo cúbit 99,95% (spam corregido)
Puerta de dos cúbits 99,6% (no se corrigió spam)
SPAM* 99.61%

* Preparación y medición del estado (SPAM): esta medida determina la precisión con la que un equipo cuántico puede establecer un cúbit en su estado inicial y, a continuación, medir el resultado al final.

IonQ Aria está disponible a través del plan de créditos de Azure Quantum y un plan de facturación independiente. Para obtener más información, consulte los precios de Azure Quantum.

Equipo cuántico de IonQ Forte

IonQ Forte es el equipo cuántico de IonQ de mayor rendimiento disponible comercialmente. Con un sistema configurable por software de 32 cúbits, IonQ Forte está disponible en versión preliminar privada en Azure Quantum. Para obtener más información, vea IonQ Forte (ionq.com)).

Importante

Debiasing está habilitado en el sistema Forte de forma predeterminada y los trabajos enviados están sujetos a precios basados en la desbiasing. Para obtener más información sobre la desactivación y cómo deshabilitar o habilitar el servicio, consulte Mitigación de errores.

  • Tipo de trabajo: Quantum Program
  • Formato de datos: ionq.circuit.v1
  • Id. de destino: ionq.qpu.forte
  • Perfil de ejecución de destino: No Control Flow
Nombre de parámetro Tipo Requerido Descripción
shots int No Número de disparos experimentales.

Formato de entrada

En Q#, la salida de una medida cuántica es un valor de tipo Result, que solo puede tomar los valores Zero y One. Cuando se define una operación de Q#, solo se puede enviar al hardware ionQ si el tipo de valor devuelto es una colección de Results, es decir, si la salida de la operación es el resultado de una medida cuántica. La razón de esto se debe a que IonQ crea un histograma a partir de los valores devueltos, por lo que restringe el tipo de valor devuelto para Result simplificar la creación de este histograma.

IonQ targets corresponde a .No Control Flow profile Este perfil no puede ejecutar operaciones cuánticas que requieran el uso de los resultados de las mediciones de cúbits para controlar el flujo del programa.

Nota:

Actualmente, no puede enviar programas cuánticos que apliquen operaciones en cúbits medidos en No Control Flowtargets, aunque no use los resultados para controlar el flujo del programa. Es decir, No Control Flowtargets no permita mediciones de circuito medio.

Por ejemplo, el código siguiente no se puede ejecutar en :No Control Flowtarget

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

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

Formato de salida

Al enviar un programa cuántico al simulador ionQ, devuelve el histograma creado por las medidas. El simulador de IonQ no muestra la distribución de probabilidad creada por un programa cuántico, sino que devuelve la distribución escalada al número de tomas. Esto es más evidente cuando se envía un único circuito de disparos. Verá varios resultados de medición en el histograma para una toma. Este comportamiento es inherente al simulador de IonQ, mientras que ionQ QPU ejecuta realmente el programa y agrega los resultados.

Funcionalidades adicionales

Aquí se enumeran funcionalidades adicionales compatibles con el hardware de IonQ.

Capacidad Descripción
Mitigación de errores Uso de desenlace para minimizar el ruido y maximizar el rendimiento algorítmico en el hardware ionQ
Compatibilidad con puertas nativas Definición y ejecución de circuitos directamente en puertas nativas de hardware de IonQ
Simulación del modelo de ruido Simule el perfil de ruido que encontrarán los circuitos al ejecutarlos en un hardware ionQ diferente.

Los usuarios pueden aprovechar estas funcionalidades adicionales a través de parámetros de paso a través en los proveedores de Q# y Qiskit de Azure Quantum.

Mitigación de errores

IonQ proporciona la opción de habilitar la mitigación de errores cuánticos al enviar trabajos al hardware de IonQ. La mitigación de errores es un proceso de nivel de compilador que ejecuta y ejecuta varias variaciones simétricas de un circuito y, a continuación, agrega los resultados a la vez que mitiga el impacto de los errores de hardware y la decoherencia de cúbits. A diferencia de las técnicas de corrección de errores cuánticos , la mitigación de errores no requiere una sobrecarga de cúbits y puertas grandes.

Debiasing es el proceso de crear ligeras variaciones de un circuito determinado que debe ser idéntico en una máquina sin ruido ideal, utilizando técnicas como diferentes asignaciones de cúbits, descomposición de puertas y soluciones de pulso, y luego ejecutando esas variaciones.

El afilado y el promedio son opciones para agregar los resultados de las variaciones. El promedio se basa igualmente en todos los resultados de variación, mientras que el afilamiento filtra los resultados erróneos y puede ser más confiable para determinados tipos de algoritmos.

Para obtener más información, vea Debiasing y Sharpening. Para ver los precios de mitigación de errores, consulte Precios de IonQ.

Habilitación de la mitigación de errores

Nota

Debiasing está habilitado de forma predeterminada en los sistemas Aria y Forte, y deshabilitado de forma predeterminada en sistemas Harmony.

En Azure Quantum, la mitigación de errores se puede habilitar o deshabilitar para los trabajos enviados con Q# o con Qiskit.

Para habilitar la mitigación de errores, agregue un parámetro opcional para la target máquina:


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

Para deshabilitar la mitigación de errores, establezca el parámetro en False:


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

Nota

Si también usa la simulación del modelo de ruido de IonQ, estos parámetros se pueden incluir aquí, por ejemplo:

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

Para obtener más información, consulte Simulación de modelos de ruido.

Ejecución de un trabajo en Azure Quantum con mitigación de errores

En este ejemplo se usa un generador de números aleatorios simple.

En primer lugar, importe los paquetes necesarios e inicie el perfil base:

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

A continuación, defina la función .

%%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()")

Conéctese a Azure Quantum, seleccione la target máquina y configure los parámetros de ruido para el emulador:

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

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

Especificar la error-mitigation configuración


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

Pase la configuración de mitigación de errores al enviar el trabajo:

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

En Qiskit, se pasan los parámetros opcionales a la configuración de la target máquina antes de enviar el trabajo:

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

Nota:

Si no pasa el error-mitigation parámetro , la target máquina usará su configuración predeterminada: habilitada para los sistemas Aria y Forte, y deshabilitada para los sistemas Harmony.

Compatibilidad y uso de puertas nativas

De manera predeterminada, IonQ permite especificar un circuito cuántico mediante un conjunto abstracto de puertas cuánticas, llamado qis, que permite flexibilidad y portabilidad al escribir un algoritmo sin preocuparse por la optimización del hardware.

Sin embargo, en algunos casos de uso avanzados, es posible que desee definir un circuito directamente en puertas nativas para estar más cerca del hardware y omitir la optimización. El conjunto de puertas nativas es el conjunto de puertas cuánticas que se ejecutan físicamente en el procesador cuántico y se asignan al circuito como parte de la ejecución.

Para más información, consulte Introducción a las puertas nativas (ionq.com).

Para usar el conjunto de puertas nativas al enviar trabajos de Qiskit a Azure Quantum, especifique el parámetro gateset al inicializar el back-end como en el ejemplo siguiente:

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
Nombre de parámetro Tipo Requerido Descripción
gateset string No Especifica el conjunto de puertas que se va a usar para definir un circuito. El valor qis corresponde a las puertas abstractas (comportamiento predeterminado) y native a las puertas nativas del hardware de IonQ.

Para obtener más información sobre los trabajos de Qiskit, consulte Envío de un circuito con Qiskit.

Simulación del modelo de ruido

Incluso lo mejor del hardware cuántico actual tiene ruido inherente y conocer las características de ruido del target sistema puede ayudarle a refinar los algoritmos y obtener una predicción más realista de los resultados al ejecutar el circuito en hardware. IonQ proporciona una simulación de modelo de ruido que introduce ruido en el circuito mediante una "huella digital de ruido" específica del target hardware. Para obtener más información, consulte Introducción a la simulación de modelos de ruido de hardware.

Parámetros del modelo de ruido

Nombre de parámetro Valores Descripción
noise model, seed Habilita la simulación del modelo de ruido
model ideal, harmony, aria-1 Especifica el modelo de ruido para el target hardware.
  • ideal - No se introduce ruido en el circuito. Esto es lo mismo que no habilitar la simulación de ruido.
  • harmony - Usa el modelo de ruido para el equipo cuántico ionQ Harmony.
  • aria-1 : usa el modelo de ruido para el equipo cuántico de IonQ Aria.
seed Entero entre 1 y $2^{31}$ (2,147,483,648) Permite especificar un valor de inicialización para el ruido pseudoaleatoriedad y el muestreo de disparos, creando resultados ruidosos reproducibles. Si no se especifica el parámetro , se crea un valor aleatorio seed .

Reconocimiento de disparos

La simulación del modelo de ruido es consciente de la captura; es decir, muestra las medidas del estado de salida en función del número de tomas proporcionadas. En Azure Quantum, el shots parámetro se envía con el trabajo y es necesario para harmony los modelos de ruido y aria-1 . Si no se especifica ningún shot valor, se usa un valor predeterminado de 1000 . Si se usa el ideal modelo de ruido, se omite el shots parámetro .

Capacidad de cúbits

Aunque el ideal modelo de ruido permite simular hasta 29 cúbits con el simulador cuántico ionQ, los modelos de ruido específicos del hardware se limitan a la capacidad de cúbit real del target hardware: 11 cúbits para el harmony modelo de ruido y 25 cúbits para el modelo de aria-1 ruido.

Habilitación de la simulación del modelo de ruido

En Azure Quantum, la simulación de modelos de ruido se puede habilitar o deshabilitar para los trabajos enviados con Q# o con Qiskit.

Para habilitar la simulación de modelos de ruido, agregue un parámetro opcional para la target máquina, por ejemplo:


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

Nota:

Si también usa la mitigación de errores de IonQ, estos parámetros se pueden incluir aquí, por ejemplo:

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

Para obtener más información, consulte Mitigación de errores.

Ejecución de un trabajo con simulación de modelo de ruido

Puede usar el mismo programa de ejemplo mostrado anteriormente en la mitigación de errores y agregar o reemplazar la configuración del modelo de ruido en option_params;

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

Después, pase los parámetros opcionales al enviar el trabajo:

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

En Qiskit, se pasan los parámetros opcionales a la configuración de la target máquina antes de enviar el trabajo:

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

Precios

Para ver el plan de facturación de IonQ, consulte Precios de Azure Quantum.

Límites y cuotas

Se realiza un seguimiento de las cuotas de IonQ en función de la unidad de uso de QPU, que es la captura de puerta de cúbit (QGS). El uso de los recursos se acredita en su cuenta.

Cada programa cuántico consta de $N$ puertas lógicas cuánticas de uno o más cúbits, y se ejecuta un número determinado de capturas. El número de capturas de puerta se calcula mediante la fórmula siguiente:

$$ QGS = N · C $$

donde:

  • $N$ es el número de puertas de uno o dos cúbits enviadas
  • $C$ es el número de capturas de ejecución solicitadas

Las cuotas se basan en la selección del plan y se pueden aumentar con una incidencia de soporte técnico. Para ver los límites y cuotas actuales, vaya a la hoja Créditos y cuotas y seleccione la pestaña Cuotas del área de trabajo en Azure Portal. Para más información, consulte Cuotas de Azure Quantum.

Nota:

Si usa un plan de créditos de Azure Quantum y no un plan de facturación, se asigna la información de las cuotas a los créditos asignados. En ese caso, la cuota enumera el número total de créditos que ha recibido.

Estado de IonQ

Para obtener información sobre los retrasos en el procesamiento de trabajos de IonQ QPU, consulte la página de estado de IonQ.

Procedimientos recomendados de IonQ y grafo de conectividad

Para ver los procedimientos recomendados para la QPU de IonQ, consulte Procedimientos recomendados de IonQ (ionq.com).