l'approfondimento

Linguaggi di programmazione: il quantum software e le sue sfide

Il concetto di quantum software è molto ampio: comprende tutto il software che ha a che fare con i sistemi basati su tecnologie quantistiche, i programmi quantistici veri e propri, il software di controllo, e molto altro. Il punto su algoritmi, linguaggi, compilatori, SDK e ambienti di esecuzione

Pubblicato il 20 Set 2022

Michele Amoretti

Dipartimento di Ingegneria e Architettura, Università di Parma & CINI HPC-KTT

Luca Paolini

Dipartimento di Informatica, Università di Torino & CINI HPC-KTT

Luca Roversi

Dipartimento di Informatica, Università di Torino & CINI HPC-KTT

quantum4

Il controllo delle attuali infrastrutture informatizzate è tipicamente affidato ad una catena di strumenti. Gli anelli della catena permettono di controllare l’hardware — la parte più fisica dell’infrastruttura –, per mezzo di descrizioni linguistiche, tipicamente individuate col termine: “linguaggi di programmazione”; ciascuna descrizione linguistica è adatta a descrivere cosa debba essere eseguito durante una specifica fase per il funzionamento globale di una infrastruttura informatizzata.

Q#, QDK & QIR | QuBites 3.5 | Quantum Computing Simplified

Q#, QDK & QIR | QuBites 3.5 | Quantum Computing Simplified

Guarda questo video su YouTube

Ad esempio, molto ad alto livello, un browser è un macro-anello in una catena che si avvale di un insieme di linguaggi: alcuni sono adatti alla rappresentazione delle pagine, altri al loro confezionamento, affinché le pagine possano essere trasmesse tra due nodi Internet. La trasmissione, però, è guidata da altro software orientato alla descrizione di quanto è necessario per controllare l’hardware che invia i segnali fisici lungo un canale fisico.

La catena di controllo oggi disponibile per l’uso di hardware quantistico – esso esegue computazioni in grado di sfruttare i fenomeni della meccanica quantistica, col fine di incrementare le prestazioni delle attuali infrastrutture informatizzate -, è lungi dall’essere maturo quanto le attuali tool-chain (le catene cui accennavamo sopra) che legano applicazioni software e hardware che implementa tali applicazioni.

In questo lavoro discutiamo le caratteristiche di possibili anelli in grado di costituire una catena che leghi applicazioni software a hardware quantistico.

A tal fine, con lo scopo di suggerire che: “occorre saper fare cose diverse da quanto già sappiamo fare, se vogliamo sfruttare la computazione quantistica”, cominciamo con l’illustrare le intuizioni alla base del “Teletrasporto quantistico”: è un algoritmo rilevante in grado di sfruttare le peculiarità della meccanica quantistica per trasportare informazione tra due luoghi, soddisfacendo specifici vincoli di riservatezza.

Quindi, forniamo una panoramica di alcuni degli anelli che servono per passare dalla descrizione del teletrasporto alla sua implementazione. Un primo insieme di anelli sono i linguaggi di programmazione quantistici attualmente disponibili. Un secondo insieme di anelli è costituito dai programmi in grado di trasformare, ad esempio, la descrizione ad alto livello del “Teletrasporto quantistico” in istruzioni che un hardware quantistico è in grado di eseguire, i cosiddetti compilatori.

Concludiamo con una brevissima analisi di ciò che ancora manca all’intera catena perché le macchine quantistiche diventino utilizzabili con un grado di difficoltà paragonabile a quello che affrontiamo nell’usare l’hardware attualmente ritenuto standard.

Algoritmi quantistici e Teletrasporto quantistico

Riassumere in poche righe le peculiarità degli algoritmi quantistici è molto difficile. Preferiamo utilizzare un esempio concreto e piuttosto completo: l’algoritmo per il teletrasporto quantistico, ideato da Bennet et al. nel 1993.[1]

Teletrasporto quantistico (Teleportation)

Il “teletrasporto quantistico” permette di trasmettere molto efficientemente informazioni “impacchettate” in uno stato quantistico, tipicamente identificato col nome “qubit”. La parola “impacchettare” evoca l’idea che un qubit può condensare in un unico “numero” un insieme di informazioni.

Con l’attuale tecnologia per la trasmissione dati che, per comodità diciamo essere “classica”, siamo in grado di trasmettere un insieme di informazioni o in sequenza, elemento per elemento, su un singolo canale, o in parallelo, su più canali paralleli. Invece, grazie al “teletrasporto quantistico” la trasmissione dello stesso insieme di informazioni può essere condensata, come vedremo in seguito, in un insieme molto più contenuto rispetto a quello tradizionale. Per questo, per contrapposizione, diciamo che il “teletrasporto quantistico” non fa parte della tecnologia “classica”; il motivo è che sfrutta superposition e entanglement, concetti di cui diamo conto qui di seguito a livello molto intuitivo.

Impacchettare un insieme X di informazioni in un qubit significa mettere (la rappresentazione de)gli elementi dell’insieme X in superposition (sovrapposizione), in accordo con un’opportuna rappresentazione. La trasmissione a distanza di un qubit sfrutta, invece, l’entanglement (aggrovigliamento) tra qubit. Esistono esperimenti che, realizzando il protocollo “teletrasporto quantistico”, dimostrano l’esistenza di entanglement tra coppie di qubit che “vivono” a 1400 chilometri di distanza[2].

Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso

Quale problema vogliamo risolvere?

Supponiamo che due persone, per convenzione A(lice) e B(ob), possano agire a piacimento su due qubit: qA è un qubit assegnato ad A e qB a B.

Lo scopo finale è che A trasmetta a B un ulteriore qubit che chiamiamo qI(nformazione); siccome anche qI è un qubit, se trasmesso, esso trasporta efficientemente l’insieme di informazioni che impacchetta.

Il seguente paio di vincoli rende interessante il problema:

  • Vincolo 1. La velocità con cui A deve comunicare qI a B deve essere la più alta possibile.
  • Vincolo 2. A non conosce, e non può conoscere, alcun dettaglio su qI. Questo implica che non può fornire a B una descrizione esaustiva di qI tramite un canale di comunicazione convenzionale.

In accordo con i vincoli 1 e 2, ipotizziamo alcune strategie alternative che A potrebbe adottare per trasmettere I a B.

  1. La trasmissione di qI potrebbe consistere nel trasportare fisicamente qI sino a B. Se la distanza tra A e B fosse 1400 chilometri — distanza menzionata sopra –, usando mezzi adatti, il tempo di trasporto potrebbe anche essere accettabile, ma non necessariamente quello auspicato o necessario, violando il Vincolo 1. Inoltre, si tratterebbe di un metodo ampiamente sperimentato e non interessante. Non c’è alcuna novità nel trasportare una “scatola” da un posto ad un altro.
  2. Quasi in analogia completa con la strategia al punto precedente, A potrebbe immaginare di fare una copia qI’ di qI e di trasportare qI’ fisicamente a B. La strategia non solo non sarebbe interessante per i motivi già citati, ma proprio non sarebbe possibile. Il no-cloning theorem dimostra l’impossibilità di clonare qubit arbitrari, qI incluso. È una delle peculiarità che distingue i qubit dai bit di informazione che i sistemi attuali di trasmissione dati manipolano continuamente, in particolare, copiandoli senza alcuna limitazione, se necessario.
  3. Per evitare la violazione del Vincolo 1 che caratterizza i due punti precedenti, A potrebbe ingegnarsi per ricavare da qI le informazioni che, una volta trasmesse a B, permetterebbero a quest’ultimo di ricostruire qI in piena autonomia. In questo caso la velocità di trasmissione potrebbe essere la massima possibile, ad esempio quella della luce, raggiunta da trasmissioni in radiofrequenza, soddisfacendo il Vincolo 1.

