Provider IonQ

Suggerimento

I primi utenti ottengono automaticamente $ 500 (USD)Crediti Azure Quantum da usare con ogni provider 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. Per altre informazioni: Vedere la panoramica sulla tecnologia dei computer quantistici a ioni intrappolati di IonQ.

  • Editore: IonQ
  • ID provider: ionq

Di seguito sono disponibili i seguenti targets provider:

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 intrappolato 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 parametro Tipo Obbligatoria Descrizione
shots int No Numero di shot sperimentali. Il valore predefinito è 500.

Intervallo di sistema

Misura 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 è l'ammiraglia dei computer quantistici a ioni intrappolati di IonQ, con un sistema riconfigurabile dinamicamente a 25 qubit. Per altre informazioni, vedere IonQ Aria (ionq.com).

Importante

La debiasing è abilitata nei sistemi Aria per impostazione predefinita e i processi inviati sono soggetti a prezzi basati su debiazioni. Per altre informazioni sulla debiazione 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 parametro Tipo Obbligatoria Descrizione
shots int No Numero di shot sperimentali.

Intervallo di sistema

Misura 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% (correzione spam)
Gate a due qubit 99,6% (non corretta la posta indesiderata)
SPAM* 99.61%

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

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

Computer quantistico IonQ Forte

IonQ Forte è il computer quantistico con più prestazioni di IonQ, disponibile in modo commerciale. 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 basati subia. Per altre informazioni sulla debiazione 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 parametro Tipo Obbligatoria 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 solo all'hardware IonQ 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, quindi limita il tipo restituito per Result semplificare la creazione di questo istogramma.

IonQ corrisponde targets a No Control Flow profile. Questo profilo non può eseguire operazioni quantistiche che richiedono l'uso dei risultati dalle 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. Vale a dire, No Control Flowtargets non consentire misurazioni a metà circuito.

Ad esempio, il codice seguente non può essere eseguito in un No Control Flowtargetoggetto :

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 campione la distribuzione della probabilità creata da un programma quantistico, ma restituisce invece la distribuzione ridimensionata al numero di colpi. Questo è più evidente quando si invia un singolo circuito di colpo. 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 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 cancelli nativi dell'hardware IonQ
Simulazione del modello di rumore Simulare il profilo di rumore che si verifica 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 l'opzione per 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 qubit. A differenza delle tecniche di correzione degli errori quantistiche, la mitigazione degli errori non richiede un sovraccarico di gate e qubit di grandi dimensioni.

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

La nitidezza e la media sono opzioni per aggregare i risultati delle variazioni. La media si basa ugualmente su tutti i risultati delle varianti, mentre l'affilamento 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 è possibile abilitare o disabilitare la mitigazione degli errori 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 rumore 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 del modello 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()")

Connettersi ad Azure Quantum, selezionare il target computer e configurare i parametri di rumore 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 parametro, il target computer userà l'impostazione error-mitigation 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 cancelli quantistici, denominato qis, che consente flessibilità e portabilità durante la scrittura di un algoritmo senza preoccuparsi dell'ottimizzazione per l'hardware.

Tuttavia, in alcuni casi di utilizzo avanzati, è possibile definire un circuito direttamente sui cancelli nativi per essere più vicini all'hardware e ignorare l'ottimizzazione. Il set di gate nativo è il set di porte quantistiche eseguite fisicamente nel processore quantistico e esegue il mapping del circuito a quelli nell'esecuzione.

Per altre informazioni, vedere Introduzione With Native Gates (ionq.com).

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

# Here 'provider' is an instance of AzureQuantumProvider
backend = provider.get_backend("ionq.qpu", gateset="native")
Nome parametro Tipo Obbligatoria Descrizione
gateset string No Specifica il set di porte che verranno usate per definire un circuito. Un valore di qis corrisponde ai cancelli astratti (comportamento predefinito) e native ai cancelli 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 un rumore intrinseco e conosce le caratteristiche del rumore del target sistema può aiutare a perfezionare gli algoritmi e ottenere una stima più realistica dei risultati durante l'esecuzione del circuito sull'hardware. IonQ fornisce una simulazione del modello di rumore che introduce il rumore nel circuito usando una "impronta digitale del rumore" specifica per l'hardware target . Per altre informazioni, vedere Introduzione alla simulazione del modello di rumore hardware.

Parametri del modello di rumore

Nome parametro Valori Descrizione
noise model, seed Abilita la simulazione del modello di rumore
model ideal, harmony, aria-1 Specifica il modello di rumore per l'hardware target .
  • ideal - Nessun rumore viene introdotto nel circuito. Si tratta dello stesso modo in cui non è possibile 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 è specificato, viene creato un valore casuale seed .

Consapevolezza dello sparo

La simulazione del modello di rumore è in grado di tenere presente; ovvero, campioni le misurazioni dallo stato di output in base al numero di colpi forniti. In Azure Quantum il shots parametro viene inviato con il processo ed è necessario per harmony e aria-1 i modelli di rumore. Se non shot viene specificato alcun valore, viene usato un valore predefinito di 1000 . Se viene usato il ideal modello di rumore, il shots parametro viene ignorato.

Capacità Qubit

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

Abilitazione della simulazione del modello di rumore

In Azure Quantum, la simulazione del modello di rumore 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 rumore

È possibile usare lo stesso programma di esempio illustrato in precedenza nella mitigazione degli errori e aggiungere o sostituire la configurazione del modello di rumore 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, visitare i prezzi di Azure Quantum.

Limiti e quote

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

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

$$ QGS = N · C $$

dove:

  • $N$ è il numero di porte a due 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 di Crediti Quantistici di Azure e non un piano di fatturazione, le 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).