Provider Quantinuum

Suggerimento

Gli utenti per la prima volta ottengono automaticamente crediti Azure Quantum gratuiti per l'uso con ogni provider di hardware quantistico partecipante.

Quantinuum consente di accedere ai sistemi a ioni intrappolati con qubit ad alta fedeltà, completamente connessi e la possibilità di eseguire la misurazione a metà circuito.

Target

Di seguito sono disponibili i provider targets seguenti:

Nome di destinazione ID di destinazione Numero di qubit Descrizione
Controllo sintassi H1-1 quantinuum.sim.h1-1sc 20 qubit Usare questa opzione per convalidare i programmi quantistici rispetto al compilatore H1-1 prima di inviarli all'hardware o agli emulatori nella piattaforma Quantinuum. Gratuito.
Controllo sintassi H2-1 quantinuum.sim.h2-1sc 56 qubit Usare questa opzione per convalidare i programmi quantistici rispetto al compilatore H2-1 prima di inviarli all'hardware o agli emulatori nella piattaforma Quantinuum. Gratuito.
Emulatore H1-1 quantinuum.sim.h1-1e 20 qubit Usa un modello fisico realistico e un modello di rumore H1-1.
Emulatore H2-1 quantinuum.sim.h2-1e 56/32 qubit Usa un modello fisico realistico e un modello di rumore H2-1. La simulazione di 56 qubit è disponibile solo come simulazione di stabalizzatore
H1-1 quantinuum.qpu.h1-1 20 qubit Dispositivo a ioni intrappolati H1-1 di Quantinuum.
H2-1 quantinuum.qpu.h2-1 56 qubit Dispositivo a ioni intrappolati H2-1 di Quantinuum.

Quantinuum targets corrisponde a un QIR Adaptive RI profilo. Per altre informazioni su questo target profilo e sulle relative limitazioni, vedere Informazioni sui target tipi di profilo in Azure Quantum.

Tutti i quantinuum targets supportano ora circuiti ibridi integrati. Per altre informazioni sull'invio di processi ibridi integrati, vedere Integrated Hybrid Computing.For more information about submitting integrated hybrid jobs, see Integrated Hybrid Computing.

Per iniziare a usare il provider Quantinuum in Azure Quantum, vedere Introduzione a Q# e a un notebook di Azure Quantum.

Suggerimento

I processi quantistici inviati in una sessione hanno accesso esclusivo all'hardware Quantinuum, purché i processi siano in coda entro un minuto l'uno dall'altro. Successivamente, qualsiasi processo viene accettato e gestito con la logica standard di accodamento e definizione delle priorità. Per altre informazioni, vedere Sessioni in Azure Quantum.

Controlli della sintassi

È consigliabile prima che gli utenti convalidino il codice usando un controllo sintassi. Si tratta di uno strumento per verificare la sintassi appropriata, il completamento della compilazione e la compatibilità del computer. Gli strumenti di controllo della sintassi usano lo stesso compilatore del computer quantistico.target Ad esempio, il controllo della sintassi H1-1 usa lo stesso compilatore di H1-1. Lo stack di compilazione completo viene eseguito con l'eccezione delle operazioni quantistice effettive. Se il codice viene compilato, il controllo della sintassi restituisce uno success stato e un risultato di tutti gli 0. Se il codice non viene compilato, il controllo della sintassi restituisce uno stato di errore e restituisce l'errore restituito per consentire agli utenti di eseguire il debug della sintassi del circuito. Gli strumenti di controllo della sintassi consentono agli sviluppatori di convalidare il codice in qualsiasi momento, anche quando i computer sono offline.

  • Tipo di processo: Simulation
  • Formati di dati: honeywell.openqasm.v1, honeywell.qir.v1
  • ID destinazione:
    • Controllo sintassi H1-1: quantinuum.sim.h1-1sc
    • Controllo sintassi H2-1: quantinuum.sim.h2-1sc
  • Profilo di esecuzione di destinazione: QIR Adaptive RI

L'utilizzo dei controlli della sintassi è gratuito.

Emulatori H1 del modello di sistema