Tuttavia, si violerebbe il Vincolo 2: anche A potrebbe ricostruire qI, esattamente come B. Inoltre, per ricavare le informazioni finalizzate a ricostruire qI, A dovrebbe eseguire molti esperimenti di lettura su qI, ed usare strumenti tipici della statistica per inferire il contenuto di qI. Questa necessità deriva proprio dal modo in cui qI, in quanto qubit, “impacchetta” l’insieme di informazioni. Tuttavia, leggere qI comporta la distruzione del suo stato di sovrapposizione per motivi intrinseci al funzionamento dei fenomeni fisici in gioco in un qubit. Segue che A dovrebbe clonare più volte qI per ripetere la lettura, ma il no-cloning theorem lo vieterebbe.

Intuizioni sul “teletrasporto quantistico”

Il “teletrasporto quantistico” risolve il problema iniziale di trasmettere qI da A a B, senza violare i vincoli 1 e 2, come segue.

  1. L’ipotesi, realizzabile concretamente, è che A e B possono operare su una coppia (qA,qB) di qubit, con A che accede solo a qA, e B solo a qB, in cui qA e qB devono essere entangled (formando uno “Stato di Bell”) e possono essere dislocati anche a grande distanza l’uno dall’altro.
  2. Attraverso un’operazione che in nessun modo corrisponde a leggere il contenuto di qI, A può influenzare il contenuto di qA con quello di qI. Questa operazione ha l’effetto di alterare simultaneamente sia il contenuto di qA, sia quello di qB siccome qA e qB sono entangled.
  3. Un ulteriore (macro) passo consiste nel distruggere, letteralmente, da parte di A, il contenuto sia di qI, sia di qA. La distruzione equivale a ricavare sia da qI, sia da qA, quel che possiamo immaginare come un “riassunto parziale” di quanto sia qI, sia qA contengono. Il riassunto parziale consiste in due bit bA e bI di informazione — non due qubit! –, da cui è impossibile ricavare sia quanto contenuto inizialmente in qA, sia, tantomeno, quanto inizialmente in qI. È il motivo per cui bA e bI sono riassunti parziali.
  4. Alla velocità massima possibile, A invia a B sia bA che bI.
  5. Ottenendo B i due bit bA e bI, e possedendo il qubit qB, alterato dal contenuto di qI al precedente passo 2, può alterare proprio qB a sua disposizione, in funzione di bA e bI, affinché qB diventi identico al contenuto iniziale di qI.

In conclusione, A non sa, e mai saprà, cosa ci fosse in qI e non può ricostruirlo, ma B può ricostruire, grazie ai riassunti parziali bA e bI, e alla variazione che qI ha apportato a qB, cosa ci fosse in qI. Il tutto senza duplicare qI, e trasmettendo a B informazioni alla massima velocità possibile.

Computer quantistico: cos'è, come funziona, chi ci lavora - Codice, La vita è digitale 06/08/2018

Computer quantistico: cos'è, come funziona, chi ci lavora - Codice, La vita è digitale 06/08/2018

Guarda questo video su YouTube

Linguaggi di programmazione quantistici

I più comuni algoritmi sviluppati per architetture quantistiche sono descritti nel quadro del modello di computazione basato sui circuiti. Certamente tra questi, oltre al teletrasporto quantistico illustrato in precedenza, ricordiamo anche la ricerca di Grover e la fattorizzazione di Shor, che sono in grado di assicurare una notevole accelerazione rispetto ai migliori algoritmi classici che risolvono gli stessi problemi.

Come nel caso classico, gli algoritmi quantistici corrispondono essenzialmente a sequenze finite di istruzioni. In questo quadro, sono stati proposti dei linguaggi di programmazione quantistici mirati a permettere descrizioni user-friendly e ad alto livello dell’algoritmo considerato. La prima proposta in questo senso è stata avanzata nel 1996 da Knill[3] adattando il classico pseudo-codice usato, in molti testi universitari, per descrivere algoritmi classici alla possibilità di descrivere algoritmi operanti su una architettura quantistica astratta, chiamata QRAM (quantum random access machine).

