Condividi tramite


Provider IonQ

Suggerimento

Gli utenti per la prima volta ottengono automaticamente crediti Azure Quantum gratuiti perl'uso con ogni provider di hardware quantistico partecipante. Se sono stati utilizzati tutti i crediti e sono necessari crediti aggiuntivi, è possibile candidarsi al programma Azure Quantum Credits.

I computer quantistici di IonQ eseguono calcoli manipolando gli stati di energia iperfine degli ioni Ytterbium con i laser. Gli atomi sono qubit della natura: ogni qubit è identico sia all'interno di un programma che tra un programma e l'altro. Le operazioni logiche possono essere eseguite anche su qualsiasi coppia arbitraria di qubit, consentendo programmi quantistici complessi non vincolati alla connettività fisica. Vuoi saperne di più? Vedere la panoramica sulla tecnologia dei computer quantistici a ioni intrappolati di IonQ.

  • Editore: IonQ
  • ID provider: ionq

Di seguito sono disponibili i provider targets seguenti:

Nome di destinazione ID di destinazione Numero di qubit Descrizione
Simulatore quantistico ionq.simulator 29 qubit Simulatore idealizzato basato sul cloud di IonQ. Gratuito.
IonQ Harmony ionq.qpu 11 qubit Computer quantistico a ioni intrappolati di IonQ.
IonQ Aria 1 ionq.qpu.aria-1 25 qubit Computer quantistico aria intrappolata di IonQ.
IonQ Aria 2 ionq.qpu.aria-2 25 qubit Computer quantistico aria intrappolata di IonQ.
IonQ Forte ionq.qpu.forte 32 qubit Il computer quantistico forte intrappolato di IonQ. Disponibile solo in anteprima privata.

IonQ targets corrisponde a un No Control Flow profilo. Per altre informazioni su questo target profilo e sulle relative limitazioni, vedere Informazioni sui target tipi di profilo in Azure Quantum.

Simulatore quantistico

Simulatore idealizzato con accelerazione GPU che supporta fino a 29 qubit, usando lo stesso set di gate forniti dall'IonQ nel proprio hardware quantistico. Rappresenta un ottimo punto di partenza per i processi prima dell'esecuzione in un computer quantistico effettivo.

  • Tipo di processo: Simulation
  • Formato dei dati: ionq.circuit.v1
  • ID destinazione: ionq.simulator
  • Profilo di esecuzione di destinazione: No Control Flow

Computer quantistico IonQ Harmony

IonQ Harmony è un computer quantistico a ioni intrappolati ed è riconfigurabile dinamicamente nel software per usare fino a 11 qubit. Tutti i qubit sono completamente connessi, ovvero è possibile eseguire un gate a due qubit tra qualsiasi coppia.

  • Tipo di processo: Quantum Program
  • Formato dei dati: ionq.circuit.v1
  • ID destinazione: ionq.qpu
  • Profilo di esecuzione di destinazione: No Control Flow
Nome del parametro Tipo Obbligatorio Descrizione
shots int No Numero di shot sperimentali. Il valore predefinito è 500.

Intervallo di sistema

Misurare Durata media (μs)
T1 >10^7
T2 200.000
Gate a qubit singolo 10
Gate a due qubit 210
Lettura 100
Reimpostazione del registro 25
Intervallo di coerenza/durata del gate 1667

Fedeltà del sistema

Operazione Fedeltà media
Gate a qubit singolo 99.35% (con correzione SPAM)
Gate a due qubit 96.02% (senza correzione SPAM)
SPAM* 99.3 - 99.8%
Operazione di media geometrica 98.34%

* Preparazione dello stato e misurazione (SPAM): questa misura determina in che modo un computer quantistico può impostare un qubit nello stato iniziale e quindi misurare il risultato alla fine.

Computer quantistico IonQ Aria

IonQ Aria è il punto di punta dei computer quantistici a ioni intrappolati di IonQ, con un sistema riconfigurabile dinamicamente da 25 qubit. Per altre informazioni, vedere IonQ Aria (ionq.com).For more information, see IonQ Aria (ionq.com).

Importante

