Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il MicrosoftQuantum Development Kit (QDK) include un set di simulatori quantistici che consentono di eseguire programmi quantistici nel computer locale. Utilizzare i simulatori locali per testare i programmi prima di inviarli per l'esecuzione sui target Azure Quantum.
Il QDK ha quattro simulatori:
- Simulatore di tipo sparse
- Il Clifford simulatore
- Il GPU simulatore
- Il CPU simulatore
Simulatore di tipo sparse
Il simulatore di tipo sparse è il simulatore predefinito in QDK. Questo simulatore rappresenta gli stati qubit come vettori di tipo sparse per sfruttare l'algebra della matrice di tipo sparse per le simulazioni veloci, soprattutto per i programmi che non generano molti stati di sovrapposizione. Quando si vuole ottenere simulazioni rapide di programmi Q#, OpenQASM o Qiskit, o visualizzare lo stato quantico del programma durante la simulazione, utilizzare il simulatore sparse.
Il simulatore di tipo sparse è disponibile sia nell'estensione QDK per Visual Studio Code (VS Code) che nel QDKPython pacchetto. Questo simulatore è l'unico simulatore disponibile nell'estensione QDK, quindi il compilatore chiama automaticamente il simulatore sparso quando si eseguono i programmi Q# e OpenQASM in VS Code. Con il simulatore di tipo sparse in VS Code, è possibile usare la Q#DumpMachine funzione o il debugger per visualizzare vettori di stato qubit in punti diversi nella simulazione.
Sia l'estensione VS Code che il Python pacchetto supportano modelli di disturbo per simulazioni sparse di Q# programmi e OpenQASM . Solo il Python pacchetto supporta la simulazione di tipo sparse per Qiskit i programmi, ma senza supporto del modello di disturbo.
Per altre informazioni sul simulatore di tipo sparse, vedere Simulatore di tipo sparse.
Il Clifford simulatore
Il Clifford simulatore è veloce ed efficiente per i programmi con fino a migliaia di qubit, ma può simulare solo programmi che contengono solo Clifford gate. Clifford gate sono componenti comuni nei circuiti di correzione degli errori. Il set di Clifford cancelli è costituito dai cancelli H, S e CX e tutti i cancelli che possono essere costruiti da questi tre cancelli. Le seguenti porte Clifford sono componenti comuni dei circuiti quantistici.
- $X$, $Y$ e $Z$
- $S$ e $S^\dagger$
- $H$, o Hadamard
- $CX$, $CY$ e $CZ$
- SWAP e iSWAP
Il Clifford simulatore è disponibile nel QDKPython pacchetto per Q#i programmi , OpenQASM, Qiskite QIR , ma non è disponibile nell' QDK estensione per VS Code.
Il GPU simulatore
Il GPU simulatore è un simulatore di stato completo che utilizza il computer GPU per eseguire in parallelo molte istanze del programma quantistico. Questo simulatore può eseguire programmi che contengono qualsiasi tipo di gate, ma è costoso da eseguire. Il simulatore può modellare fino a 27 qubit. La potenza della tua macchina GPU determina le prestazioni, ma queste sono ottimali per i programmi con circa 20 qubit e molte esecuzioni.
Il GPU simulatore accetta QIR o Qiskit come input ed è disponibile tramite determinate QDKPython API del pacchetto, ma non l'estensione di VS Code. È anche disponibile un supporto avanzato per i modelli di disturbo su qualsiasi tipo di gate quantistico o operazione.
Il CPU simulatore
Come il GPU simulatore, il CPU simulatore è un simulatore di stato completo che può eseguire programmi che contengono qualsiasi tipo di gate quantistico. Tuttavia, il CPU simulatore è più lento perché non può eseguire più scatti in parallelo. Questo simulatore aumenta fino a circa 25 qubit, ma rallenta in modo esponenziale con più qubit a causa di problemi di memoria. Usare il CPU simulatore quando il computer non ha un GPU o quando il programma ha pochi qubit e non si eseguono molte esecuzioni.
Il CPU simulatore accetta QIR o Qiskit come input ed è disponibile tramite determinate QDKPython API del pacchetto, ma non l'estensione di VS Code. È anche disponibile un supporto avanzato per i modelli di disturbo su qualsiasi tipo di gate o operazione quantistica.
Quale simulatore è necessario usare?
Il simulatore migliore da usare dipende da diversi fattori, ad esempio:
- Ambiente di sviluppo (VS Code o Python)
- Framework di programmazione quantistica che stai sviluppando
- La complessità del programma e il numero di scatti
- Funzionalità hardware del computer locale
- Le destinazioni Azure Quantum o altri hardware quantistici in cui si desidera eseguire i programmi
- I modelli di rumore che vuoi costruire
La tabella seguente riepiloga le QDK opzioni e i framework di programmazione quantistica che è possibile usare per ogni simulatore:
| Simulatore | Availability | Framework supportati |
|---|---|---|
| Scarso | Estensione e Python pacchetto di VS Code | Q#, OpenQASM, Qiskit |
| Clifford | Python pacchetto | Q#, OpenQASM, QiskitQIR |
| GPU | Python pacchetto | Qiskit, QIR |
| CPU | Python pacchetto | Qiskit, QIR |
Simulazioni nell'estensione QDK per VS Code
Il simulatore "sparse" è l'unico simulatore disponibile nell'estensione QDK per VS Code. Per utilizzare il simulatore sparse, esegui i file Q# o OpenQASM su VS Code. È possibile aggiungere modelli di disturbo limitati al simulatore rado per Q# i programmi in VS Code, ma non per OpenQASM i programmi.
Simulazioni nel QDKPython pacchetto
L'ambiente di sviluppo
Questa tabella illustra i simulatori che è possibile usare per ogni Python API che chiama un QDK simulatore e il framework di programmazione supportato da ogni API:
| API Python | Scarso | Clifford | GPU | CPU | Framework di programmazione |
|---|---|---|---|---|---|
qsharp.run |
✅ | ✅ | Q# | ||
openqasm.run |
✅ | ✅ | OpenQASM | ||
qiskit.QSharpBackend |
✅ | Qiskit | |||
simulation.NeutralAtomDevice |
✅ | ✅ | ✅ | QIR | |
simulation.NeutralAtomBackend |
✅ | ✅ | ✅ | Qiskit | |
simulation.run_qir |
✅ | ✅ | ✅ | QIR |