Tale proposta ha fortemente influenzato tutte le proposte seguenti anzitutto in relazione alla semplicità ed alla generalità dell’architettura, che integra l’architettura classica con la possibilità di eseguire operazioni su registri quantistici (gruppi di qubit). Questi linguaggi si sono distinti dalla proposta di Knill principalmente in termini di paradigmi alternativi a quello imperativo, nella precisazione matematica della sintassi del linguaggio e nella caratterizzazione della loro semantica.

Lo sviluppo di questi linguaggi di programmazione ha molteplici obiettivi[4]: (i) facilitare lo sviluppo di nuovi algoritmi; (ii) semplificare l’insegnamento degli algoritmi sviluppati; (iii) semplificare la stima del costo computazionale degli algoritmi ed il loro confronto con la controparte classica in termini di efficienza; (iv) sviluppare implementazioni scalabili e resilienti agli errori; (v) predisporre la possibilità di analizzare e verificare il loro comportamento in maniera automatica; e così via.

Un notevole sforzo è stato speso nella ricerca di sistemi di tipi che prima dell’esecuzione (ossia, staticamente a tempo di compilazione) assicurino l’assenza di taluni errori indipendenti dall’algoritmo ed anche l’assenza di operazioni che violino le leggi della fisica quantistica. Prosaicamente, questi sistemi di tipo mirano ad impedire al programmatore un uso inappropriato della componente quantistica (come la clonazione di qubit), mirano ad assicurare le usuali verifiche sulla componente classica ed, infine, mirano a garantire una corretta interazione tra le due componenti.

Negli ultimi due decenni, in ambito accademico sono stati proposti numerosi linguaggi di programmazione quantistici prototipali che hanno individuato ed esplorato varie soluzioni ad alcune questioni accennate basandosi su raffinati approcci logico-matematici. D’altro canto, la maggior parte degli ambienti di sviluppo quantistici attualmente proposti dalle aziende (incluse IBM, Google, …) coinvolte in questa ricerca si sono appoggiate a linguaggi di programmazione classici dotati di librerie per l’utilizzo delle componenti quantistiche disponibili (simulatori e/o reali coprocessori). Una scelta motivata dall’obiettivo di facilitare l’utilizzo degli attuali algoritmi quantistici da parte degli odierni programmatori.

Purtroppo, in questo contesto non è ragionevole affrontare tutti questi linguaggi, anche volendo limitarci all’individuazione dei loro aspetti salienti. Per questo motivo ne considereremo uno solo: Q#[5]. Questo linguaggio fa parte dell’ambiente di sviluppo QDK della Microsoft, che permette tra l’altro anche l’utilizzo dei pacchetti Python per lo sviluppo di applicazioni Qiskit e Cirq (che vengono discussi in maggior dettaglio nel seguito).

Q# è un linguaggio di programmazione che opera all’interno del modello basato sui circuiti individuato da Knill, e quindi è indipendente da specifiche architetture (platform-agnostic). In questo modello il flusso di controllo è classico, ma le istruzioni possono trattare dati quantistici. Un programma Q# è costituito da funzioni classiche che quando chiamate possono interagire con il sistema quantistico. In altre parole, un programma Q# non modifica direttamente lo stato quantistico, ma piuttosto descrive le operazioni quantistiche che andranno ad agire sul registro quantistico. Quest’ultimo concettualmente può essere immaginato come un coprocessore quantistico che viene messo a disposizione del nostro programma. La retroazione del registro quantistico con il controllo classico avviene, nel rispetto delle istruzioni dell’algoritmo in questione, attraverso le misurazioni di stati quantistici che influenzano lo stato misurato in accordo con le leggi della fisica quantistica.