La debiasing è abilitata nei sistemi Aria per impostazione predefinita e i processi inviati sono soggetti a prezzi basati subia. Per altre informazioni sulla deviazione e su come disabilitare/abilitare il servizio, vedere Mitigazione degli errori.

  • Tipo di processo: Quantum Program
  • Formato dei dati: ionq.circuit.v1
  • ID di destinazione: ionq.qpu.aria-1, ionq.qpu.aria-2
  • Profilo di esecuzione di destinazione: No Control Flow
Nome del parametro Tipo Obbligatorio Descrizione
shots int No Numero di shot sperimentali.

Intervallo di sistema

Misurare Durata media del tempo
T1 10-100 s
T2 1 s
Gate a qubit singolo 135 μs
Gate a due qubit 600 μs

Fedeltà del sistema

Operazione Fedeltà media
Gate a qubit singolo 99,95% (spam corretto)
Gate a due qubit 99,6% (non con correzione della posta indesiderata)
SPAM* 99.61%

* Preparazione dello stato e misurazione (SPAM): questa misura determina in che modo un computer quantistico può impostare un qubit nello stato iniziale e quindi misurare il risultato alla fine.

IonQ Aria è disponibile tramite il piano Crediti Azure Quantum e un piano di fatturazione separato. Per altre informazioni, vedere Prezzi di Azure Quantum.

Computer quantistico IonQ Forte

IonQ Forte è il computer quantistico a IonQ con prestazioni più elevate, disponibili in commercio. Con un sistema configurabile da software a 32 qubit, IonQ Forte è disponibile in anteprima privata in Azure Quantum. Per altre informazioni, vedere IonQ Forte (ionq.com).

Importante

La debiasing è abilitata nel sistema Forte per impostazione predefinita e i processi inviati sono soggetti a prezzi debiati basati su. Per altre informazioni sulla deviazione e su come disabilitare/abilitare il servizio, vedere Mitigazione degli errori.

  • Tipo di processo: Quantum Program
  • Formato dei dati: ionq.circuit.v1
  • ID destinazione: ionq.qpu.forte
  • Profilo di esecuzione di destinazione: No Control Flow
Nome del parametro Tipo Obbligatorio Descrizione
shots int No Numero di shot sperimentali.

Formato di input

In Q#, l'output di una misurazione quantistica è un valore di tipo Result, che può accettare solo i valori Zero e One. Quando si definisce un'operazione Q#, può essere inviata all'hardware IonQ solo se il tipo restituito è una raccolta di Results, ovvero se l'output dell'operazione è il risultato di una misurazione quantistica. Il motivo è che IonQ compila un istogramma dai valori restituiti, pertanto limita il tipo restituito a Result semplificare la creazione di questo istogramma.

IonQ targets corrisponde all'oggetto No Control Flow profile. Questo profilo non può eseguire operazioni quantistiche che richiedono l'uso dei risultati delle misurazioni qubit per controllare il flusso del programma.

Nota

Attualmente, non è possibile inviare programmi quantistici che applicano operazioni sui qubit misurati in No Control Flowtargets, anche se non si usano i risultati per controllare il flusso del programma. Ovvero, No Control Flowtargets non consentire misurazioni a metà circuito.

Ad esempio, il codice seguente non può essere eseguito in un oggettotargetNo Control Flow :

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

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

Formato di output

Quando si invia un programma quantistico al simulatore IonQ, restituisce l'istogramma creato dalle misurazioni. Il simulatore IonQ non campiona la distribuzione di probabilità creata da un programma quantistico, ma restituisce invece la distribuzione ridimensionata al numero di scatti. Questo è più evidente quando si invia un singolo circuito di tiro. Verranno visualizzati più risultati di misurazione nell'istogramma per un colpo. Questo comportamento è intrinseco al simulatore IonQ, mentre IonQ QPU esegue effettivamente il programma e aggrega i risultati.

Altre funzionalità

Le funzionalità aggiuntive supportate dall'hardware IonQ sono elencate qui.

Funzionalità Descrizione
Mitigazione degli errori Usare la debiasing per ridurre al minimo il rumore e ottimizzare le prestazioni algoritmiche nell'hardware IonQ
Supporto di gate nativi Definire ed eseguire circuiti direttamente nei controlli nativi dell'hardware IonQ
Simulazione del modello di rumore Simulare il profilo di rumore rilevato dai circuiti quando vengono eseguiti su hardware IonQ diverso.

Gli utenti possono sfruttare queste funzionalità aggiuntive tramite parametri pass-through nei provider Q# e Qiskit di Azure Quantum.

