Configuración Local¶
Una vez que tengas Qiskit instalado y ejecutándose hay algunos pasos de configuración opcionales que puedes tomar para cambiar el comportamiento predeterminado de Qiskit para el uso específico que le vayas a dar.
Archivo de Configuración de Usuario¶
La ubicación principal para la configuración local de Qiskit es el archivo de configuración de usuario. Este es un archivo en formato ini que puede ser usado para cambiar los valores predeterminados en Qiskit.
Por ejemplo:
[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
Por defecto, este archivo se encuentra en ~/.qiskit/settings.conf
pero la ruta utilizada puede ser ignorada con la variable de entorno QISKIT_SETTINGS
. Si QISKIT_SETTINGS
esta siendo utilizada, su valor será usado como la ruta al archivo de configuración de usuario.
Opciones disponibles:
circuit_drawer
: Este se usa para cambiar el backend predeterminado para el dibujador de circuitosqiskit.circuit.QuantumCircuit.draw()
yqiskit.visualization.circuit_drawer()
. Se puede configurar enlatex
,mpl
,text
, olatex_source
y cuando el argumento kwargouptut
no está configurado explícitamente, se utilizará el backend del dibujador.
circuit_mpl_style
: Esta es la hoja de estilo predeterminada utilizada para el backend de salidampl
para el dibujador de circuitosqiskit.circuit.QuantumCircuit.draw()
yqiskit.visualization.circuit_drawer()
. Se puede configurar comodefault
obw
.
circuit_mpl_style_path
: Esto se puede usar para establecer la(s) ruta(s) para tener el dibujador de circuitos,qiskit.circuit.QuantumCircuit.draw()
oqiskit.visualization.circuit_drawer()
, usado para buscar hojas de estilo json cuando uses el modo de salidampl
.
state_drawer
: Esto se usa para cambiar el backend predeterminado para los métodos de dibujo de visualización de estadoqiskit.quantum_info.Statevector.draw()
yqiskit.quantum_info.DensityMatrix.draw()
. Se puede configurar enrepr
,text
,latex
,latex_source
,qsphere
,hinton
, o blochbloch
y cuando eloutput
kwarg no se establezca explícitamente en el métododraw()
, ese método de salida será utilizado.
transpile_optimization_level
: Esto toma un número entero entre 0-3 y se usa para cambiar el nivel de optimización predeterminado paratranspile()
yexecute()
.
parallel
: Esta opción toma un valor booleano (ya seaTrue
oFalse
) y se usa para configurar si el multiprocesamiento de Python está habilitado para operaciones que admiten la ejecución en paralelo (por ejemplo, la transpilación de varios objetosQuantumCircuit
). La configuración predeterminada en el archivo de configuración del usuario puede ser anulada por la variable de entornoQISKIT_PARALLEL
.
num_processes
: Esta opción toma un valor entero (> 0) que se utiliza para especificar el número máximo de procesos paralelos a iniciar para operaciones paralelas si la ejecución paralela está habilitada. La configuración predeterminada en el archivo de configuración del usuario puede ser anulada por la variable de entornoQISKIT_NUM_PROCS
.
Variables de Entorno¶
También hay algunas variables de entorno que se pueden configurar para alterar el comportamiento predeterminado de Qiskit.
QISKIT_PARALLEL
: si esta variable se establece enTRUE
, permitirá el uso del multiprocesamiento Python para paralelizar ciertas operaciones (por ejemplo, transpilación sobre múltiples circuitos) en Qiskit Terra.
QISKIT_NUM_PROCS
: Especifica el número máximo de procesos paralelos que se iniciarán para operaciones paralelas si la ejecución paralela está habilitada. Toma un número entero > 0 como valor esperado.
RAYON_NUM_THREADS
: Especifica el número de subprocesos para ejecutar operaciones multiproceso en Qiskit Terra. De forma predeterminada, este código de múltiples subprocesos iniciará un hilo para cada CPU lógica; si deseas ajustar la cantidad de subprocesos que usará Qiskit, puedes establecerlo en un valor entero. Por ejemplo, configurarRAYON_NUM_THREADS=4
solo lanzará 4 subprocesos para funciones multiproceso.
QISKIT_FORCE_THREADS
: Especifica que el código de multiprocesos siempre debe ejecutarse en subprocesos múltiples. De forma predeterminada, si estás ejecutando código de múltiples subprocesos en una sección de Qiskit que ya se está ejecutando en procesos paralelos, Qiskit no iniciará varios subprocesos y, en su lugar, ejecutará esa función en serie. Esto se hace para evitar la posible sobrecarga de los recursos limitados de la CPU. Sin embargo, si deseas forzar el uso de múltiples subprocesos, incluso en un contexto de multiproceso, puedes configurarQISKIT_FORCE_THREADS=TRUE
para hacer esto.
QISKIT_IBMQ_PROVIDER_LOG_LEVEL
: Especifica el nivel de registro que se utilizará para los módulosqiskit-ibmq-provider
. Si se establece un nivel no válido, el nivel de registro predeterminado es WARNING. Los niveles de registro válidos sonDEBUG
,INFO
,WARNING
,ERROR
, yCRITICAL
(no distingue entre mayúsculas y minúsculas). Si la variable de entorno no está configurada, entonces se usa el nivel del registrador principal, que también está predeterminado enWARNING
.
QISKIT_IBMQ_PROVIDER_LOG_FILE
: Especifica el nombre del archivo de registro que se utilizará de los mensajes de registro que se originan enqiskit-ibmq-provider
. Si se especifica, los mensajes se registrarán solo en el archivo. De lo contrario, los mensajes se registrarán en la salida de error estándar (generalmente la pantalla).
QISKIT_AQUA_MAX_GATES_PER_JOB
: Un parámetro opcional para establecer un umbral para dividir los circuitos generados por Aqua en varios trabajos enviados a un backend en función del número de compuertas.