Configurare l'SDK Qiskit in locale
Dopo che l'SDK Qiskit è installato e funzionante, ci sono alcuni passaggi opzionali che si possono fare per modificare il comportamento predefinito di Qiskit.
File di configurazione utente
La posizione principale per la configurazione locale di Qiskit è il file di configurazione utente. Si tratta di un file in formato.ini che può essere utilizzato per modificare le impostazioni predefinite di Qiskit.
Esempio:
[default]
circuit_drawer = mpl
circuit_mpl_style = default
circuit_mpl_style_path = ~:~/.qiskit
state_drawer = hinton
transpile_optimization_level = 3
parallel = False
num_processes = 15
min_qpy_version = 14Per impostazione predefinita, questo file si trova in ~/.qiskit/settings.conf , ma il percorso può essere modificato con la variabile di ambiente QISKIT_SETTINGS .
Opzioni disponibili
circuit_drawer: Cambia il sistema predefinito per il cassetto dei circuiti. Può essere impostato sulatex,mpl,text, olatex_source. Quando il kwarg di uscita non è impostato esplicitamente, viene utilizzato questo sistema di cassetti.circuit_mpl_style: Il foglio di stile predefinito utilizzato per il sistema di output mpl del cassetto dei circuiti. I valori validi sonodefaultobw.circuit_mpl_style_path: I percorsi che il cassetto del circuito deve usare per cercare i fogli di stile JSON quando si usa la modalità di uscita mpl.state_drawer: Serve a cambiare il sistema predefinito per i metodi di disegno della visualizzazione degli stati. I valori validi sonorepr,text,latex,latex_source,qsphere,hinton, obloch. Quando il kwarg di uscita non è impostato esplicitamente sul metodo qiskit.quantum_info.DensityMatrix.draw, viene utilizzato il metodo di uscita specificato.transpile_optimization_level: Modificare il livello di ottimizzazione predefinito per qiskit.compiler.transpile. Specificare un numero intero da 0 a 3.parallel: Se Python multiprocessing è abilitato per le operazioni che supportano l'esecuzione in parallelo. Ad esempio, la trasposizione di più qiskit.circuit.QuantumCircuit oggetti. Questa impostazione può essere sovrascritta dalla variabile d'ambienteQISKIT_PARALLEL. Specificare un valore booleano.num_processes: Il numero massimo di processi paralleli da avviare per le operazioni parallele se l'esecuzione parallela è abilitata. Questa impostazione può essere sovrascritta dalla variabile d'ambienteQISKIT_NUM_PROCS. Specificare un numero intero maggiore di0.min_qpy_version: Il caricamento dei file QPY rifiuterà i file con una versione QPY inferiore a quella definita qui. Questa opzione può essere utilizzata per limitare le versioni di QPY consentite qualora vengano individuati problemi di sicurezza relativi alla deserializzazione nelle versioni precedenti di QPY, impedendo così il caricamento di payload potenzialmente dannosi.
Note
- Le impostazioni del cassetto dei circuiti si applicano a qiskit.circuit.QuantumCircuit.draw e qiskit.visualization.circuit_drawer.
- I metodi di disegno della visualizzazione dello stato sono qiskit.quantum_info.Statevector.draw e qiskit.quantum_info.DensityMatrix.draw.
Variabili di ambiente
Impostare queste variabili d'ambiente per modificare il comportamento predefinito di Qiskit:
QISKIT_PARALLEL: Abilita Python multiprocessing per parallelizzare alcune operazioni; ad esempio, la trasposizione su più circuiti in Qiskit. Specificare un valore booleano.QISKIT_NUM_PROCS: Il numero massimo di processi paralleli da avviare per le operazioni parallele se l'esecuzione parallela è abilitata. Specificare un numero intero maggiore di zero.RAYON_NUM_THREADS: Il numero di thread per eseguire operazioni multithread in Qiskit. Per impostazione predefinita, il codice multithreading lancia un thread per ogni CPU logica. Per regolare il numero di thread utilizzati da Qiskit, impostare un valore intero. Ad esempio, impostando RAYON_NUM_THREADS=4 si lanciano quattro thread per le funzioni multithread.QISKIT_FORCE_THREADS: Specifica che il codice multithread deve essere sempre eseguito in più thread. Per impostazione predefinita, se si esegue codice multithread in una sezione di Qiskit che è già in esecuzione in processi paralleli, Qiskit non lancia più thread ma esegue la funzione in modo seriale. Questo per evitare di sovraccaricare le limitate risorse della CPU. Tuttavia, se si vuole forzare l'uso di più thread anche in un contesto multiprocesso, impostareQISKIT_FORCE_THREADS=TRUE.QISKIT_SABRE_ALL_THREADS: Controlla il comportamento del passaggio di layout e di routing nel gestore dei passaggi preimpostati di Qiskit. Se impostato su1oTRUE, utilizza tutte le CPU disponibili per eseguire più prove casuali. Questo può migliorare la qualità dei risultati, soprattutto per i sistemi con più di 20 CPU/cores; il compromesso, tuttavia, è che i risultati non sono riproducibili quando vengono eseguiti su hardware locale diverso.
Passi successivi
Suggerimenti
- Provate un'esercitazione, come l' algoritmo di Grover.
- Esegui il programma Hello world.
- Leggete le linee guida per la contribuzione se volete contribuire all'SDK open-source di Qiskit.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.