Introduzione a Qiskit
Il nome "Qiskit" è un termine generale che si riferisce a una raccolta di software per l'esecuzione di programmi su computer quantistici. Tra questi strumenti software spicca in particolare il Qiskit SDK open source, e l'ambiente di runtime (accessibile tramite Qiskit Runtime) attraverso cui puoi eseguire carichi di lavoro sulle unità di elaborazione quantistica (QPU) di IBM®. Man mano che la tecnologia quantistica evolve, lo stesso fa Qiskit, con nuove funzionalità rilasciate ogni anno che ampliano questa raccolta fondamentale di software quantistico.
Inoltre, molti progetti open source fanno parte del più ampio ecosistema Qiskit. Questi strumenti software non sono parte di Qiskit in sé, ma si interfacciano con Qiskit e possono offrire funzionalità aggiuntive di grande valore.
IBM è impegnata nello sviluppo responsabile del calcolo quantistico. Scopri di più e consulta i nostri principi per un quantum computing responsabile nell'argomento Responsible quantum computing.
Il Qiskit SDK
Il Qiskit SDK (nome del pacchetto qiskit) è un SDK open source per lavorare con i computer quantistici al livello di circuiti quantistici estesi (statici, dinamici e schedulati), operatori e primitive. Questa libreria è il componente fondamentale di Qiskit; è il pacchetto più grande sotto il nome Qiskit, con la suite di strumenti più ampia per il calcolo quantistico, e molti altri componenti si interfacciano con essa.
Alcune delle funzionalità più utili del Qiskit SDK includono:
-
Strumenti per la costruzione di circuiti (
qiskit.circuit) - Per inizializzare e manipolare registri, circuiti, istruzioni, gate, parametri e oggetti di controllo del flusso. -
Libreria di circuiti (
qiskit.circuit.library) - Un'ampia gamma di circuiti, istruzioni e gate — elementi costitutivi fondamentali per i calcoli quantistici basati su circuiti. -
Libreria di informazioni quantistiche (
qiskit.quantum_info) - Un toolkit per lavorare con stati quantistici, operatori e canali, tramite calcoli esatti (senza rumore di campionamento). Usa questo modulo per specificare osservabili di input e analizzare la fedeltà degli output dalle query sulle primitive. -
Transpiler (
qiskit.transpiler) - Per trasformare e adattare i circuiti quantistici alla topologia specifica del dispositivo, e ottimizzare per l'esecuzione su unità di elaborazione quantistica (QPU) reali. -
Primitive (
qiskit.primitives) - Il modulo che contiene le definizioni base e le implementazioni di riferimento delle primitive Sampler ed Estimator, da cui i diversi fornitori di hardware quantistico possono derivare le proprie implementazioni. Consulta ulteriori informazioni sulle primitive di Qiskit Runtime nella documentazione.
Installazione
Per un'introduzione più dettagliata all'installazione del Qiskit SDK, consulta la pagina di installazione. Se sei pronto a installarlo subito, esegui semplicemente:
pip install qiskit
Benchmarking e il pacchetto Benchpress
Il benchmarking è importante per confrontare le prestazioni relative del software quantistico nelle diverse fasi di un flusso di sviluppo. I test di benchmarking per il software quantistico potrebbero, ad esempio, valutare la velocità e la qualità nella costruzione, manipolazione e transpilazione di circuiti. IBM Quantum è impegnata a offrire l'SDK più performante possibile, e a tale scopo il Qiskit SDK viene sottoposto a benchmarking con oltre 1.000 test sviluppati da importanti università, laboratori nazionali e ricercatori IBM. La suite di benchmarking utilizzata per questi test, denominata Benchpress, è ora disponibile come pacchetto open source. Puoi ora utilizzare il pacchetto Benchpress per eseguire la tua analisi delle prestazioni degli SDK quantistici.
Qiskit Runtime
Qiskit Runtime è un servizio basato su cloud per l'esecuzione di calcoli quantistici su hardware IBM Quantum®. Il pacchetto qiskit-ibm-runtime è un client per tale servizio ed è il successore del Qiskit IBM Provider. Il servizio Qiskit Runtime semplifica i calcoli quantistici e fornisce implementazioni ottimali delle primitive Qiskit per l'hardware IBM Quantum. Per iniziare con le primitive di Qiskit Runtime, visita la documentazione.
Qiskit Runtime è progettato per utilizzare risorse di calcolo classiche e quantistiche aggiuntive, incluse tecniche come la soppressione degli errori e la mitigazione degli errori, per restituire un risultato di qualità superiore dall'esecuzione di circuiti quantistici su processori quantistici. Esempi includono il decoupling dinamico per la soppressione degli errori, e la mitigazione della lettura e l'estrapolazione a rumore zero (ZNE) per la mitigazione degli errori. Scopri come configurare queste opzioni nella pagina Configura la mitigazione degli errori.
Qiskit Runtime include anche tre tipi di modalità di esecuzione per eseguire il tuo programma quantistico su hardware IBM: Job, Session e Batch, ognuna con casi d'uso diversi e implicazioni diverse per la coda dei job quantistici. Un Job è una singola query a una primitiva che può essere eseguita per un numero specificato di shot. Le Session ti consentono di eseguire in modo efficiente più job in carichi di lavoro iterativi su computer quantistici. La modalità Batch ti consente di inviare tutti i tuoi job contemporaneamente per l'elaborazione parallela. Tieni presente che gli utenti del piano Open non possono inviare job in sessione.
Per installare rapidamente Qiskit Runtime, esegui il seguente comando:
pip install qiskit-ibm-runtime
Ulteriori dettagli sulla configurazione di un ambiente di sviluppo per la creazione di programmi quantistici si trovano nella pagina di installazione.
Qiskit Runtime è open source?
La risposta breve è: non tutto. Il software del servizio Qiskit Runtime che gestisce gli aspetti tecnici dell'esecuzione del tuo programma quantistico su un dispositivo IBM Quantum (inclusa qualsiasi mitigazione e soppressione degli errori) non è open source. Tuttavia, il client Qiskit Runtime (l'interfaccia per gli utenti per accedere al servizio Qiskit Runtime), il Qiskit SDK in esecuzione lato server e parte del software utilizzato per la mitigazione degli errori sono open source. Per partecipare agli sforzi open source di Qiskit, visita la nostra organizzazione GitHub su github.com/Qiskit e github.com/Qiskit-Extensions.
Qiskit Serverless
La creazione di applicazioni quantistiche su scala utility richiede generalmente una varietà di risorse di calcolo. Qiskit Serverless (qiskit-ibm-catalog.QiskitServerless) fornisce un'interfaccia semplice per eseguire carichi di lavoro su risorse quantistico-classiche. Ciò include la distribuzione di programmi su IBM Quantum Platform e l'esecuzione remota di carichi di lavoro, nonché una gestione semplificata delle risorse per casi d'uso multi-cloud e di supercomputing quantistico-centrico. Consulta ulteriori informazioni nella documentazione di Qiskit Serverless su come usare questa raccolta di strumenti per:
- Parallelizzare attività classiche, come pre-elaborazione e post-elaborazione
- Mantenere attivi carichi di lavoro a lunga esecuzione nel cloud, anche se il tuo laptop è spento
- Distribuire programmi riutilizzabili nel cloud
Per iniziare subito a usare Qiskit Serverless, installalo con pip:
pip install qiskit_serverless
Qiskit Functions
Le Qiskit Functions (qiskit-ibm-catalog.QiskitFunctionsCatalog) sono servizi astratti progettati per accelerare la scoperta di algoritmi e la prototipazione di applicazioni. Esplora il Catalogo delle Qiskit Functions, che include:
- circuito functions: Servizi che includono transpilazione, soppressione degli errori, mitigazione degli errori e tecniche di post-elaborazione che accettano circuiti astratti e osservabili di misura desiderati come input. Con le circuito functions, gli utenti possono scoprire nuovi algoritmi e applicazioni senza dover gestire la transpilazione o le prestazioni dell'hardware quantistico.
- Application functions: Servizi che includono interi flussi di lavoro quantistici, dalla mappatura dal classico al quantistico, all'ottimizzazione per l'hardware, all'esecuzione sull'hardware e alla post-elaborazione. Gli utenti possono prototipare applicazioni industriali con input e output familiari al dominio.
I membri del Premium Plan, del Flex Plan e dell'On-Prem (tramite IBM Quantum Platform API) Plan possono accedere immediatamente alle funzioni fornite da IBM, oppure acquistare licenze per le funzioni fornite da partner direttamente da tali partner.
Il catalogo può essere installato con pip:
pip install qiskit-ibm-catalog
Qiskit Transpiler Service
Il Qiskit Transpiler Service (nome del pacchetto qiskit-ibm-transpiler) è un nuovo servizio sperimentale che fornisce funzionalità di transpilazione remota nel cloud agli utenti del IBM Quantum Premium Plan, del Flex Plan e dell'On-Prem (tramite IBM Quantum Platform API) Plan. Oltre alle capacità di transpilazione locali del Qiskit SDK, con questo servizio le tue attività di transpilazione possono beneficiare sia delle risorse cloud di IBM Quantum sia di passaggi del transpiler basati sull'intelligenza artificiale. Per saperne di più su come integrare la transpilazione basata su cloud nel tuo flusso di lavoro Qiskit, puoi consultare la documentazione.
Il servizio di transpilazione può essere installato con pip:
pip install qiskit-ibm-transpiler
Addon Qiskit
Gli addon Qiskit sono una raccolta di funzionalità di ricerca per la scoperta di algoritmi su scala utility. Queste funzionalità si basano sulla solida fondazione di strumenti performanti di Qiskit per la creazione e l'esecuzione di algoritmi quantistici. Gli addon sono componenti software modulari che si integrano in un flusso di lavoro per scalare o progettare nuovi algoritmi quantistici. Per saperne di più sull'insieme degli addon Qiskit disponibili e su come iniziare a usarli, visita la documentazione.
Esistono diversi addon a seconda della funzionalità di ricerca a cui sei interessato. Ognuno di essi può essere installato con pip.
Diagonalizzazione quantistica basata su campioni (SQD):
pip install qiskit-addon-sqd
Compilazione quantistica approssimata (AQC):
pip install qiskit-addon-aqc-tensor[quimb-jax]
Retropropagazione degli operatori (OBP):
pip install qiskit-addon-obp
pip install qiskit-addon-mpf
L'ecosistema Qiskit
Oltre a Qiskit, esistono molti progetti open source che usano il nome "Qiskit" ma non fanno parte di Qiskit in sé; piuttosto, si interfacciano con Qiskit e possono offrire funzionalità aggiuntive di valore per integrare il flusso di lavoro Qiskit di base. Alcuni di questi progetti sono mantenuti dai team di IBM Quantum, mentre altri sono supportati dalla più ampia comunità open source. Il Qiskit SDK è progettato in modo modulare ed estensibile per rendere semplice per gli sviluppatori la creazione di progetti come questi che ne estendono le capacità.
Alcuni progetti popolari nell'ecosistema Qiskit includono:
- Qiskit Aer (
qiskit-aer) - un pacchetto per simulatori di calcolo quantistico con modelli di rumore realistici. Fornisce interfacce per eseguire circuiti quantistici con o senza rumore utilizzando diversi metodi di simulazione. Mantenuto da IBM Quantum. - qBraid SDK (
qbraid) - un framework di runtime quantistico indipendente dalla piattaforma sia per fornitori di software che di hardware quantistico, progettato per semplificare la gestione dell'intero ciclo di vita dei job quantistici — dalla definizione delle specifiche del programma all'invio del job, fino alla post-elaborazione e alla visualizzazione dei risultati. Mantenuto da qBraid. - mthree
mthree- un pacchetto per l'implementazione di M3 (Matrix-free Measurement Mitigation), una tecnica di mitigazione della misura che risolve le probabilità di misura corrette tramite un passaggio di riduzione della dimensionalità seguito da fattorizzazione LU diretta oppure da un metodo iterativo precondizionato che converge nominalmente in O(1) passi, e può essere calcolato in parallelo. Mantenuto da IBM Quantum.
Puoi trovare un catalogo di progetti nella pagina dell'ecosistema Qiskit, insieme a informazioni su come candidare il tuo progetto.
Passi successivi
- Scopri la libreria di circuiti e istruzioni disponibile nella libreria di circuiti di Qiskit.
- Leggi del transpiler Qiskit e delle numerose opzioni di transpilazione nella sezione Transpiler.
- Scopri come usare le primitive Qiskit per semplificare la programmazione quantistica.