Dopo aver convalidato la sintassi del codice con un controllo sintassi, gli utenti possono sfruttare gli emulatori del modello di sistema H1 di Quantinuum, gli strumenti di emulazione che contengono un modello fisico dettagliato e un modello di rumore realistico dell'hardware effettivo del modello di sistema H1. I modelli di rumore sono derivati da una caratterizzazione dettagliata dell'hardware. Gli emulatori del modello di sistema H1 usano un'API identica per l'invio di processi come hardware del modello di sistema H1, consentendo la transizione senza problemi dall'emulazione all'hardware. Per ottimizzare la produttività e ridurre il tempo di sviluppo, gli emulatori H1 del modello di sistema sono disponibili anche quando l'hardware è offline.

Altre informazioni sono disponibili nella pagina System Model H1 Emulator Product Data Sheet ( Modello di sistema H1 ).

  • Tipo di processo: Simulation
  • Formato dei dati: quantinuum.openqasm.v1
  • ID destinazione:
    • Emulatore H1-1: quantinuum.sim.h1-1e
  • Profilo di esecuzione di destinazione: QIR Adaptive RI

L'utilizzo dell'emulatore H1 del modello di sistema è gratuito con una sottoscrizione hardware. Per informazioni dettagliate, vedere Prezzi di Azure Quantum.

Emulatore serie H (basato sul cloud)

L'emulatore serie H è disponibile gratuitamente nella pagina Code with Azure Quantum (Codice con Azure Quantum) nel sito Web di Azure Quantum, in cui è possibile scrivere codice Q# e inviare i processi all'emulatore Quantinuum H-Series senza un account Azure. L'emulatore H-Series è un emulatore quantistico basato su statevector che usa un modello di disturbo fisico realistico e parametri di errore generalizzati in base alle prestazioni tipiche di un computer quantistico del modello di sistema H1. La simulazione quantistica eseguita è uguale all'emulatore system model H1, ma la routine di ottimizzazione del circuito classica viene ridotta per aumentare la velocità effettiva. Il supporto per il calcolo ibrido integrato è previsto per una data futura.

Modello di sistema H1

La generazione H1 del modello di sistema dei computer quantistici, basata su Honeywell, è costituita da un dispositivo ad accoppiamento a carica quantistico (QCCD) con una sezione lineare e attualmente include un computer targets: H1-1. Gli utenti sono invitati a testare la compatibilità del codice con H1-1 inviando processi a un controllo della sintassi e all'emulatore System Model H1 prima di inviarli ai target computer.

Il computer System Model H1 viene aggiornato continuamente durante il ciclo di vita del prodotto. Agli utenti viene concesso l'accesso all'hardware più aggiornato, avanzato e idoneo disponibile.

Altre informazioni sono disponibili nella pagina System Model H1 Product Data Sheet (Modello di sistema H1).

  • Tipo di processo: Quantum Program
  • Formato dati: honeywell.openqasm.v1, honeywell.qir.v1
  • ID destinazione:
    • H1-1: quantinuum.qpu.h1-1
  • Profilo di esecuzione di destinazione: QIR Adaptive RI

Emulatore H2 del modello di sistema

Dopo aver convalidato la sintassi del codice con il controllo sintassi H2-1, gli utenti possono sfruttare i vantaggi dell'emulatore System Model H2 di Quantinuum, uno strumento di emulazione che contiene un modello fisico dettagliato e un modello di rumore realistico dell'hardware effettivo del modello di sistema H2. Altre informazioni sul modello di disturbo sono disponibili nella scheda dati del prodotto System Model H2 Emulator disponibile nella pagina System Model H2 ( Modello di sistema H2 ). L'emulatore H2 del modello di sistema usa un'API identica per l'invio di processi come hardware del modello di sistema H2, consentendo la transizione senza problemi dall'emulazione all'hardware. Per ottimizzare la produttività e ridurre il tempo di sviluppo, l'emulatore H2 è disponibile anche quando l'hardware è offline.

  • Tipo di processo: Simulation
  • Formato dei dati: quantinuum.openqasm.v1
  • ID destinazione:
    • Emulatore H2-1: quantinuum.sim.h2-1e
  • Profilo di esecuzione di destinazione: QIR Adaptive RI

