Vai al contenuto principale

Configura l'SDK Qiskit in locale

Dopo aver installato e avviato l'SDK Qiskit, puoi eseguire alcuni passaggi opzionali 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 usato 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

Per impostazione predefinita, questo file si trova in ~/.qiskit/settings.conf, ma il percorso può essere sostituito tramite la variabile d'ambiente QISKIT_SETTINGS.

Opzioni disponibili​

  • circuit_drawer: Cambia il sistema predefinito per il circuit drawer. Può essere impostato su latex, mpl, text o latex_source. Quando il kwarg output non è impostato esplicitamente, viene usato questo sistema di disegno.
  • circuit_mpl_style: Il foglio di stile predefinito usato dal sistema di output mpl per il circuit drawer. I valori validi sono default o bw.
  • circuit_mpl_style_path: I percorsi in cui il circuit drawer cerca i fogli di stile JSON quando usa la modalità di output mpl.
  • state_drawer: Viene usato per cambiare il sistema predefinito per i metodi di visualizzazione degli stati. I valori validi sono repr, text, latex, latex_source, qsphere, hinton o bloch. Quando il kwarg output non è impostato esplicitamente nel metodo qiskit.quantum_info.DensityMatrix.draw, viene usato il metodo di output specificato.
  • transpile_optimization_level: Cambia il livello di ottimizzazione predefinito per qiskit.compiler.transpile. Specifica un intero da 0 a 3.
  • parallel: Indica se il multiprocessing Python è abilitato per le operazioni che supportano l'esecuzione parallela. Ad esempio, la transpilazione di più oggetti qiskit.circuit.QuantumCircuit. Questa impostazione può essere sovrascritta dalla variabile d'ambiente QISKIT_PARALLEL. Specifica 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. Specifica un intero maggiore di 0.
nota

Variabili d'ambiente​

Imposta queste variabili d'ambiente per modificare il comportamento predefinito di Qiskit:

  • QISKIT_PARALLEL: Abilita il multiprocessing Python per parallelizzare determinate operazioni; ad esempio, la transpilazione su più circuit in Qiskit. Specifica un valore booleano.
  • QISKIT_NUM_PROCS: Il numero massimo di processi paralleli da avviare per le operazioni parallele, se l'esecuzione parallela è abilitata. Specifica un intero maggiore di zero.
  • RAYON_NUM_THREADS: Il numero di thread per eseguire operazioni multi-thread in Qiskit. Per impostazione predefinita, il codice multi-thread avvia un thread per ogni CPU logica. Per regolare il numero di thread usati da Qiskit, imposta questa variabile su un valore intero. Ad esempio, impostando RAYON_NUM_THREADS=4 vengono avviati quattro thread per le funzioni multi-thread.
  • QISKIT_FORCE_THREADS: Specifica che il codice multi-thread deve essere sempre eseguito in più thread. Per impostazione predefinita, se stai eseguendo codice multi-thread in una sezione di Qiskit che è già in esecuzione in processi paralleli, Qiskit non avvia più thread ma esegue quella funzione in modo seriale. Questo comportamento serve a evitare il potenziale sovraccarico delle risorse CPU limitate. Tuttavia, se vuoi forzare l'uso di più thread anche in un contesto multiprocesso, imposta QISKIT_FORCE_THREADS=TRUE.
  • QISKIT_SABRE_ALL_THREADS: Controlla il comportamento del layout e del routing pass nel preset pass manager di Qiskit. Quando impostato su 1 o TRUE, usa tutte le CPU disponibili per eseguire più trial casuali. Questo può migliorare la qualità dei risultati, specialmente per sistemi con più di 20 CPU/core; il compromesso, tuttavia, è che i risultati non sono riproducibili quando eseguiti su hardware locale diverso.

Passi successivi​

Raccomandazioni