snow light man people

Codifica per qubit: come programmare in Quantum Computer Assembler

text
Photo by Markus Spiske on Pexels.com

Sandia Labs è pioniere di Just Another Quantum Assembly Language (“Jaqal”) sulla propria piattaforma QSCOUT

L’informatica quantistica non è un’elaborazione a tutti gli effetti fino a quando non ci saranno software quantistici oltre che hardware quantistici. Un progetto di computer quantistico open source presso i Sandia National Laboratories di Albuquerque, nel New Mexico, mira ad affrontare questa disparità con un linguaggio assembly personalizzato per il calcolo quantistico.

Nei prossimi anni, la fisica Susan Clark e il suo team di Sandia hanno in programma di utilizzare una sovvenzione di 25 milioni di dollari (Italia dove sei?) dal Dipartimento dell’Energia degli Stati Uniti per eseguire il codice fornito da ricercatori accademici, commerciali e indipendenti di tutto il mondo sul loro Piattaforma “QSCOUT” in aggiornamento costante da 3 qubit di oggi a 32 qubit entro il 2023.

QSCOUT sta per Quantum Scientific Computing Open User Testbed ed è costituito da atomi di itterbio ionizzati che levitano all’interno di una camera a vuoto. Lampi di luce laser ultravioletta fanno ruotare questi atomi, eseguendo algoritmi scritti nel codice di assemblaggio quantistico alle prime armi del team, che hanno chiamato Just Another Quantum Assembly Language o JAQAL.

Sebbene Google, IBM e alcune altre società abbiano costruito macchine quantistiche più grandi e prodotto i propri linguaggi di programmazione, Clark afferma che QSCOUT offre alcuni vantaggi a coloro che desiderano esplorare questa frontiera dell’informatica. I gate superconduttori, come quelli nelle macchine Google e IBM, sono certamente veloci. Ma sono anche instabili, perdono coerenza (e dati).

Grazie alla tecnologia di intrappolamento ionico simile a quella sviluppata dalla società IonQ (che ha pubblicato uno spiegone qui), Clark afferma che QSCOUT può mantenere la coerenza del calcolo, un equivalente computazionale del mantenimento del un filo del discorso per oltre 10 secondi.

Il vero vantaggio di QSCOUT non sono le prestazioni, tuttavia, ma la capacità che offre agli utenti di controllare il funzionamento del computer quanto desiderano, anche aggiungendo operazioni nuove o modificate all’architettura del set di istruzioni di base della macchina.

Per fornire quella combinazione di precisione e flessibilità, hanno creato Jaqal (Solo la prima lettera e’ maiuscola), che include comandi per inizializzare gli ioni come qubit, ruotarli individualmente o insieme in vari stati, intrecciarli in sovrapposizioni e leggere i loro stati finali come dati di output.
La prima riga di qualsiasi programma Jaqal, ad esempio:

from qscout.v1.std usepulses *
carica un file di impulsi di gate che definisce le operazioni standard (“porte”, nel gergo dell’informatica quantistica). Questo schema consente una facile estensibilità. La prossima versione aggiungerà nuove istruzioni per supportare più di 10 qubit e aggiungere nuove funzioni. Inoltre gli utenti possono persino scrivere le proprie funzioni.

Un’aggiunta in cima alla lista dei desideri è una caratteristica data per scontata nell’informatica classica: la capacità di eseguire una misurazione parziale di un calcolo in corso e di apportare quindi aggiustamenti in base allo stato intermedio. L’interconnessione dei qubit rende queste misurazioni parziali complicate nel regno quantistico, ma gli sperimentatori hanno dimostrato che si può fare.

Programmi pratici mescoleranno operazioni quantistiche e classiche, quindi il team QSCOUT ha anche rilasciato su Github un pacchetto Python chiamato JaqalPaq che fornisce un emulatore Jaqal e comandi per includere il codice Jaqal come oggetto all’interno di un programma Python più grande.

La maggior parte delle prime cinque proposte di progetto che Sandia ha accettato da un lotto iniziale di 15 candidati eseguirà analisi comparative di vario tipo rispetto ad altri computer quantistici. Ma, dice Clark, “Uno dei team [guidato da Phil Richerme presso l’Indiana University, Bloomington] sta risolvendo un piccolo problema di chimica quantistica trovando gli stati fondamentali di una particolare molecola”.

Dice che prevede di invitare un secondo round di proposte a marzo, dopo che il team ha aggiornato la macchina da 3 a 10 qubit.

Uno dei più semplici programmi non banali tipicamente eseguiti su un nuovo computer quantistico, è il codice che intreccia due qubit in uno dei cosiddetti stati di Bell, che sono sovrapposizioni dei classici stati binari 0 e 1. La documentazione di Jaqal fornisce un esempio di un programma di 15 righe che definisce due operazioni da manuale, esegue quelle istruzioni per preparare uno stato Bell e quindi legge le misurazioni degli stati risultanti dei due qubit.

Ma come computer a ioni intrappolati, QSCOUT supporta un’operazione ingegnosa chiamata porta Mølmer – Sørensen che offre una scorciatoia. Cche consente al programma di 6 righe di seguito di eseguire la stessa operazione e di ripeterla 1024 volte:

register q[2]        // Define a 2-qubit register

loop 1024 {          // Sequential statements, repeated 1024x
    prepare_all     // Prepare each qubit in the |0⟩ state
    Sxx q[0] q[1]    // Perform the Mølmer–Sørensen gate
    measure_all     // Measure each qubit and output results
}

chevron_left
chevron_right
%d blogger hanno fatto clic su Mi Piace per questo: