• Home
  • Chimica
  • Astronomia
  • Energia
  • Natura
  • Biologia
  • Fisica
  • Elettronica
  •  science >> Scienza >  >> Fisica
    I ricercatori fanno passi avanti verso strumenti di debug per computer quantistici

    Credito:CC0 Dominio Pubblico

    Nell'informatica classica, il debug dei programmi è una delle attività che richiedono più tempo nello sviluppo del software. Il successo del debug si basa su strumenti di sviluppo software e anche sull'esperienza del programmatore. Nell'informatica quantistica, i ricercatori prevedono che il debug sarà una sfida ancora più grande. In un articolo che verrà presto pubblicato all'ACM/IEEE 46th Annual International Symposium for Computer Architecture (come parte delle Federated Computing Research Conferences di ACM 2019), ricercatori della Princeton University presentano strumenti di debug basati su test statistici, con l'obiettivo di aiutare i programmatori a costruire programmi quantistici corretti per computer quantistici a breve termine.

    L'informatica quantistica promette di cambiare il mondo dell'informatica offrendo capacità oltre qualsiasi computer classico. Queste capacità provengono da algoritmi quantistici, sequenze di istruzioni che dicono a un computer quantistico cosa fare per calcolare un risultato, molto simile al software per i computer classici di oggi. Questi algoritmi coprono una vasta gamma di applicazioni. Per esempio, gli algoritmi della chimica quantistica permetterebbero agli scienziati di calcolare le proprietà dei composti chimici direttamente dalle equazioni governative della meccanica quantistica, un compito formidabile oltre la portata dei computer moderni per tutti tranne che per le molecole più semplici. Altri algoritmi promettono di accelerare la ricerca all'interno dei database e di consentire comunicazioni sicure resistenti alle intercettazioni.

    Per circa due decenni, questi algoritmi quantistici esistevano solo come equazioni e specifiche astratte, e non sono mai stati effettivamente eseguiti su veri computer quantistici. Quel panorama di ricerca è cambiato rapidamente. Negli ultimi due anni, i ricercatori hanno costruito il primo prototipo di computer quantistici in grado di eseguire programmi quantistici. In particolare, IBM ha reso disponibili al pubblico computer quantistici su piccola scala per eseguire codice e vedere i risultati. Con questo crescente interesse per la sperimentazione del calcolo quantistico, una nuova e urgente sfida consiste nell'aiutare i programmatori a tradurre quegli algoritmi astratti in un codice di programma quantistico correttamente funzionante.

    "Stavamo scoprendo che anche i ricercatori specializzati in informatica quantistica stanno commettendo sottili errori nel codice del programma quantistico, impedendo ai programmi di dare risultati corretti, "Yipeng Huang, postdoc alla Princeton University e autore del documento, disse. "Se è così difficile per i programmatori quantistici esperti, come possono gli studenti nuovi all'informatica quantistica scrivere programmi corretti, senza l'ausilio di strumenti come i debugger?"

    Nel documento intitolato "Asserzioni statistiche per la convalida dei modelli e la ricerca di bug nei programmi quantistici, "Huang e Margaret Martonosi, un professore di informatica a Princeton, identificare tre difficoltà chiave nel debug di programmi quantistici, e valutare le loro soluzioni nell'affrontare tali difficoltà.

    La prima difficoltà è che i programmatori non possono esaminare facilmente i valori delle variabili di un programma quantistico, mentre il programma è in esecuzione. Questa limitazione rende difficile il debug, considerando che una delle mosse da fare nei programmi di debug è ispezionare i valori delle variabili passo dopo passo nel corso di un programma. I programmatori quantistici non possono eseguire questo tipo di debug perché la lettura di variabili quantistiche implicherebbe la misurazione e il "collasso" dei delicati stati quantistici all'interno dei computer quantistici. Una volta che uno stato quantico è collassato, eventuali osservazioni non sarebbero una descrizione completa dello stato del programma.

    Nella loro carta, Huang e Martonosi affrontano questa sfida trovando modi per eseguire il debug di programmi quantistici utilizzando solo le informazioni sugli stati quantistici collassati. Considerano il debug dei programmi in due diversi tipi di impostazioni; in un'impostazione i programmi quantistici vengono eseguiti in simulazione su un computer classico, e nell'altra impostazione i programmi vengono eseguiti su veri e propri prototipi di computer quantistici. In entrambe le impostazioni, usano più esecuzioni del programma quantistico per trovare la distribuzione degli stati all'interno del programma quantistico.

    La seconda difficoltà è che anche quando sono disponibili osservazioni o simulazioni, gli stati quantistici sono in generale ad alta dimensionalità e difficili da interpretare, limitando la loro utilità per i programmatori per eseguire il debug di programmi quantistici che si comportano in modo anomalo.

    La soluzione di Huang e Martonosi a questa sfida consiste nell'utilizzare test statistici sui risultati delle misurazioni, per aiutare i programmatori a decidere se i risultati sono coerenti con tre tipi di stati. Usano il test statistico chi-quadrato per decidere se gli stati osservati appartengono a uno degli stati classici, sovrapposizione, o stati entangled. "Concentriamo la nostra attenzione su questi tre tipi di stati perché si verificano durante un programma quantistico, e sono più facili da identificare per i programmatori, " disse Huang. "Se gli stati non corrispondono a ciò che il programmatore si aspetta, i test statistici aiutano il programmatore a ingrandire e a trovare errori nel codice del programma."

    La terza difficoltà è che i programmatori non hanno ancora linee guida su dove e cosa controllare durante il debug dei programmi quantistici. Fino a poco tempo fa, gli algoritmi quantistici esistevano principalmente come equazioni; occasionalmente, gli algoritmi sarebbero più approfonditi sotto forma di schemi circuitali quantistici. Il compito di codificare i programmi quantistici comporta la traduzione di questi schemi circuitali quantistici in codice di programma. "Lo stato dell'arte della programmazione quantistica è simile alla programmazione di computer classici 50 anni fa, " disse Huang. "Per il momento, i ricercatori stanno scrivendo programmi quantistici operazione per operazione, su bit di informazione di livello molto basso. Un contributo del nostro articolo è discutere come i modelli e le strutture all'interno degli algoritmi quantistici guidano i programmatori a sapere cosa controllare".

    Nella loro carta, Huang e Martonosi utilizzano i loro strumenti di debug per testare diversi programmi quantistici di riferimento, di cui uno per il factoring di interi, uno per la ricerca dei dati, e uno nell'area della chimica quantistica. Schemi di programma comuni all'interno di questi algoritmi, come operazioni di looping, operazioni di nidificazione, e operazioni di mirroring, servono come guide per i programmatori quantistici per sapere dove utilizzare gli strumenti di debug.

    Supportato dalla National Science Foundation attraverso il progetto EPiQC Expedition, Il lavoro di Huang e Martonosi negli strumenti di debug è un approccio pragmatico al problema della scrittura di programmi quantistici corretti. Si unisce a un campo in crescita di approcci correlati, molti che si basano su prove formali. "Stiamo scoprendo che scrivere programmi quantistici corretti si basa su un mix di tecniche, " ha detto Huang. "Proprio come nel caso della programmazione classica, i programmatori quantistici faranno affidamento su un mix di tecniche pragmatiche e formali".

    © Scienza https://it.scienceaq.com