Skip to main content
IBM Quantum Platform

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 = 14

Per 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 su latex, mpl, text, o latex_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 sono default o bw.
  • 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 sono repr, text, latex, latex_source, qsphere, hinton, o bloch. 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'ambiente QISKIT_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'ambiente QISKIT_NUM_PROCS . Specificare un numero intero maggiore di 0.
  • 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

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, impostare QISKIT_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 su 1 o TRUE, 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
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.