Credito:IBM
L'informatica quantistica è alla soglia dell'affrontare problemi importanti che non possono essere calcolati in modo efficiente o pratico da altri, mezzi più classici. Superare questa soglia ci richiederà di costruire, testare e utilizzare computer quantistici affidabili con 50 o più qubit.
Raggiungere questo potenziale richiederà importanti passi avanti sia nella scienza che nell'ingegneria. Per aiutare a fare quei salti, sono necessari metodi per testare dispositivi quantistici e confrontare i comportamenti osservati con i comportamenti desiderati in modo che il design, produzione, e il funzionamento di questi dispositivi può essere migliorato nel tempo. In particolare, per verificare se i risultati misurati osservati su un dispositivo quantistico sono coerenti con il circuito quantistico in esecuzione, è necessaria la capacità di calcolare le ampiezze quantistiche previste (numeri complessi usati per descrivere il comportamento dei sistemi) per quei risultati al fine di testare circuiti arbitrari. I circuiti quantistici possono essere pensati come insiemi di istruzioni (porte) che vengono inviate a dispositivi quantistici per eseguire calcoli.
Quella necessità ci ha presentato un problema. A circa 50 qubit, i metodi esistenti per calcolare le ampiezze quantistiche richiedono troppi calcoli per essere pratici, o più memoria di quella disponibile su qualsiasi supercomputer esistente, o entrambi. IBM Research ha messo insieme un team quest'anno per studiare questo problema, mira a circuiti a breve profondità per sistemi di 49 qubit e oltre. Abbiamo pubblicato il nostro approccio alla risoluzione di questo problema su arXiv:arxiv.org/abs/1710.05867.
Facevo parte di questa squadra e ho avuto un'idea chiave in un momento apparentemente irrilevante.
Visualizzare le porte quantistiche come una spazzola di setole
un qubit, o bit quantistico, è l'unità di base dell'informazione nell'informatica quantistica, proprio come un po' nell'informatica classica. un qubit, però, può rappresentare contemporaneamente sia 0 che 1 – infatti, in combinazioni ponderate (ad esempio, 37%-0, 63%-1). Due qubit possono rappresentare quattro valori contemporaneamente:00, 01, 10, e 11, di nuovo in combinazioni ponderate. Allo stesso modo, tre qubit possono rappresentare 2^3, o otto valori contemporaneamente:000, 001, 010, 011, 100, 101, 110, 111. Cinquanta qubit possono rappresentare più di un quadrilione di valori contemporaneamente, e 100 qubit su un quadrilione quadrato.
Quando si misurano i qubit, i loro stati quantistici collassano a uno solo di questi valori rappresentati, dove i pesi dei valori – le ampiezze quantistiche – definiscono le probabilità di osservare quei valori. La grande promessa dell'informatica quantistica è la possibilità di eseguire calcoli paralleli su molti risultati possibili in modo esponenziale, per produrre stati quantistici in cui i risultati desiderati dei calcoli hanno ampie ampiezze e, quindi, sarà osservato con alta probabilità quando vengono misurati i qubit.
Il mio momento apparentemente irrilevante è arrivato una notte mentre lavavo i piatti e usavo una spazzola di setole per pulire un bicchiere alto. Improvvisamente mi è venuto in mente che se si guardano le porte applicate a un dato qubit in un circuito di griglia, le porte formano un motivo a spazzola di setole in cui le setole sono le porte impiglianti che vengono applicate a quel qubit. Matematicamente, quel "pennello di setola" di porte corrisponde a un tensore e le setole a indici di tensore. Un tensore in matematica corrisponde essenzialmente a una matrice n-dimensionale in informatica.
Questa intuizione portò immediatamente all'idea di separare un circuito a griglia in singole "spazzole di setole, " uno per ogni qubit, poi calcolando i tensori corrispondenti, e infine combinando i tensori per ogni qubit per calcolare le ampiezze quantistiche per il circuito complessivo. La mattina dopo avevo capito come calcolare le ampiezze per un 64-qubit, circuito di profondità 10 utilizzando solo un Gigabyte di memoria separando gruppi di 16 qubit. Da lì l'idea è passata a modi più generali di partizionare i circuiti in sotto-circuiti, simulando i sottocircuiti separatamente e combinando i risultati dei sottocircuiti in vari ordini per calcolare le ampiezze desiderate.
Il risultato netto è un metodo per calcolare le ampiezze quantistiche che richiede ordini di grandezza in meno di memoria rispetto ai metodi precedenti pur essendo paragonabile al migliore di questi metodi, in termini di quantità di calcolo eseguita per ampiezza. Questi requisiti di memoria più piccoli si ottengono utilizzando lo slicing del tensore in combinazione con le intuizioni sopra menzionate per calcolare le ampiezze di uscita dei circuiti in fette, senza dover calcolare e/o memorizzare tutte le ampiezze contemporaneamente.
Quando si calcolano le ampiezze per i risultati misurati, devono essere calcolate solo le sezioni che corrispondono ai risultati misurati effettivi. In altre parole, allo scopo di valutare le prestazioni di un dispositivo quantistico sulla base di risultati misurati, non è necessaria una simulazione completa e non è necessario sostenere costi computazionali esponenziali nel numero di qubit. Questo è un vantaggio importante del nostro approccio.
Però, se uno è effettivamente interessato a eseguire simulazioni complete, il nostro metodo di slicing ha un ulteriore vantaggio in quanto le fette possono essere calcolate in modo completamente indipendente in modo imbarazzante parallelo, il che significa che possono essere facilmente separate, consentendo la distribuzione dei calcoli su una rete di risorse di elaborazione ad alte prestazioni debolmente accoppiate. Questa possibilità cambia completamente l'economia delle simulazioni complete, consentendo di simulare circuiti quantistici che in precedenza si pensava fossero impossibili da simulare.
Simulazione di circuiti a 49 e 56 qubit utilizzando un supercomputer
Il nostro team di ricerca ha contattato il Lawrence Livermore National Laboratory (LLNL) e l'Università dell'Illinois per trasformare quest'ultima possibilità in realtà. Utilizzando il supercomputer Vulcan presso LLNL e il Cyclops Tensor Framework originariamente sviluppato presso l'Università della California, Berkeley per fare le manipolazioni del tensore, per prima cosa abbiamo scelto di simulare un circuito casuale universale a 49 qubit di profondità 27, che è stata proposta come dimostrazione della cosiddetta supremazia quantistica. Per questa simulazione, i calcoli sono stati suddivisi in 2^11 sezioni con 2^38 ampiezze calcolate per sezione; Sono stati necessari 4,5 Terabyte per contenere i valori del tensore. I calcoli delle sezioni sono stati parallelizzati in modo imbarazzante su sei gruppi di quattro rack di processori, dove ogni gruppo di quattro rack comprendeva 4, 096 nodi di elaborazione con un totale di 64 Terabyte di memoria. In precedenza si pensava che tali circuiti a 49 qubit fossero impossibili da simulare perché i metodi precedenti avrebbero richiesto otto petabyte di memoria, che supera la capacità dei supercomputer esistenti.
Per la nostra prossima dimostrazione, abbiamo scelto un circuito casuale universale a 56 qubit di profondità 23, che sarebbe stato impossibile simulare con i metodi precedenti perché sarebbe stato richiesto un Exabyte di memoria. I calcoli sono stati divisi in 2^19 sezioni di 2^37 ampiezze ciascuna. Ma in questo caso abbiamo scelto di calcolare le ampiezze solo per una fetta scelta arbitrariamente a scopo dimostrativo; Sono stati necessari 3,0 Terabyte per contenere i valori del tensore e i calcoli sono stati eseguiti su due rack da 2, 048 nodi di elaborazione con un totale di 32 Terabyte di memoria.
Oltre a queste manifestazioni, abbiamo anche scoperto modi per partizionare il circuito a 49 qubit in modo che siano necessari solo 96 Gigabyte di memoria per la sua simulazione, con solo poco più del doppio dei requisiti di calcolo. Abbiamo anche scoperto un partizionamento che richiede 162 Gigabyte per i quali non c'è quasi nessun aumento dei requisiti di calcolo. Esiste quindi la possibilità di eseguire ora queste simulazioni su cluster di server di fascia alta, invece di usare i supercomputer.
I progressi nella simulazione aiuteranno i progressi nell'hardware quantistico
Sebbene l'intera portata di ciò che è ora classicamente calcolabile utilizzando i nostri metodi resti ancora da determinare, è chiaro che questo progresso ci ha permesso di superare una soglia nella simulazione di circuiti quantistici a breve profondità di 49 qubit e oltre. pragmaticamente, i metodi faciliteranno la verifica e la comprensione del funzionamento dei dispositivi fisici. Faciliteranno inoltre lo sviluppo e il debug di algoritmi a breve profondità per problemi in cui il calcolo quantistico ha il potenziale per fornire un vantaggio reale rispetto agli approcci convenzionali.
Almeno per i dispositivi quantistici ora in fase di sviluppo o in fase di progettazione, la capacità di eseguire queste simulazioni è ora diventata una questione di quantità di risorse di calcolo che possono essere acquistate economicamente e non se le simulazioni possono essere eseguite fisicamente. Per esempio, nel caso della nostra simulazione a 56 qubit, una simulazione completa non è stata eseguita semplicemente perché la nostra disponibilità di tempo su Vulcano era scaduta. Non c'è dubbio che ora sia possibile eseguire fisicamente una simulazione completa del circuito a breve profondità di 56 qubit. Né i tempi di esecuzione di queste simulazioni sono fisicamente limitati dalle risorse disponibili su sistemi informatici isolati. Poiché i calcoli delle sezioni possono essere parallelizzati in modo imbarazzante, possono essere distribuiti su reti di sistemi debolmente accoppiati con comunicazione minima, consentendo di ottenere una forte scalabilità fino al numero di slice. La simulazione quantistica basata su cloud potrebbe in definitiva consentire la simulazione di circuiti quantistici abbastanza grandi.
Questo significa che non abbiamo bisogno di veri computer quantistici? Affatto. Ne avremo assolutamente bisogno! A seconda del particolare tipo di applicazione, avremo bisogno di computer quantistici fisici per eseguire calcoli che richiedono troppa memoria, o troppa potenza di elaborazione per essere eseguita economicamente su computer classici. E, ad un certo punto, avremo davvero la prova che i computer quantistici avranno un vantaggio rispetto ai computer classici per alcune applicazioni pratiche, in un senso molto reale.
Questa non è una nozione artificiale di "supremazia quantistica". Piuttosto, ora siamo in un periodo in cui ci stiamo preparando per sfruttare appieno l'hardware quantistico, software e capacità ingegneristiche che mettiamo online. La simulazione è già parte integrante di questa fase quantistica.
IBM ha reso disponibile l'accesso ai simulatori e all'hardware effettivo di cinque e 16 qubit come parte dell'esperienza IBM Q, che fornisce risorse per imparare e sperimentare. Abbiamo anche un SDK quantistico, o Quantum Information Software Kit (QISKit) per semplificare la creazione di circuiti. Per saperne di più su come iniziare, abbiamo fornito esempi di notebook Jupyter su github.
Con l'avanzare della tecnologia dei dispositivi, ci sposteremo in un periodo di vantaggio quantistico in cui una vasta gamma di imprese, scienziati e ingegneri sfrutteranno appieno l'hardware e la potenza dell'informatica quantistica per continuare a risolvere problemi sempre più difficili e complessi. Durante questa fase di vantaggio quantistico, saranno necessarie capacità di simulazione avanzate per supportare sia la ricerca e lo sviluppo di nuovi algoritmi quantistici sia il progresso della tecnologia del dispositivo stesso.