Configuração local¶
Uma vez que você tenha Qiskit instalado e em execução, existem algumas etapas de configuração opcionais que você pode tomar para alterar o comportamento padrão do Qiskit para o seu caso de uso específico.
Arquivo de Configuração do Usuário¶
O local principal para configuração local do Qiskit é o arquivo configuração do usuário. Este é um arquivo de formato ini que pode ser usado para alterar padrões no Qiskit.
Por exemplo:
[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 padrão, esse arquivo se encontra em ~/.qiskit/settings.conf
mas o caminho usado pode ser alterado a variável de ambiente QISKIT_SETTINGS
. Se ela estiver definida, seu valor será usado como caminho para o arquivo de configurações do usuário.
Opções disponíveis:
circuit_drawer
: Usada para mudar o backend padrão para o drawer de circuitosqiskit.circuit.QuantumCircuit.draw()
eqiskit.visualization.circuit_drawer()
. Ele pode ser definido comolatex
,mpl
,text
, oulatex_source
e quando o kwargouptut
não for definido explicitamente esse backend de drawer será usado.
circuit_mpl_style
: Essa é a folha de estilo padrão usada no backend de saídampl
para o drawer de circuitosqiskit.circuit.QuantumCircuit.draw()
eqiskit.visualization.circuit_drawer()
. Ela pode ser definida comodefault
oubw
.
circuit_mpl_style_path
: Isso pode ser usado para definir o(s) caminho(s) para o drawer de circuitos,qiskit.circuit.QuantumCircuit.draw()
ouqiskit.visualization.circuit_drawer()
, usar para buscar por folhas de estilo json quando utilizando o modo de saídampl
.
state_drawer
: Isso é usado para mudar o backend padrão dos métodos de desenho de visualização de estados,qiskit.quantum_info.Statevector.draw()
eqiskit.quantum_info.DensityMatrix.draw()
. Ele pode ser definido comorepr
,text
”,latex
,latex_source
,qsphere
,hinton
, ou blochbloch
e quando o kwargoutput
não está definido explicitamente no métododraw()
aquele método de saída será usado.
transpile_optimization_level
: Isso recebe um inteiro entre 0 e 3 e é usado para mudar o nível de otimização padrão paratranspile()
eexecute()
.
parallel
: Esta opção recebe um valor booleano (True
ouFalse
) e é usada para configurar se Python multiprocessing está habilitado para operações que suportam executação em paralelo (por exemplo, a transpilação de múltiplos objetosQuantumCircuit
). A configuração padrão no arquivo de configuração do usuário pode ser sobreposta pela variável de ambienteQISKIT_PARALLEL
.
num_processes
: Esta opção recebe um valor inteiro (> 0) que é usado para especificar o número máximo de processos paralelos a serem iniciados para operações paralelas se a execução paralela estiver ativada. A configuração padrão no arquivo de configuração do usuário pode ser sobreposta pela variável de ambienteQISKIT_NUM_PROCS
.
Variáveis de Ambiente¶
Há também algumas variáveis de ambiente que podem ser definidas para alterar o comportamento padrão do Qiskit.
QISKIT_PARALLEL
: se essa variável estiver definida comoTRUE
, ela permitirá o uso de Python multiprocessing para paralelizar certas operações (por exemplo, a transpilação de vários circuitos) no Qiskit Terra.
QISKIT_NUM_PROCS
: Especifica o número máximo de processos paralelos a serem iniciados para operações paralelas se a execução paralela estiver habilitada. Ele recebe um inteiro > 0 como o valor esperado.
RAYON_NUM_THREADS
: Especifica o número de threads para executar operações multithread no Qiskit Terra. Por padrão, este código multithread iniciará um thread para cada CPU lógica, se você quiser ajustar o número de threads que o Qiskit usará, você pode definir isso para um valor inteiro. Por exemplo, a configuração deRAYON_NUM_THREADS=4
lançará apenas 4 threads para funções multithread.
QISKIT_FORCE_THREADS
: Especifica que o código multithread deve sempre ser executado em vários threads. Por padrão, se você estiver executando código multithread em uma seção do Qiskit que já está sendo executada em processos paralelos, o Qiskit não iniciará vários threads e, em vez disso, executará essa função em série. Isso é feito para evitar a sobrecarga de recursos limitados da CPU. No entanto, se você quiser forçar o uso de várias threads mesmo quando em um contexto multiprocesso, você pode definirQISKIT_FORCE_THREADS=TRUE
para fazer isso.
QISKIT_IBMQ_PROVIDER_LOG_LEVEL
: Especifica o nível de log a ser usado, para os módulosqiskit-ibmq-provider
. Se um nível inválido é configurado, o nível de log será WARNING por padrão. Os níveis de log válidos sãoDEBUG
,INFO
,WARNING
,ERROR
, eCRITICAL
(não diferencia maiúsculas de minúsculas). Se a variável de ambiente não for definida, então o nível de log do pai é utilizado, que também éWARNING
por padrão.
QISKIT_IBMQ_PROVIDER_LOG_FILE
: Especifica o nome do arquivo de log usado a partir de mensagens de log provenientes doqiskit-ibmq-provider
. Se especificado, as mensagens serão registradas apenas no arquivo. Caso contrário, as mensagens serão registradas na saída de erro padrão (geralmente a tela).
QISKIT_AQUA_MAX_GATES_PER_JOB
: Um parâmetro opcional para definir um limiar para dividir os circuitos gerados pelo Aqua em múltiplas tarefas enviadas a um serviço baseado no número de portas.