Una volta scritto il programma Q# questo può essere compilato in modo efficiente per specifici simulatori:

  1. simulatori quantistici full-state che modellano una architettura ideale;
  2. simulatori limitati (dotati di potenti ma limitati insiemi di porte quantistiche) come i Toffoli-simulatori (che offrono prestazioni migliori dei simulatori full-state);
  3. simulatori che usano rappresentazioni matematiche speciali (sparse simulator) e possono permettere una simulazione efficiente di un ampio numero di qubit;
  4. simulatori che coinvolgono aspetti di decoerenza e interferenza dell’informazione (noise-simulation) aderenti alle concrete dinamiche delle architetture quantistiche reali.

Q# include molti aspetti e similitudini con i linguaggi classici F#, C# e Python. Q# supporta un approccio procedurale orientato alla scrittura di programmi che includono istruzioni per la selezione di blocchi di codice condizionati da eventi, costrutti per l’iterazione e tipi di dati comuni. In aggiunta, predispone strutture dati e procedure specificamente quantistiche. In particolare, prevede esplicitamente la dichiarazione delle procedure che coinvolgono operazioni quantistiche chiamate operation, in contrapposizione alle function che invece sono procedure propriamente classiche. Per avere una idea dell’utilità di questo approccio, notiamo che quando le operation risultano unitarie allora il linguaggio fornisce alcune “facility” tipiche della programmazione reversibile, come la possibilità di generare automaticamente la procedura che inverte l’operazione.

Compilatori

Scelto un opportuno linguaggio di programmazione, è possibile descrivere una computazione quantistica a livello più o meno alto (come visto nella sezione precedente). In generale, però, si assume che sia possibile applicare gli operatori disponibili (a singolo qubit o a due qubit) a qualsiasi sottoinsieme del registro quantistico che si intende utilizzare. I qubit fisici, però, non sono tutti adiacenti tra loro, bensì rispettano una specifica “coupling map”. Un esempio è presentato nella Fig. 1 (a), dove solo uno dei cinque qubit fisici è adiacente a tutti gli altri. L’applicazione effettiva degli operatori a due qubit può avvenire solo tra coppie di qubit fisici adiacenti. Per consentire dunque l’esecuzione di un algoritmo platform-agnostic, bisogna decidere come allocare i qubit astratti in quelli fisici ed eventualmente modificare la descrizione della computazione fornita dall’utente, applicando opportuni “SWAP gate”. Lo SWAP è un operatore a 2 qubit che scambia gli stati dei due ingressi. Si consideri l’esempio della Fig. 1. il circuito “astratto” (b) consiste di un registro quantistico a 5 qubit, ai quali vengono applicati 5 “CNOT gate” in sequenza. Il CNOT è un operatore a 2 qubit (uno detto “control qubit”, l’altro detto “target qubit”), per cui lo stato finale del target qubit è influenzato dagli stati iniziali di entrambi i qubit, mentre lo stato del control qubit rimane inalterato. Si può notare come il circuito (b) possa eseguito a patto di: 1) scegliere una opportuna allocazione iniziale dei qubit logici nei qubit fisici (q0 in Q2, q1 in Q0, ecc.); 2) applicare uno SWAP gate tra Q0 e Q3 dopo i primi quattro step di computazione. L’allocazione iniziale ottimale è quella che minimizza il numero di SWAP gate da inserire nel circuito, perché ciascuno di essi “costa” come tre operatori CNOT. Queste operazioni di modifica del circuito quantistico vengono svolte da un “quantum compiler” il cui output è una versione funzionalmente equivalente – ma eseguibile sul processore prescelto – del circuito di input.

Fig. 1 – Per rispettare i vincoli imposti dalla coupling map (a), i qubit del circuito (b) devono essere opportunamente allocati nei qubit fisici (indicati con le Q maiuscole). Dopodiché, il circuito (b) deve essere trasformato nel circuito (c) dove uno SWAP gate scambia lo stato dei qubit q1 e q2, e di conseguenza l’ultimo operatore CNOT deve essere applicato non più tra q1 e q4, bensì tra q2 e q4.

