Come eseguire il codice su un vero computer quantistico

Come iniziare con IBM Quantum

Volete iniziare a lavorare con il Quantum Machine Learning? Date un’occhiata a Hands-On Quantum Machine Learning With Python oppure al nostro corso Quantum Machine Learning.

I computer quantistici non sono più fantascienza. Esistono. E possiamo usarli – gratuitamente. Per esempio, IBM offre l’accesso ai suoi computer quantistici basati su cloud.

Per prima cosa, dobbiamo registrarci ai servizi di calcolo quantistico di IBM. Cliccare su “Crea un account IBMid” e fornire i propri dati. Una volta verificato l’indirizzo e-mail, il gioco è fatto!

Il Dashboard fornisce una panoramica dei servizi IBM Quantum prenotati. Soprattutto, mostra i “Vostri sistemi”. Fate clic su “Visualizza tutto” e poi selezionate “I vostri sistemi” nel menu a discesa del filtro accanto alla barra di ricerca.

Si ottiene una panoramica dei sistemi a cui è possibile accedere. Si tratta di alcuni sistemi con una manciata di qubit. Ma sono sufficienti per iniziare.

Facendo clic su un sistema, si ottiene una visione più dettagliata della sua architettura e configurazione. Ad esempio, il grafico in basso a destra mostra come si connettono i qubit del sistema. Una limitazione che si deve affrontare quando si lavora con un vero computer quantistico è che possiamo agganciare tra loro solo i qubit connessi.

Supponiamo quindi di voler eseguire il nostro circuito quantistico sul dispositivo Quito a 5 qubit.

Naturalmente, dobbiamo prima creare il nostro circuito. Di solito lo facciamo in un quaderno Jupyter. Se non avete ancora Jupyter in funzione, questo post spiega come configurare JuypterLab.

Apriamo quindi un nuovo taccuino Jupyter.

Iniziamo con alcune importazioni e poi definiamo il circuito.

Come si può vedere, aggrovigliamo solo i qubit connessi (righe 14 e 15).

Prima di eseguire il codice, dobbiamo connetterci al dispositivo Quito. Pertanto, dobbiamo caricare il nostro account utilizzando il token. È possibile ottenere il token API dalla dashboard IBM Quantum. Si tratta di una stringa molto lunga. Assicurarsi di tenerla al sicuro.

Successivamente, ci si connette al provider e si ottiene il backend di Quito. Se si desidera connettersi ad altri backend, potrebbe essere necessario selezionare un altro hub, gruppo e progetto. IBM vi informerà quando vi concederà l’accesso ad altri provider.

Quindi, è necessario transpilare il circuito. In questa fase, Qiskit riscrive il codice per adattarlo ai requisiti del dispositivo. Ad esempio, se si tratta di due qubit che non sono collegati fisicamente, Qiskit riscrive il circuito per adattarlo ai requisiti dell’hardware.

Infine, si assembla il circuito e lo si invia al backend che restituisce un oggetto job.

L’oggetto job consente di gestire la richiesta. Ad esempio, è possibile ottenere il suo stato

Molto probabilmente, il lavoro sarà in coda per un bel po’ di tempo.

<JobStatus.QUEUED: ‘il lavoro è in coda’>

Diamo un’altra occhiata alla dashboard di IBM Quantum. Ora dovrebbe esserci una voce nell’elenco “Lavori recenti”. Facendo clic su di essa, si ottengono i dettagli. Qui si vede anche quando è prevista l’esecuzione del circuito. Nel mio caso, ci vuole circa mezz’ora.

Un’altra informazione essenziale è l’id del lavoro. È possibile ottenerlo anche in modo programmatico.

’61b32368e4d3eb10e15c8b0e’

Naturalmente, siamo interessati ai risultati del lavoro una volta completato. Ma forse non si vuole aspettare così a lungo. Quindi, si potrebbe voler recuperare il lavoro in un secondo momento.

Se si tiene aperto il blocco note o si recupera il lavoro in un secondo momento, l’oggetto job restituisce i risultati una volta completato.

Le stringhe di bit indicano i valori misurati dei qubit (letti da destra a sinistra). Si può notare che i qubit superiori nelle posizioni quattro e cinque non sono sempre 0. Questo può sembrare strano perché non abbiamo fatto nulla con loro. Questo può sembrare strano perché non abbiamo fatto nulla con loro. Quindi, dovrebbero rimanere allo stato predefinito di 0. Purtroppo, i qubit sono molto sensibili al rumore.

{
  '00000': 25,
  '00001': 50,
  '10001': 2,
  '10010': 2,
  '10100': 1,
  '10101': 4,
  '11101': 1,
  '00010': 36,
  '00011': 26,
  '00100': 204,
  '00101': 601,
  '00110': 28,
  '00111': 39,
  '01001': 1,
  '01010': 1,
	'01100': 1,
  '01101': 2
}

Conclusione

Il rumore e gli errori sono tra i maggiori problemi che dobbiamo affrontare oggi nell’informatica quantistica. Ad esempio, IBM ha recentemente annunciato un premio di 100.000 dollari per simulare un’hamiltoniana del modello di Heisenberg per un sistema a tre particelle sul sistema Jakarta a 7 qubit di IBM Quantum utilizzando la Trotterizzazione. Il problema principale per portare a termine questa sfida è la gestione del rumore.

 

Articolo originale di Chris Ferrie

https://medium.com/@csferrie/what-could-make-quantum-computing-easy-to-explain-647599468c4c

Share:

Contenuti
Torna in alto