Mitigazione degli errori

IonQ offre la possibilità di abilitare la mitigazione degli errori quantistici durante l'invio di processi all'hardware IonQ. La mitigazione degli errori è un processo a livello di compilatore che esegue ed esegue più varianti simmetriche di un circuito e quindi aggrega i risultati riducendo l'impatto degli errori hardware e della decodifica del qubit. A differenza delle tecniche di correzione degli errori quantistici, la mitigazione degli errori non richiede un sovraccarico di qubit e gate di grandi dimensioni.

La debiasing è il processo di creazione di lievi variazioni di un determinato circuito che deve essere identico in una macchina senza rumore ideale, usando tecniche come diverse assegnazioni di qubit, scomposizione di gate e soluzioni pulse e quindi eseguendo tali variazioni.

La nitidezza e la media sono opzioni per aggregare i risultati delle variazioni. La media è basata in modo uniforme su tutti i risultati della variazione, mentre sharpening filtra i risultati errati e può essere più affidabile per determinati tipi di algoritmi.

Per altre informazioni, vedere Debiasing e Sharpening. Per i prezzi di mitigazione degli errori, vedere Prezzi di IonQ.

Abilitazione della mitigazione degli errori

Nota

La debiasing è abilitata per impostazione predefinita nei sistemi Aria e Forte e disabilitata per impostazione predefinita nei sistemi Harmony.

In Azure Quantum la mitigazione degli errori può essere abilitata o disabilitata per i processi inviati con Q# o con Qiskit.

Per abilitare la mitigazione degli errori, aggiungere un parametro facoltativo per il target computer:


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

Per disabilitare la mitigazione degli errori, impostare il parametro su False:


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

Nota

Se si usa anche la simulazione del modello di disturbo di IonQ, questi parametri possono essere inclusi qui, ad esempio:

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

Per altre informazioni, vedere Simulazione di modelli di rumore.

Esecuzione di un processo in Azure Quantum con mitigazione degli errori

In questo esempio viene usato un semplice generatore di numeri casuali.

Prima di tutto, importare i pacchetti necessari e avviare il profilo di base:

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

Definire quindi la funzione.

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

Connessione ad Azure Quantum, selezionare il target computer e configurare i parametri di disturbo per l'emulatore:

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

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

Specificare la error-mitigation configurazione


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

Passare la configurazione di mitigazione degli errori durante l'invio del processo:

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

In Qiskit si passano i parametri facoltativi alla configurazione del target computer prima di inviare il processo:

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

Nota

Se non si passa il error-mitigation parametro , la macchina userà l'impostazione target predefinita: abilitata per i sistemi Aria e Forte e disabilitata per i sistemi Harmony.

Supporto e utilizzo di gate nativi

Per impostazione predefinita, IonQ consente di specificare un circuito quantistico usando un set astratto di gate quantistici, denominato qis, che consente flessibilità e portabilità durante la scrittura di un algoritmo senza doversi preoccupare dell'ottimizzazione per l'hardware.

Tuttavia, in alcuni casi di utilizzo avanzati, è possibile definire un circuito direttamente sui cancelli nativi per essere più vicino all'hardware e all'ottimizzazione del bypass. Il set di gate nativo è il set di gate quantistici eseguiti fisicamente nel processore quantistico ed esegue il mapping del circuito a quelli nell'ambito dell'esecuzione.

Per altre informazioni, vedere Introduzione a Native Gates (ionq.com).For more information, see Getting Started With Native Gates (ionq.com).

Per usare il set di gate nativo quando si inviano processi Qiskit ad Azure Quantum, è necessario specificare il gateset parametro quando si inizializza il back-end come nell'esempio seguente:

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
Nome del parametro Tipo Obbligatorio Descrizione
gateset stringa No Specifica il set di cancelli che verranno utilizzati per definire un circuito. Un valore di qis corrisponde ai cancelli astratti (comportamento predefinito) e native ai controlli nativi dell'hardware IonQ.

Per altre informazioni sui processi Qiskit, vedere Inviare un circuito con Qiskit.

Simulazione del modello di rumore

Anche il meglio dell'hardware quantistico di oggi ha rumore intrinseco e conoscere le caratteristiche di rumore del target sistema può aiutare a perfezionare gli algoritmi e ottenere una stima più realistica dei risultati quando si esegue il circuito su hardware. IonQ fornisce una simulazione del modello di rumore che introduce rumore nel circuito usando un'impronta digitale del rumore specifica per l'hardware target . Per altre informazioni, vedere Introduzione alla simulazione del modello di disturbo hardware.

