Google ha annunciato la prima versione stabile di Cirq. Si trattra di un framework per Python che permette di scrivere programmi da eseguire sui computer quantistici. L’annuncio è importante perchè con l’arrivo della versione di Cirq 1.0, gli sviluppatori hanno adesso una base solida e stabile da cui poter partire ed è possibile sviluppare nuove innovazioni a partire da ciò.
Un aspetto relativo allo sviluppo del settore dei computer quantistici molto importante e su cui Google punta la sua attenzione è la necessità non solo di avere hardware più potente, ma anche di avere software a supporto di esso. La mancanza di un buon supporto software in grado di supportare tale hardware porterebbe a un lento sviluppo di questi sistemi e una maggiore difficoltà di utilizzo completo. Ecco perchè serviranno nuovi linguaggi di programmazione, nuove librerie e nuovi framework per poter supportare il percorso di sviluppo di questo settore.
Google questo lo sa bene, ecco perchè il traguardo di arrivare alla versione 1.0 di Cirq è il culmine di una grande quantità di duro lavoro da parte di centinaia di contributori di Google, dell’industria e del mondo accademico. Da oltre quattro anni gli sviluppatori dietro il progetto tengono un incontro settimanale, chiamato “Cirq Cync”, in cui i membri della comunità si riuniscono per discutere di lavoro da svolgere su Cirq, bug e in generale per “raccontare barzellette terribili ma divertenti sulla programmazione quantistica”.
“Oggi siamo lieti di annunciare la prima versione completa del framework di programmazione quantistica open source Cirq: Cirq 1.0. Cirq è un framework Python per scrivere, eseguire e analizzare i risultati dei programmi per computer quantistici. È stato progettato per computer quantistici a breve termine, quelli con poche centinaia di qubit e poche migliaia di porte quantistiche. Il significato della versione 1.0 è che Cirq supporta la stragrande maggioranza dei flussi di lavoro per questi sistemi ed è considerata un’API stabile che aggiorneremo solo con modifiche sostanziali ai numeri di versione principali.”
I programmi scritti in Cirq possono essere eseguiti non solo sui computer quantistici sviluppati della stessa Google, ma anche su quelli di AQT, IonQ, Pascal Rigetti e IQM. È stato quindi progettato per i computer quantistici a breve termine, cioè quelli con poche centinaia di qubit e poche migliaia di porte quantistiche a disposizione.
Google fa sapere come il primo commit privato relativo al progetto su GitHub risale al 19 dicembre 2017. Il progetto è stato poi annunciato ufficialmente al pubblico il mese di luglio 2018, e dopo più di 3000 commit, si è finalmente arrivati alla prima release stabile. Questa lo è considerata come tale perchè è ritenuta sufficientemente completa da poter essere usata per programmare gli attuali dispositivi quantistici e allo stesso tempo i nuovi aggiornamento non introdurranno cambiamenti tali da causare incompatibilità, almeno non prima della versione 2.0.
“Quando abbiamo iniziato a lavorare su Cirq, i computer quantistici erano costituiti solo da pochi qubit e da alcune porte quantistiche su questi qubit. La creazione di Cirq e del software di supporto per questi sistemi personalizzati e la loro scalabilità fino a centinaia di qubit negli ultimi (quasi) cinque anni ci ha insegnato molte lezioni. Un punto chiave di queste lezioni è che: poiché l’hardware per il calcolo quantistico continua a crescere in scala e complessità, prevediamo che la creazione di software per supportare questa crescita sarà essenziale per continuare la ricerca e il progresso significativi. Nei prossimi cinque anni, con l’hardware che dovrebbe raggiungere centinaia o addirittura migliaia di qubit, il software sviluppato per l’informatica quantistica dovrà avere un occhio attento al supporto di questi sistemi sempre più grandi. Andando avanti avremo bisogno di un insieme sempre più ampio di framework, linguaggi di programmazione e librerie per realizzare la promessa del calcolo quantistico.”
Immagine copertina. Source: Los Alamos National Laboratory, Credits: Erick Lucero.