Spesso si parla di compilazione in senso lato, ma bisognerebbe distinguere tra compiler e transpiler. Nel primo caso, l’input è la descrizione dell’algoritmo quantistico in un linguaggio di alto livello (ad esempio Python) e l’output è la descrizione equivalente in un linguaggio di più basso livello (QASM o, ancora più vicino all’hardware, impulsi di controllo). Nel caso del transpiler, invece, la descrizione dell’algoritmo viene riformulata usando sempre lo stesso linguaggio, ma tenendo conto di vincoli particolari, quali la coupling map dello specifico processore o la rumorosità dei qubit e dei gate.

Principali SDK ed ambienti di esecuzione

Lo sviluppo di quantum software, una volta scelto il linguaggio di alto livello (Python, Q#, ecc.), richiede l’utilizzo di Software Development Kit (SDK) specifici, che comunemente permettono di descrivere il circuito quantistico, di compilarlo e di lanciarne l’esecuzione su un dispositivo reale (accessibile attraverso servizi cloud) o su un simulatore (locale o remoto). IBM mette a disposizione degli utenti una decina di computer quantistici, caratterizzati da diverse dimensioni della memoria quantistica. I modelli a 5 qubit sono accessibili gratuitamente a tutti. I modelli con più di 5 qubit invece sono disponibili solo per gli enti di ricerca o le aziende convenzionate con IBM. Nel seguito vengono analizzati gli SDK più comuni e i relativi ambienti di esecuzione.

Rilasciato per la prima volta nel 2017, Qiskit di IBM è uno dei primi e più popolari SDK per lo sviluppo di programmi quantistici in linguaggio Python. Nella versione più recente (0.3.7), include tre API principali:

  • Qiskit Terra – permette di definire circuiti quantistici e di eseguirli localmente (in simulazione) o in remoto (su nodi veri o simulati, resi disponibili da IBM)
  • Qiskit Aer – include simulatori realistici (con tanto di modelli di rumore) di computer quantistici
  • Qiskit IBM Quantum Provider – per creare e sottomettere job alla piattaforma cloud di IBM

Inoltre, è possibile installare i seguenti pacchetti applicativi:

  • Nature – per studi di fisica e chimica quantistica
  • Finance – per risolvere problemi di ambito finanziario
  • Machine Learning – per sviluppare ed utilizzare reti neurali quantistiche (QNN)
  • Optimization – per modellare e risolvere problemi di ottimizzazione
  • Experiments – per svolgere esperimenti “standard” per la caratterizzazione, calibrazione e verifica dell’hardware quantistico

Qiskit Runtime è un ambiente di esecuzione che supporta la definizione di workflow in cui, ad esempio, l’output di una esecuzione contribuisce a definire l’input o la configurazione di una esecuzione successiva, il tutto gestito automaticamente dai servizi cloud di IBM. L’introduzione di Qiskit Runtime è stata molto apprezzata dalla comunità dei ricercatori, perché semplifica notevolmente la gestione delle esecuzioni remote, riducendo sensibilmente il numero di interazioni tra client (computer dell’utente) e server (cloud di IBM).

Cirq è una libreria open source sviluppata da Google. Permette di scrivere, manipolare e ottimizzare circuiti quantistici, usando il linguaggio Python. Questi ultimi possono essere eseguiti in simulazione (localmente) o su dispositivi reali offerti da Google (solo ai ricercatori che hanno concordato un progetto di ricerca con l’azienda) o dalle aziende partner Alpine Quantum Technologies, Pasqal, IonQ, Azure e Rigetti. Per questo motivo, oltre alla API principale (cirq) vi sono alcuni pacchetti vendor-specific. La strategia di Google è quindi diversa da quella di IBM. Se quest’ultima punta esclusivamente sulla propria tecnologia e sullo sviluppo di pacchetti applicativi avanzati, Google invece cerca di fare in modo che la propria API sia universale, cioè utilizzabile con hardware diversi dal punto di vista della tecnologia e del produttore.

Forest è l’SDK di Rigetti, azienda fondata nel 2013 da un ex dipendente di IBM, specializzata nello sviluppo di quantum hardware e quantum software. Forest include:

  • PyQuil – libreria Python per scrivere ed eseguire programmi quantistici usando Quil;
  • Quilc – compilatore di programmi Quil, altamente ottimizzato; produce codice eseguibile sull’hardware di Rigetti, tenendo conto anche della qualità dei singoli gate (cerca di minimizzare l’uso di gate a bassa qualità, e di massimizzare l’uso dei gate migliori);
  • QVM – la Quantum Virtual Machine fornisce un ambiente di simulazione dell’hardware quantistico di Rigetti.

L’accesso ai computer quantistici di Rigetti è possibile tramite la piattaforma Quantum Cloud Services (QCS). Rigetti punta forte sul proprio linguaggio Quil. Difatti ha sviluppato componenti software che permettono agli sviluppatori Qiskit e Cirq di generare facilmente codice Quil a partire dal codice Python scritto utilizzando quelle librerie.

Altri SDK significativi sono:

  • ProjectQ – progetto open source nato in ambito accademico, volto a includere diversi back-end, anche se al momento sembra comprendere solo i computer quantistici di IBM;
  • Ocean – dell’azienda canadese D-Wave, produttrice di quantum annealer, che sono computer quantistici non universali ma dotati di memorie a migliaia di qubit e particolarmente adatti alla soluzione di problemi di ottimizzazione;
  • Quantum Development Kit – di Microsoft, permette di sviluppare programmi in linguaggio Q# e di eseguirli nell’ambiente cloud Azure Quantum, che incorpora hardware quantistico prodotto da IonQ, Rigetti, Pasqal, e altri ancora.

L’evoluzione necessaria

Sebbene i linguaggi di programmazione inclusi negli ambienti commerciali di sviluppo stiano progressivamente assorbendo le idee derivanti dalla ricerca accademica, vi sono ancora varie idee non ancora implementate in nessuna proposta aziendale. Inoltre, anche la ricerca accademica ha molta strada da percorrere per raggiungere gli obiettivi delineati nella sezione sui linguaggi. Insomma, sono presenti larghi margini per l’individuazioni di proposte e soluzioni nei prossimi anni. In aggiunta, vale la pena rimarcare che, in relazione all’hardware quantistico in circolazione, sebbene essa risulti decisamente prematura, la ricerca sulla possibilità di sviluppare algoritmi e linguaggi orientati al controllo quantistico sono già in cantiere.

Per quanto riguarda i compilatori, non è stato ancora individuata la soluzione definitiva. Più elementi si tengono in considerazione (ad es. i parametri di rumore), più il problema si complica. Attualmente una parte della ricerca si sta concentrando sui compilatori per architetture distribuite, caratterizzate da due o più processori quantistici connessi in rete. Lo scopo di queste architetture è consentire la ripartizione su processori quantistici dotati di pochi qubit di algoritmi per il cui funzionamento sono necessari molti qubit. In questo contesto risulta fondamentale trovare la ripartizione che minimizza il numero di operazioni quantistiche “a cavallo” di due processori, perché la loro esecuzione richiede la presenza di stati entangled condivisi.

L’evoluzione dei linguaggi e dei compilatori si accompagnerà con quella di SDK e ambienti di esecuzione. Come visto sopra, la tendenza è quella di fornire, oltre alle librerie di base per la composizione di circuiti quantistici e la loro compilazione, anche librerie applicative. È necessario però un ulteriore sforzo per consentire agli sviluppatori classici di poter usare la potenza del calcolo quantistico senza dover per forza imparare le sue regole fondamentali. Questo sforzo dovrà concretizzarsi in librerie di alto livello, più vicine alla formulazione classica dei problemi che alla loro traduzione in termini quantistici.

  1. https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.70.1895
  2. https://www.nature.com/articles/nature23675 e versione liberamente accessibile https://arxiv.org/abs/1707.00934 .
  3. https://www.osti.gov/biblio/366453
  4. https://www.nature.com/articles/s42254-020-00245-7
  5. https://docs.microsoft.com/en-us/azure/quantum/user-guide/

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Speciale PNRR

Tutti
Incentivi
Salute digitale
Formazione
Analisi
Sostenibilità
PA
Sostemibilità
Sicurezza
Digital Economy
CODICE STARTUP
Imprenditoria femminile: come attingere ai fondi per le donne che fanno impresa
DECRETI
PNRR e Fascicolo Sanitario Elettronico: investimenti per oltre 600 milioni
IL DOCUMENTO
Competenze digitali, ecco il nuovo piano operativo nazionale
STRUMENTI
Da Istat e RGS gli indicatori per misurare la sostenibilità nel PNRR
STRATEGIE
PNRR – Piano nazionale di Ripresa e Resilienza: cos’è e novità
FONDI
Pnrr, ok della Ue alla seconda rata da 21 miliardi: focus su 5G e banda ultralarga
GREEN ENERGY
Energia pulita: Banca Sella finanzia i progetti green incentivati dal PNRR
TECNOLOGIA SOLIDALE
Due buone notizie digitali: 500 milioni per gli ITS e l’inizio dell’intranet veloce in scuole e ospedali
INNOVAZIONE
Competenze digitali e InPA cruciali per raggiungere gli obiettivi del Pnrr
STRATEGIE
PA digitale 2026, come gestire i fondi PNRR in 5 fasi: ecco la proposta
ANALISI
Value-based healthcare: le esperienze in Italia e il ruolo del PNRR
Strategie
Accordi per l’innovazione, per le imprese altri 250 milioni
Strategie
PNRR, opportunità e sfide per le smart city
Strategie
Brevetti, il Mise mette sul piatto 8,5 milioni
Strategie
PNRR e opere pubbliche, la grande sfida per i Comuni e perché bisogna pensare digitale
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr
CODICE STARTUP
Imprenditoria femminile: come attingere ai fondi per le donne che fanno impresa
DECRETI
PNRR e Fascicolo Sanitario Elettronico: investimenti per oltre 600 milioni
IL DOCUMENTO
Competenze digitali, ecco il nuovo piano operativo nazionale
STRUMENTI
Da Istat e RGS gli indicatori per misurare la sostenibilità nel PNRR
STRATEGIE
PNRR – Piano nazionale di Ripresa e Resilienza: cos’è e novità
FONDI
Pnrr, ok della Ue alla seconda rata da 21 miliardi: focus su 5G e banda ultralarga
GREEN ENERGY
Energia pulita: Banca Sella finanzia i progetti green incentivati dal PNRR
TECNOLOGIA SOLIDALE
Due buone notizie digitali: 500 milioni per gli ITS e l’inizio dell’intranet veloce in scuole e ospedali
INNOVAZIONE
Competenze digitali e InPA cruciali per raggiungere gli obiettivi del Pnrr
STRATEGIE
PA digitale 2026, come gestire i fondi PNRR in 5 fasi: ecco la proposta
ANALISI
Value-based healthcare: le esperienze in Italia e il ruolo del PNRR
Strategie
Accordi per l’innovazione, per le imprese altri 250 milioni
Strategie
PNRR, opportunità e sfide per le smart city
Strategie
Brevetti, il Mise mette sul piatto 8,5 milioni
Strategie
PNRR e opere pubbliche, la grande sfida per i Comuni e perché bisogna pensare digitale
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr

Articoli correlati

Articolo 1 di 3