Notas de versão do Qiskit 0.24
0.24.1
Terra 0.16.4
Nenhuma mudança
Aer 0.7.6
Nenhuma mudança
Ignis 0.5.2
Nenhuma mudança
Aqua 0.8.2
Nenhuma mudança
IBM 0.12.2
Notas da Atualização
qiskit.providers.ibmq.IBMQBackend.defaults()agora retorna os padrões de pulso para o backend se o backend for compatível com pulso. No entanto, seu provedor pode não oferecer suporte a pulso, mesmo que o backend ofereça. O sinalizadoropen_pulsena configuração do backend indica se o provedor oferece suporte a ele.
0.24.0
Terra 0.16.4
Nenhuma mudança
Aer 0.7.6
Novos Recurso
- Esta é a primeira versão do qiskit-aer que publica binários pré-compilados em PyPI para Linux em aarch64 ( arm64 ). A partir desta versão, os pacotes Linux aarch64 serão publicados e suportados.
Correções de bugs
- Corrige o bug #1153 em que o ruído em portas condicionais era sempre aplicado, independentemente de a porta condicional ter sido realmente aplicada com base no valor do registro clássico. Agora, o ruído em uma porta condicional só será aplicado no caso em que a porta condicional for aplicada.
- Corrigido o problema nº 1126 : erro ao relatar a medição de um único qubit. O erro ocorria ao copiar o valor medido para a estrutura de dados de saída.
- Anteriormente, havia uma incompatibilidade entre o número padrão relatado de qubits que os objetos de back-end da Aer diziam ser suportados e o número máximo de qubits que o simulador realmente executava. Isso ocorreu devido a uma incompatibilidade entre o código Python usado para calcular o número máximo de qubits e o código C++ usado para uma verificação de tempo de execução do número máximo de qubits com base na memória disponível. Isso foi corrigido, portanto, por padrão, agora os back-ends do Aer permitirão a execução de circuitos que possam caber em toda a memória disponível do sistema. Correções #1114
Nenhuma mudança
Ignis 0.5.2
Nenhuma mudança
Aqua 0.8.2
Nenhuma mudança
IBM 0.12.0
Prelúdio
qiskit.providers.ibmq.IBMQBackend.run()agora recebe um ou maisQuantumCircuitouSchedule. Uso deQasmQobjePulseQobjestá obsoleto. As opções de configuração de tempo de execução, como o número de disparos, podem ser definidas por meio do métodorun()ou do métodoqiskit.providers.ibmq.IBMQBackend.set_options(). O primeiro é usado como uma configuração única para o trabalho e o segundo para todos os trabalhos enviados ao backend. Se uma opção for definida em ambos os locais, o valor definido emrun()terá precedência.- IBM As credenciais do Quantum agora são carregadas somente das seções do arquivo
qiskitrcque começam com 'ibmq'.
Novos Recurso
-
Python 3.9 foi adicionado a esta versão. Agora você pode executar o provedor Qiskit IBMQ usando Python 3.9.
-
qiskit.providers.ibmq.AccountProvider.backends()agora tem um novo parâmetro min_num_qubits que permite que você filtre pelo número mínimo de qubits. -
qiskit.providers.ibmq.IBMQBackend.run()agora recebe um ou maisQuantumCircuitouSchedule. As opções de configuração de tempo de execução, como o número de disparos, podem ser definidas por meio do métodorun()ou do métodoqiskit.providers.ibmq.IBMQBackend.set_options(). O primeiro é usado como uma configuração única para o trabalho e o segundo para todos os trabalhos enviados ao backend. Se uma opção for definida em ambos os locais, o valor definido emrun()terá precedência. Por exemplo:from qiskit import IBMQ, transpile from qiskit.test.reference_circuits import ReferenceCircuits provider = IBMQ.load_account() backend = provider.get_backend('ibmq_vigo') circuits = transpile(ReferenceCircuits.bell(), backend=backend) default_shots = backend.options.shots # Returns the backend default of 1024 shots. backend.set_options(shots=2048) # All jobs will now have use 2048 shots. backend.run(circuits) # This runs with 2048 shots. backend.run(circuits, shots=8192) # This runs with 8192 shots. backend.run(circuits) # This again runs with 2048 shots. -
qiskit.providers.ibmq.experiment.Experimentagora tem três atributos adicionais, hub, group e project, que identificam o provedor usado para criar o experimento. -
Agora você pode atribuir um
experiment_ida um trabalho ao enviá-lo usandoqiskit.providers.ibmq.IBMQBackend.run(). Você pode usar esse novo campo para agrupar uma coleção de trabalhos que pertencem ao mesmo experimento. O métodoqiskit.providers.ibmq.IBMQBackendService.jobs()também foi atualizado para permitir a filtragem porexperiment_id. -
qiskit.providers.ibmq.experiment.Experimentagora tem dois atributos adicionais:- share_level: O nível em que o experimento é compartilhado, o que determina quem pode vê-lo ao listar experimentos. Isso pode ser atualizado.
- owner: O ID do usuário que fez o upload do experimento. Isso é definido pelo servidor e não pode ser atualizado.
-
O método
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()agora aceitahub,groupeprojectcomo palavras-chave de filtragem. -
Os métodos
qiskit.providers.ibmq.experiment.ExperimentService.experiments()eqiskit.providers.ibmq.experiment.ExperimentService.analysis_results()agora suportam um parâmetrolimitque permite limitar o número de experimentos e resultados de análise retornados. -
O método
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()agora aceitaexclude_mineemine_onlycomo palavras-chave de filtragem. -
O método
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()agora aceitaexclude_publicepublic_onlycomo palavras-chave de filtragem. -
qiskit.providers.ibmq.managed.IBMQJobManager.run()agora aceita um únicoQuantumCircuitouSchedulealém de uma lista deles. -
A função
least_busy()agora ignora os back-ends que estão operacionais, mas em pausa, o que significa que eles estão aceitando, mas não processando trabalhos. -
Agora você pode selecionar uma instância do
IBMQJob, desde que ela não contenha dados personalizados que não possam ser selecionados (por exemplo, no cabeçalho do Qobj). -
Agora você pode usar os dois novos métodos,
qiskit.providers.ibmq.AccountProvider.services()eqiskit.providers.ibmq.AccountProvider.service(), para descobrir quais serviços estão disponíveis em sua conta e obter uma instância de um serviço específico. -
O método
qiskit.providers.ibmq.IBMQBackend.reservations()agora sempre retorna os modos de agendamento de reserva, mesmo para reservas que você não possui.
Notas da Atualização
-
Vários métodos e recursos anteriormente obsoletos foram removidos, incluindo:
qiskit.providers.ibmq.job.IBMQJob.to_dict()qiskit.providers.ibmq.job.IBMQJob.from_dict()- Qconfig.py suporte
- Uso de URLs de proxy que não incluem protocolos
-
Um novo parâmetro,
limit, agora é o primeiro parâmetro dos métodosqiskit.providers.ibmq.experiment.ExperimentService.experiments()eqiskit.providers.ibmq.experiment.ExperimentService.analysis_results(). Esselimittem um valor padrão de 10, o que significa que, por padrão, apenas 10 experimentos e resultados de análises serão retornados. -
IBM As credenciais do Quantum agora são carregadas somente das seções do arquivo
qiskitrcque começam com 'ibmq'. Isso permite que o arquivoqiskitrcseja usado para outras funcionalidades.
Notas de descontinuação
-
Uso de
QasmQobjePulseQobjno métodoqiskit.providers.ibmq.IBMQBackend.run()agora está obsoleto.QuantumCircuiteScheduledevem agora ser usados em seu lugar. -
O atributo
backendsdeqiskit.providers.ibmq.AccountProviderfoi renomeado parabackend(sigular). Para fins de compatibilidade com versões anteriores, você pode continuar a usarbackends, mas ele está obsoleto e será removido em uma versão futura. O métodoqiskit.providers.ibmq.AccountProvider.backends()permanece inalterado. Por exemplo:backend = provider.backend.ibmq_vigo # This is the new syntax. backend = provider.backends.ibmq_vigo # This is deprecated. backends = provider.backends() # This continues to work as before. -
A configuração do atributo
IBMQJobclient_versionfoi preterida. No entanto, você pode continuar a ler o valor do atributo. -
"A palavra-chave
validate_qobjemqiskit.providers.ibmq.IBMQBackend.run()está obsoleta e será removida em uma versão futura. Se estiver confiando nessa validação de esquema, você deverá extrair os esquemas do Qiskit/ibmq-schemas e validar diretamente suas cargas úteis com eles.
Correções de bugs
- Corrige o problema em que um trabalho poderia ser deixado no estado
CREATINGse o envio do trabalho falhasse no meio do caminho. - Corrige o problema em que o uso do widget de back-end do Jupyter falhava se os portões de base do back-end não incluíssem os tradicionais u1, u2 e u3. Correções #844
- Corrige o loop infinito gerado ao passar uma instância do
IBMQRandomServicepara um processo filho. - Corrige o problema em que um
TypeErroré acionado se o servidor retornar um código de erro, mas os dados de resposta não estiverem no formato esperado.