L'utilizzo dell'emulatore H2 del modello di sistema è gratuito con una sottoscrizione hardware. Per informazioni dettagliate, vedere Prezzi di Azure Quantum.

Modello di sistema H2

La generazione H2 del modello di sistema Quantinuum di computer quantistici, basata su Honeywell, è costituita da un dispositivo ad accoppiamento a carica quantistico (QCCD) con due sezioni lineari connesse e attualmente dispone di 1 computer, H2-1. Altre informazioni sono disponibili nella pagina System Model H2 Product Data Sheet (Modello di sistema H2). Gli utenti sono invitati a testare la compatibilità del codice inviando processi a un controllo della sintassi e all'emulatore System Model H2 prima di inviarli ai target computer.

Se un utente invia un processo al computer H2-1 e il computer H2-1 non è disponibile, il processo rimane nella coda del computer fino a quando il computer non diventa disponibile.

L'hardware del modello di sistema H2 viene aggiornato continuamente durante tutto il ciclo di vita del prodotto. Agli utenti viene concesso l'accesso all'hardware più aggiornato, avanzato e idoneo disponibile.

  • Tipo di processo: Quantum Program
  • Formato dei dati: quantinuum.openqasm.v1
  • ID destinazione:
    • H2-1: quantinuum.qpu.h2-1
  • Profilo di esecuzione di destinazione: QIR Adaptive RI

Specifiche tecniche del modello di sistema H1 e H2

I dettagli tecnici per il modello di sistema H1 e il modello di sistema H2 sono disponibili nei fogli dati del prodotto Quantinuum nelle pagine Modello di sistema H1 e Modello di sistema H2 insieme ai collegamenti alle specifiche quantinuum e ai repository di dati dei volumi quantistici e come citare l'utilizzo dei sistemi Quantinuum.

Altre funzionalità

Altre funzionalità disponibili tramite l'API Quantinuum sono elencate qui.

Funzionalità Descrizione
Misurazione e reimpostazione del circuito intermedio (MCMR) Misurare i qubit al centro di un circuito e riutilizzarli
Cancelli ZZ angolo arbitrario Eseguire direttamente rotazioni arbitrarie di 2 qubit
Parametri di disturbo dell'emulatore Sperimentare i parametri di disturbo usati negli emulatori Quantinuum H-Series
Ottimizzazioni TKET nello stack serie H Sperimentare l'attivazione di diversi livelli di ottimizzazioni TKET nello stack H-Series

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

Misurazione e reimpostazione del circuito intermedio

La misurazione e la reimpostazione del circuito intermedio (MCMR) consentono agli utenti di misurare i qubit al centro di un circuito e reimpostarli. In questo modo è possibile abilitare la funzionalità per la correzione degli errori quantistici e la possibilità di riutilizzare i qubit all'interno del circuito.

A causa della struttura a livello interno di qubit a ioni intrappolati, una misurazione a circuito intermedio può lasciare il qubit in uno stato non computazionale. Tutte le misurazioni del circuito intermedio devono essere seguite da una reimpostazione se il qubit deve essere usato di nuovo in tale circuito. Gli esempi di codice seguenti illustrano questa operazione.

Quando un subset di qubit viene misurato al centro del circuito, le informazioni classiche di queste misurazioni possono essere usate per definire gli elementi futuri del circuito. Gli esempi evidenziano anche questo utilizzo.

Per informazioni su MCMR nei sistemi Quantinuum, vedere i fogli dati dei prodotti serie H nelle pagine System Model H1 e System Model H2 .

In Q# la MResetZ funzione può essere usata per misurare un qubit e reimpostarla. Per altre informazioni su questa funzione, vedere MResetZ la documentazione di Q#.

%%qsharp
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Measurement;

