Skip to main content
IBM Quantum Platform

Inizializza il tuo account del servizio di elaborazione IBM Quantum

Prima di utilizzare il servizio di elaborazione IBM Quantum®, è necessario inizializzare (istanziare) il proprio account inviando (caricando) le credenziali. Queste credenziali possono essere inserite manualmente ogni volta che si avvia un servizio Comput IBM Quantum, oppure è possibile salvarle per riutilizzarle in seguito.

Note

Prima di iniziare

Assicuratevi di aver completato questi passaggi:

  1. Assicuratevi di essere membri di un account IBM Cloud. Per istruzioni, vedere Configurazione dell'account IBM Cloud.
  2. Creare (o avere accesso) ad almeno un'istanza. Seguite questi passaggi per verificare:
    1. Accedere a IBM Quantum Platform.
    2. Assicuratevi che il conto e la regione corretti siano selezionati nel selettore dei conti nell'intestazione.
    3. Se vengono visualizzate una o più istanze, questo passaggio è completato. Altrimenti, crea un'istanza.
  3. Assicurati di lavorare in un ambiente Python attivo con l' Qiskit SDK e e installati qiskit-ibm-runtime .
  4. Attivare l'ambiente virtuale Python ed eseguire Python nell'ambiente virtuale.

Trova le tue credenziali di accesso

  1. Trovate la vostra chiave API (detta anche token API ). Dalla dashboard, creare la chiave API e copiarla in un luogo sicuro per poterla utilizzare per l'autenticazione. Il token non sarà più visibile. Si noti che è possibile utilizzare una singola chiave API per connettersi a qualsiasi regione.
  2. Facoltativo: Individuare l'istanza che si desidera utilizzare dalla pagina Istanze. Passare il mouse sul CRN, fare clic sull'icona per copiarlo e salvarlo in un luogo sicuro per poterlo utilizzare per identificare l'istanza.

Collega Qiskit alla tua istanza di Compute Service su IBM Quantum

Note

Queste istruzioni sono state concepite per il sito qiskit_ibm_runtime v0.42 o successivo. Alcune funzioni non sono abilitate nelle versioni precedenti di qiskit_ibm_runtime. In questi casi, occorre sempre fornire un valore per channel, token, e instance, esplicitamente o tramite un conto salvato.

Di seguito è riportato il codice di base per collegare Qiskit alla tua istanza di Quantum Compute. Tuttavia, esistono diversi modi per personalizzare le opzioni QiskitRuntimeService , a seconda delle proprie esigenze. Queste opzioni sono descritte nelle seguenti sezioni.

from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService(channel=<channel>,
            # For `token`, use the 44-character API_KEY you created 
            # and saved from the IBM Quantum Platform dashboard
            token=<your-API_KEY>, 
            instance=<instance_CRN>)
Note

Il canale predefinito è ibm_quantum_platform. Poiché questo è quasi sempre il canale appropriato, non è stato incluso negli esempi.

Percorso di avvio rapido: specificare esplicitamente le credenziali

