Skip to main content
IBM Quantum Platform

Note di rilascio di Qiskit 0.24


0.24.1

Terra 0.16.4

Nessuna modifica

Aer 0.7.6

Nessuna modifica

Ignis 0.5.2

Nessuna modifica

Acqua 0.8.2

Nessuna modifica

IBM Q Fornitore 0.12.2

Note sull'aggiornamento

  • qiskit.providers.ibmq.IBMQBackend.defaults() ora restituisce le impostazioni predefinite di pulse per il backend, se quest'ultimo supporta pulse. Tuttavia, il vostro provider potrebbe non supportare il pulse anche se il backend lo supporta. Il flag open_pulse nella configurazione del backend indica se il provider lo supporta.

0.24.0

Terra 0.16.4

Nessuna modifica

Aer 0.7.6

Nuove funzioni

  • Questa è la prima versione di qiskit-aer che pubblica i binari precompilati su PyPI per Linux su aarch64 ( arm64 ). A partire da questa versione saranno pubblicati e supportati i pacchetti Linux aarch64.

Correzioni di bug

  • Corregge il bug #1153 per cui il rumore sulle porte condizionali veniva sempre applicato indipendentemente dal fatto che la porta condizionale fosse effettivamente applicata in base al valore del registro classico. Ora il rumore su un gate condizionale verrà applicato solo nel caso in cui il gate condizionale sia applicato.
  • Corretto il problema #1126 : bug nel riportare la misura di un singolo qubit. L'errore si è verificato durante la copia del valore misurato nella struttura dati di uscita.
  • In precedenza si verificava un disallineamento tra il numero predefinito di qubit che gli oggetti del backend Aer dicevano di supportare e il numero massimo di qubit che il simulatore avrebbe effettivamente eseguito. Ciò era dovuto a una mancata corrispondenza tra il codice Python utilizzato per calcolare il numero massimo di qubit e il codice C++ utilizzato per un controllo a tempo di esecuzione del numero massimo di qubit basato sulla memoria disponibile. Questo è stato corretto, quindi per impostazione predefinita ora i backend Aer consentiranno l'esecuzione di circuiti che possono essere inseriti in tutta la memoria di sistema disponibile. Correzioni #1114

Nessuna modifica

Ignis 0.5.2

Nessuna modifica

Acqua 0.8.2

Nessuna modifica

IBM Q Fornitore 0.12.0

Preludio

  • qiskit.providers.ibmq.IBMQBackend.run() ora accetta uno o più metodi QuantumCircuit o Schedule. Uso di QasmQobj e PulseQobj è ora deprecato. Le opzioni di configurazione di runtime, come il numero di scatti, possono essere impostate con il metodo run() o con il metodo qiskit.providers.ibmq.IBMQBackend.set_options() . Il primo viene utilizzato come impostazione unica per il lavoro, il secondo per tutti i lavori inviati al backend. Se un'opzione è impostata in entrambi i punti, il valore impostato in run() ha la precedenza.
  • IBM Le credenziali di Quantum vengono ora caricate solo dalle sezioni del file qiskitrc che iniziano con "ibmq".