operation ContinueComputationAfterReset() : Result[] {
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Perform Bell Test
    H(qubits[0]);
    CNOT(qubits[0], qubits[1]);

    // Measure Qubit 1 and reset it
    let res1 = MResetZ(qubits[1]);

    // Continue additional computation, conditioned on qubits[1] measurement outcome
    if res1 == One {
         X(qubits[0]);
    }
    CNOT(qubits[0], qubits[1]);

    // Measure qubits and return results
    let res2 = Measure([PauliZ, PauliZ], qubits);
    return [res1, res2];
}

Cancelli ZZ angolo arbitrario

Il set di cancelli nativi di Quantinuum include cancelli ZZ arbitrari. Ciò è utile per ridurre il numero di gate a 2 qubit per molti algoritmi quantistici e sequenze di gate. Per informazioni sulle porte ZZ angle arbitrarie nei sistemi Quantinuum, vedere i fogli dati dei prodotti serie H nelle pagine System Model H1 e System Model H2 .

In Q#, il gate ZZ dell'angolo arbitrario viene implementato con l'operazione Rzz .

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

operation ContinueComputationAfterReset(theta : Double) : Result[] {
    
    // Set up circuit with 2 qubits
    use qubits = Qubit[2];

    // Create array for measurement results
    mutable resultArray = [Zero, size = 2];

    H(qubits[0]);
    Rz(theta, qubits[0]);
    Rz(theta, qubits[1]);
    X(qubits[1]);

    // Add Arbitrary Angle ZZ gate
    Rzz(theta, qubits[0], qubits[1]);  

    // Measure qubits and return results
    for i in IndexRange(qubits) {
        set resultArray w/= i <- M(qubits[i]);  
    }
    
    return resultArray;
}

Parametri di disturbo dell'emulatore

Gli utenti hanno la possibilità di sperimentare i parametri di rumore degli emulatori Quantinuum. Di seguito sono evidenziati solo alcuni dei parametri di disturbo disponibili che illustrano come passare i parametri nei provider di Azure Quantum.

Per altre informazioni sul set completo di parametri di disturbo disponibili, vedere i fogli dati del prodotto dell'emulatore serie H nelle pagine System Model H1 e System Model H2 .

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);
}

e compilare l'operazione:

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

Connettersi 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("quantinuum.sim.h1-1e")

# Update the parameter names desired
# Note: This is not the full set of options available. 
# For the full set, see the System Model H1 Emulator Product Data Sheet
option_params = {
    "error-params": {
        "p1": 4e-5,
        "p2": 3e-3,
        "p_meas": [3e-3, 3e-3],
        "p_init": 4e-5,
        "p_crosstalk_meas": 1e-5,
        "p_crosstalk_init": 3e-5,
        "p1_emission_ratio": 6e-6,
        "p2_emission_ratio": 2e-4
    }
}

Passare le opzioni di disturbo dell'emulatore durante l'invio del processo:

job = MyTarget.submit(MyProgram, "Experiment with Emulator Noise Parameters", 
                      shots = 10, 
                      input_params = option_params)
job.get_results()

Per disattivare il modello di disturbo dell'emulatore, impostare l'opzione error-model su False. L'impostazione predefinita è True.

option_params = {
    "error-model": False 
}

Per usare l'emulatore di stabilizzatore, impostare l'opzione simulator su stabilizer. L'impostazione predefinita è state-vector.

option_params = {
    "simulator": "stabilizer" 
}

Compilazione TKET nello stack serie H

I circuiti inviati ai sistemi Quantinuum H Series, ad eccezione degli invii ibridi integrati, vengono eseguiti automaticamente tramite i passaggi di compilazione TKET per l'hardware della serie H. In questo modo, i circuiti possono essere ottimizzati automaticamente per i sistemi serie H ed essere eseguiti in modo più efficiente.

Altre informazioni sui passaggi di compilazione specifici applicati sono disponibili nella pytket-quantinuum documentazione, in particolare nella pytket-quantinuum sezione Passaggi di compilazione.

Nello stack software serie H il livello di ottimizzazione applicato viene impostato con il tket-opt-level parametro . L'impostazione di compilazione predefinita per tutti i circuiti inviati ai sistemi serie H è il livello di ottimizzazione 2.