Il modo più veloce per avviare un'istanza QiskitRuntimeService è il metodo di istanziazione diretta: fornire esplicitamente il token API (chiave) e l' CRN (identificatore dell'istanza) ogni volta che è necessario inizializzare un IBM Quantum Compute Service. Se necessario, consulta la sezione " Trova le tue credenziali di accesso ".

from qiskit_ibm_runtime import QiskitRuntimeService

# For `token`, use the 44-character API_KEY you created 
# and saved from the IBM Quantum Platform dashboard
service = QiskitRuntimeService(token=<cloud_api_key>, 
            instance=<instance_CRN>)

Questo percorso è affidabile, ma può essere noioso se si devono caricare ripetutamente gli stessi dettagli. Per evitare di caricare più volte le credenziali, se si lavora in un ambiente fidato Python (ad esempio su un portatile o una workstation personale), è possibile utilizzare le credenziali dell'account salvate, come descritto nella sezione seguente.

Sebbene il parametro di input instance sia facoltativo, si consiglia di fornire sempre questa informazione, a meno che non si voglia utilizzare un singolo servizio per lavorare con diverse istanze. In questa situazione, vedere la sezione Selezione automatica dell'istanza.

Percorso di avvio rapido: specificare le credenziali salvate

Se hai già salvato le tue credenziali, utilizza il codice seguente per applicare le credenziali predefinite. Per istruzioni su come salvare le credenziali, consulta Salva le tue credenziali di accesso.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService()
...

Se si è dato un nome a uno o più set di credenziali, ad esempio per l'accesso open e premium, utilizzare il seguente codice per utilizzare un set di credenziali nominate.

from qiskit_ibm_runtime import QiskitRuntimeService

# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...

Considerazioni relative al caricamento delle credenziali salvate

  • Se si inizializza un servizio con token e name, l'account token viene ignorato e vengono caricati i dettagli salvati dall'account name .

    Nell'esempio seguente, il servizio carica i dettagli da account_A e non utilizza token_B:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(token="token_B", name="account_A")
  • Se si forniscono un name e un instance quando si inizializza un servizio, il servizio cerca di caricare l'account name e di connettersi al instance specificato. In caso di conflitto, viene emesso un avviso.

    Nell'esempio seguente, il servizio cerca di caricare le credenziali di account_A e di utilizzare l'istanza CRN_B , anche se esiste un'istanza diversa specificata in account_A:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B", name="account_A")
  • Il servizio tenta di caricare l'account salvato di default solo se non si fornisce un token o un name quando si inizializza un servizio. Tuttavia, se viene fornito esplicitamente un instance , il servizio tenta di connettersi a tale istanza utilizzando le credenziali predefinite. In caso di conflitto, viene emesso un avviso.

    Nell'esempio seguente, il servizio tenta di caricare le credenziali predefinite e di utilizzare l'istanza CRN_B , anche se nell'account predefinito è specificata un'istanza diversa:

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService(instance="CRN_B")
  • Se si salvano più set di credenziali ma non se ne specifica uno al momento dell'inizializzazione del servizio e non c'è un account predefinito salvato, viene utilizzato quello il cui nome è l'ultimo in ordine alfabetico.

    Nell'esempio seguente, l'utente ha salvato gli account denominati "my_premium" e "my_open", ma non ha contrassegnato nessuno dei due come dfault. Hanno quindi inizializzato il servizio utilizzando il seguente codice. In questo caso, vengono utilizzate le credenziali "my_premium":

    from qiskit_ibm_runtime import QiskitRuntimeService
    
    service = QiskitRuntimeService()
  • Se ricevi continuamente l'errore "401 Non autorizzato", potresti stare cercando di utilizzare un token bearer invece della tua chiave API.

Seleziona automaticamente l'istanza

Se si fornisce un token ma non un CRN di istanza quando si istanzia il servizio, QiskitRuntimeService si autentica all'account identificato dal token e utilizza la selezione automatica dell'istanza per scegliere l'istanza più pertinente per l'attività richiesta. Se sono disponibili più istanze all'interno del proprio account, il servizio sceglie automaticamente tra le istanze disponibili, in base alla risorsa richiesta e alle opzioni QiskitRuntimeService (se impostate): plans_preference, region, tags.

  • plans_preference: I tipi di piani di istanza a cui dare priorità. Ad esempio, se si inserisce [open] è stato inserito, sono disponibili solo le istanze di Open Plan. I valori accettati sono open, premium, pay-as-you-go, flex e on-prem. Se plans_preference non è specificato, i piani gratuiti hanno la priorità su quelli a pagamento.
  • region: La regione dell'istanza. I valori accettati sono us-east e eu-de.
  • tags: I tag dell'istanza. Accetta un elenco di stringhe di nomi di tag.
Note

È possibile impostare le credenziali salvate per selezionare automaticamente un'istanza.

L'istanza viene trovata e utilizzata in questo ordine:

  1. Se l'account ha accesso a una sola istanza, questa viene selezionata per impostazione predefinita.
  2. Se vengono utilizzate credenziali salvate e un'istanza è stata specificata con le credenziali, viene utilizzata tale istanza. Vedere Considerazioni durante il caricamento delle credenziali salvate.
  3. Se il tuo account dispone di più istanze in grado di accedere alla QPU richiesta, il sistema utilizza le preferenze relative al piano da te specificate per scegliere un piano e un'istanza. Per v0.42qiskit-ibm-runtime e versioni successive, i piani gratuiti hanno la priorità per impostazione predefinita.
  4. Se l'account ha accesso a più istanze ma solo una può accedere alla QPU richiesta, viene selezionata l'istanza con accesso. Se l'istanza non è associata a un piano gratuito, si dovrà sostenere un costo.

Esempi

In questo esempio, il servizio cerca tutte le istanze disponibili per l'account per trovare quelle che possono accedere al backend specificato:

service = QiskitRuntimeService(token=<your-API_KEY>)

In questo esempio, il servizio cerca tutte le istanze disponibili per l'account nell'area UE per trovare quelle che possono accedere al backend specificato:

service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")

In questo esempio, il servizio cerca tutte le istanze disponibili per l'account e contrassegnate come services per trovare quelle che possono accedere al backend specificato:

service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])

In questo esempio, il servizio cerca tutte le istanze premium e aperte disponibili per l'account per trovare quelle che possono accedere al backend specificato. Se un backend si trova sia in un'istanza Premium che in un'istanza Open Plan, l'istanza Premium Plan ha la priorità perché premium è specificato per primo in plans_preference.

service = QiskitRuntimeService(token=<your-API_KEY>, 
    plans_preference=['premium', 'open'])

Determinare quale istanza è stata scelta

L'istanza selezionata viene restituita come avviso. Inoltre, è possibile eseguire service.active_instance() per determinare l'istanza attiva.

Test a livello locale con qiskit-ibm-runtime

La classe QiskitRuntimeService può essere inizializzata con channel=local per eseguire una simulazione locale. In questo caso, l'autenticazione non è richiesta e non è necessario fornire valori per token o instance. Pertanto, non è consigliabile salvare un account locale. Si può invece procedere all'istanziazione diretta:

from qiskit_ibm_runtime import QiskitRuntimeService

# Initialize for local testing

service = QiskitRuntimeService(channel="local")

Passi successivi

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.