Nuove funzioni

  • Python 3.9 è stato aggiunto in questa versione. Ora è possibile eseguire il provider Qiskit IBMQ utilizzando Python 3.9.

  • qiskit.providers.ibmq.AccountProvider.backends() ha ora un nuovo parametro min_num_qubit che consente di filtrare in base al numero minimo di qubit.

  • qiskit.providers.ibmq.IBMQBackend.run() ora accetta uno o più metodi QuantumCircuit o Schedule. Le opzioni di configurazione di runtime, come il numero di scatti, possono essere impostate con il metodo run() o con il metodo qiskit.providers.ibmq.IBMQBackend.set_options() . Il primo viene utilizzato come impostazione unica per il lavoro, il secondo per tutti i lavori inviati al backend. Se un'opzione è impostata in entrambi i punti, il valore impostato in run() ha la precedenza. Ad esempio:

    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.Experiment ora ha tre attributi aggiuntivi, hub, gruppo e progetto, che identificano il provider utilizzato per creare l'esperimento.

  • È ora possibile assegnare un experiment_id a un lavoro quando lo si invia utilizzando qiskit.providers.ibmq.IBMQBackend.run(). È possibile utilizzare questo nuovo campo per raggruppare un insieme di lavori che appartengono allo stesso esperimento. Anche il metodo qiskit.providers.ibmq.IBMQBackendService.jobs() è stato aggiornato per consentire il filtraggio per experiment_id.

  • qiskit.providers.ibmq.experiment.Experiment ha ora due attributi aggiuntivi:

    • livello_di_condivisione: Il livello di condivisione dell'esperimento, che determina chi può vederlo quando si elencano gli esperimenti. Questo può essere aggiornato.
    • proprietario: l'ID dell'utente che ha caricato l'esperimento. È impostato dal server e non può essere aggiornato.
  • Il metodo qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() accetta ora hub, group e project come parole chiave di filtraggio.

  • I metodi qiskit.providers.ibmq.experiment.ExperimentService.experiments() e qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() supportano ora un parametro limit che consente di limitare il numero di esperimenti e risultati di analisi restituiti.

  • Il metodo qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() accetta ora exclude_mine e mine_only come parole chiave di filtraggio.

  • Il metodo qiskit.providers.ibmq.experimentservice.ExperimentService.experiments() accetta ora exclude_public e public_only come parole chiave di filtraggio.

  • qiskit.providers.ibmq.managed.IBMQJobManager.run() accetta ora un singolo elemento QuantumCircuit o Schedule oltre a un elenco di essi.

  • La funzione least_busy() ora salta i backend che sono operativi ma in pausa, cioè che stanno accettando ma non elaborando lavori.

  • È ora possibile decapitare un'istanza di IBMQJob , purché non contenga dati personalizzati non decapabili (ad esempio, nell'intestazione di Qobj).

  • È ora possibile utilizzare i due nuovi metodi qiskit.providers.ibmq.AccountProvider.services() e qiskit.providers.ibmq.AccountProvider.service() per scoprire quali servizi sono disponibili per il proprio account e ottenere un'istanza di un particolare servizio.

  • Il metodo qiskit.providers.ibmq.IBMQBackend.reservations() ora restituisce sempre le modalità di pianificazione della prenotazione, anche per le prenotazioni di cui non si è proprietari.

Note sull'aggiornamento

  • Sono stati rimossi diversi metodi e funzioni precedentemente deprecati, tra cui:

    • qiskit.providers.ibmq.job.IBMQJob.to_dict()
    • qiskit.providers.ibmq.job.IBMQJob.from_dict()
    • Qconfig.py supporto
    • Uso di URL proxy che non includono i protocolli
  • Un nuovo parametro, limit , è ora il primo parametro per entrambi i metodi qiskit.providers.ibmq.experiment.ExperimentService.experiments() e qiskit.providers.ibmq.experiment.ExperimentService.analysis_results() . Questo limit ha un valore predefinito di 10, il che significa che per deafult verranno restituiti solo 10 esperimenti e risultati di analisi.

  • IBM Le credenziali di Quantum vengono ora caricate solo dalle sezioni del file qiskitrc che iniziano con "ibmq". Ciò consente di utilizzare il file qiskitrc per altre funzionalità.

Note di deprecazione

  • Uso di QasmQobj e PulseQobj nel metodo qiskit.providers.ibmq.IBMQBackend.run() è ora deprecato. QuantumCircuit e Schedule dovrebbero essere utilizzati al loro posto.

  • L'attributo backends di qiskit.providers.ibmq.AccountProvider è stato rinominato in backend (sigolare). Per la retrocompatibilità, si può continuare a usare backends, ma è deprecato e sarà rimosso in una versione futura. Il metodo qiskit.providers.ibmq.AccountProvider.backends() rimane invariato. Ad esempio:

    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.
  • L'impostazione dell'attributo IBMQJob client_version è stata deprecata. È tuttavia possibile continuare a leggere il valore dell'attributo.

  • "La parola chiave validate_qobj in qiskit.providers.ibmq.IBMQBackend.run() è deprecata e sarà rimossa in una versione futura. Se ci si affida alla validazione dello schema, si dovrebbero estrarre gli schemi da Qiskit/ibmq-schemas e validare direttamente i payload con quelli.

Correzioni di bug

  • Corregge il problema per cui un lavoro potrebbe essere lasciato nello stato CREATING se l'invio del lavoro fallisce a metà strada.
  • Risolve il problema per cui l'uso del widget del backend Jupyter falliva se le porte di base del backend non includevano i tradizionali u1, u2 e u3. Correzioni #844
  • Corregge il loop infinito generato quando si passa un'istanza di IBMQRandomService a un processo figlio.
  • Corregge il problema per cui viene sollevato un TypeError se il server restituisce un codice di errore ma i dati della risposta non sono nel formato previsto.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.