Parametri del modello di disturbo

Nome del parametro Valori Descrizione
noise model, seed Abilita la simulazione del modello di disturbo
model ideal, harmony, aria-1 Specifica il modello di rumore per l'hardware target .
  • ideal - Nessun rumore viene introdotto nel circuito. Questa operazione equivale a non abilitare la simulazione del rumore.
  • harmony - Usa il modello di rumore per il computer quantistico IonQ Harmony.
  • aria-1 - Usa il modello di rumore per il computer quantistico IonQ Aria.
seed Intero compreso tra 1 e $2^{31}$ (2.147.483.648) Consente di specificare un valore di inizializzazione per il rumore pseudo-casuale e il campionamento degli scatti, creando risultati rumorosi riproducibili. Se il parametro non viene specificato, viene creato un valore casuale seed .

Consapevolezza sparato

La simulazione del modello di rumore è compatibile con gli scatti, ovvero esegue il campionamento delle misurazioni dello stato di output in base al numero di scatti forniti. In Azure Quantum il shots parametro viene inviato con il processo ed è necessario per harmony i modelli di disturbo e aria-1 . Se non viene specificato alcun shot valore, viene utilizzato un valore predefinito di 1000 . Se viene usato il ideal modello di disturbo, il shots parametro viene ignorato.

Capacità qubit

Mentre il ideal modello di disturbo consente di simulare fino a 29 qubit con il simulatore quantistico IonQ, i modelli di rumore specifici dell'hardware sono limitati alla capacità effettiva del qubit dell'hardware target : 11 qubit per il harmony modello di rumore e 25 qubit per il aria-1 modello di rumore.

Abilitazione della simulazione del modello di disturbo

In Azure Quantum la simulazione del modello di disturbo può essere abilitata o disabilitata per i processi inviati con Q# o con Qiskit.

Per abilitare la simulazione del modello di rumore, aggiungere un parametro facoltativo per il target computer, ad esempio:


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

Nota

Se si usa anche la mitigazione degli errori di IonQ, questi parametri possono essere inclusi qui, ad esempio:

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

Per altre informazioni, vedere Mitigazione degli errori.

Esecuzione di un processo con simulazione del modello di disturbo

È possibile usare lo stesso programma di esempio illustrato in precedenza nella mitigazione degli errori e aggiungere o sostituire la configurazione del modello di disturbo in option_params;

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

Passare quindi i parametri facoltativi quando si invia il processo:

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

In Qiskit si passano i parametri facoltativi alla configurazione del target computer prima di inviare il processo:

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

Prezzi

Per visualizzare il piano di fatturazione IonQ, vedere Prezzi di Azure Quantum.

Limiti e quote

Le quote di IonQ vengono rilevate in base all'unità di utilizzo di QPU, ovvero qubit-gate-shot (QGS). L'utilizzo delle risorse viene accreditato sull'account.

Ogni programma quantistico è costituito da porte logiche quantistiche $N$ di uno o più qubit e viene eseguito per un determinato numero di scatti. Il numero di colpi di cancello viene calcolato dalla formula seguente:

$$ QGS = N · C $$

dove:

  • $N$ è il numero di porte a uno o due qubit inviate
  • $C$ è il numero di colpi di esecuzione richiesti

Le quote sono basate sulla selezione del piano e possono essere aumentate con un ticket di supporto. Per visualizzare i limiti e le quote correnti, passare al pannello Crediti e quote e selezionare la scheda Quote dell'area di lavoro nel portale di Azure. Per altre informazioni, vedere Quote di Azure Quantum.

Nota

Se si usa un piano crediti Azure Quantum e non un piano di fatturazione, le informazioni sulle quote vengono mappate ai crediti allocati. In tal caso, la quota elenca il numero totale di crediti ricevuti.

Stato IonQ

Per informazioni sui ritardi di elaborazione dei processi QPU di IonQ, vedere la pagina relativa allo stato di IonQ.

Procedure consigliate e grafico della connettività di IonQ

Per visualizzare le procedure consigliate per la QPU di IonQ, vedere Procedure consigliate di IonQ (ionq.com).