Gli utenti che vogliono sperimentare i passaggi di compilazione TKET e vedere quali ottimizzazioni si applicano ai circuiti prima di inviare qualsiasi processo possono visualizzare il notebook Quantinuum_compile_without_api.ipynb nella pytket-quantinuum cartella Esempi.

Per disattivare la compilazione TKET nello stack, un'opzione diversa, no-opt, può essere impostata su all'interno option_paramsdi True . Ad esempio: "no-opt": True.

Per altre informazioni su pytket, vedere i collegamenti seguenti:

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);
}

e compilare l'operazione:

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

Connettersi 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("quantinuum.sim.h1-1e")

# Update TKET optimization level desired
option_params = {
    "tket-opt-level": 1
}

Passare l'opzione di ottimizzazione quando si invia il processo:

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

Specifiche tecniche

I dettagli tecnici per il modello di sistema H1 e H2 e l'emulatore H1 e H2 sono disponibili nei fogli dati del prodotto Quantinuum nella pagina System Model H1 e System Model H2 insieme ai collegamenti ai repository di dati relativi alla specifica Quantinuum e ai repository di dati dei volumi quantistici e come citare l'utilizzo dei sistemi Quantinuum.

Disponibilità delle destinazioni

I computer quantistici quantinuum serie H sono progettati per essere aggiornati continuamente, consentendo ai clienti di accedere alle funzionalità hardware più recenti, perché Quantinuum migliora continuamente le fidelità di controllo, gli errori di memoria e la velocità del sistema.

Cicli hardware quantinuum attraverso periodi commerciali e periodi di sviluppo. Durante i periodi commerciali, l'hardware è disponibile per elaborare i processi tramite un sistema di accodamento. Durante i periodi di sviluppo, l'hardware è offline man mano che vengono applicati gli aggiornamenti.

Ogni mese, viene inviato un calendario agli utenti quantinuum con informazioni sui periodi commerciali e di sviluppo. Se il calendario non è stato ricevuto, inviare un messaggio di posta elettronica QCsupport@quantinuum.com.

Lo stato di un targetoggetto indica la capacità corrente di elaborare i processi. Gli stati possibili di un target oggetto includono:

  • Disponibile: target è online, elabora i processi inviati e accetta quelli nuovi.
  • Danneggiato: accetta target processi, ma attualmente non li elabora.
  • Non disponibile: l'oggetto target è offline e non accetta nuovi invii di processi.

Per il computer targetsquantistico Quantinuum, Available e Degraded corrispondono ai periodi commerciali, mentre Non disponibile corrisponde ai periodi di sviluppo in cui il computer è offline per gli aggiornamenti.

Le informazioni sullo stato corrente possono essere recuperate dalla scheda Provider di un'area di lavoro nel portale di Azure.

Prezzi

Per visualizzare i piani di fatturazione di Quantinuum, visitare i prezzi di Azure Quantum.

Limiti e quote

Le quote di Quantinuum vengono rilevate in base all'unità di credito di utilizzo QPU, H-System Quantum Credit (HQC), per i processi inviati ai computer quantistici Quantinuum e agli HQCS (eHQCs) dell'emulatore per i processi inviati agli emulatori.

Per calcolare il costo dell'esecuzione di un processo, vengono usati HQCs ed eHQC, che vengono calcolati in base alla formula seguente:

$$ HQC = 5 + C(N_{1q} + 10 N_{2q} + 5 N_m)/5000 $$

dove:

  • $N_{1q}$ è il numero di operazioni a un qubit in un circuito.
  • $N_{2q}$ è il numero di operazioni a due qubit native in un circuito. La porta nativa equivale a CNOT fino ad alcune porte da un qubit.
  • $N_{m}$ è il numero di operazioni di preparazione e misurazione dello stato (SPAM, State Preparation and Measurement) in un circuito, inclusa la preparazione dello stato implicito iniziale ed eventuali misurazioni intermedie e finali e reimpostazioni dello stato.
  • $C$ è il numero di spari.

Nota

Il costo totale in HQC include tutti i controlli e le misurazioni in tutti i rami condizionali o i flussi di controllo. Questo può avere un impatto maggiore sui processi ibridi integrati.

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.