Skip to main content
IBM Quantum Platform

Note di rilascio di Qiskit 0.36


0.36.2

Terra 0.20.2

Preludio

Qiskit Terra 0.20.2 è una release di correzione dei bug, che risolve alcuni problemi minori individuati dopo l'ultimo rilascio della patch.

Correzioni di bug

  • È stato risolto un problema con BackendV2-basato su classi backend false del modulo qiskit.providers.fake_provider , come FakeMontrealV2, in cui i valori dei parametri dtm e dt e l'attributo associato Target.dt non venivano convertiti correttamente in secondi. Questo causerebbe problemi quando si utilizzano questi backend falsi con la schedulazione. Vedere #8018.

  • marginal_counts() avrà successo quando verrà chiesto di marginalizzare la memoria con un parametro indices contenente elementi non nulli. In precedenza, gli scatti la cui rappresentazione del risultato esadecimale era sufficientemente piccola potevano sollevare un ValueError. Vedere il numero 8044.

  • L'esportatore di OpenQASM 3 (qiskit.qasm3) ora emette le dichiarazioni input o output prima delle dichiarazioni di gate. Questo è più coerente con l'attuale grammatica ANTLR di riferimento del team di OpenQASM 3. Vedere #7964.

  • Corretto un bug nel passaggio RZXCalibrationBuilder in cui l'ampiezza scalata dell'impulso di risonanza incrociata poteva sembrare parametrizzata anche dopo l'assegnazione. Questo potrebbe far sì che gli strumenti di visualizzazione degli impulsi utilizzino il formato parametrizzato invece di quello numerico previsto. Vedere il numero 8031.

  • Corretto un problema con la funzione transpile() quando viene eseguita con un backend basato su BackendV2-e si imposta l'argomento della parola chiave scheduling_method . In precedenza, la funzione non elaborava correttamente le durate predefinite delle istruzioni supportate dal backend, causando un errore.

  • È stato risolto un bug nel passaggio RZXCalibrationBuilder che a volte causava la costruzione di impulsi con durate non corrette. Vedere #7994.

  • Il SabreSwap transpiler pass, utilizzato in transpile() quando è impostato routing_method="sabre" , non abbandonerà più sporadicamente le porte condizionate classicamente e i loro successori dai circuiti durante la fase di instradamento della transpilazione. Vedere il numero 8040.

  • Statevector consentirà ora l'iterazione diretta attraverso i suoi valori (come for coefficient in statevector) e riporterà correttamente la sua lunghezza sotto len. In precedenza cercava di accedere a dati fuori dai limiti e sollevava un problema di QiskitError. Vedere il numero 8039.

Aer 0.10.4

Nessuna modifica

Ignis 0.7.1

Preludio

Si tratta di un rilascio che corregge principalmente un problema di impacchettamento che causava l'inclusione della cartella docs/ , che contiene i file sorgenti utilizzati per creare la documentazione di qiskit-ignis, nel pacchetto Python.

IBM Q Fornitore 0.19.1

Nessuna modifica


0.36.1

Terra 0.20.1

Preludio

Qiskit Terra 0.20.1 è una release di bugfix che risolve i problemi identificati nella release 0.20.0.

Problemi noti

  • Deserializzazione QPY con la funzione qpy.load() di un oggetto istanziato direttamente UCPauliRotGate in un circuito fallirà perché l'argomento dell'asse di rotazione della classe non è memorizzato in un posto standard. Per ovviare a questo problema si possono invece utilizzare le sottoclassi: UCRXGate, UCRYGate, o UCRZGate (a seconda che si utilizzi un asse di rotazione rispettivamente di "X", "Y" o "Z" ) che incorporano l'asse di rotazione nel costruttore della classe e funzionano correttamente in QPY.

  • Fin dalla sua introduzione originale in Qiskit Terra 0.20, XXPlusYYGate ha utilizzato una convenzione angolare negativa rispetto a tutte le altre porte di rotazione. In Qiskit Terra 0.21, questo verrà corretto per essere coerente con le altre porte di rotazione. Questo non influisce su altre porte di rotazione, né su XXMinusYYGate.

Correzioni di bug

  • Fissato Clifford, Pauli e CNOTDihedral inizializzazione dell'operatore da circuiti compatibili che contengono Delay istruzioni. Queste istruzioni vengono trattate come identità quando vengono convertite in operatori.

  • Corretto un problema per cui la funzione eval_observables() sollevava un errore se il suo argomento quantum_state era di tipo StateFn. eval_observables ora supporta correttamente tutti i tipi di input indicati dai suoi suggerimenti di tipo.

  • Corretto un problema con la funzione di visualizzazione dag_drawer() e il metodo DAGCircuit.draw() per cui in precedenza il cassetto falliva quando si cercava di generare una visualizzazione per un oggetto DAGCircuit che conteneva un oggetto Qubit o Clbit che non faceva parte di un sito QuantumRegister o ClassicalRegister. Corretto #7915.

  • Correggere la convalida dei parametri per la classe Drag. In precedenza, non era sensibile ai grandi valori beta con segno negativo, che potevano dare origine a campioni di forma d'onda con un valore massimo superiore al limite di ampiezza di 1.0.

  • La classe QuantumInstance utilizzata da molti algoritmi (come VQE) codificava in modo rigido il valore di uno sleep mentre eseguiva un loop in attesa dell'aggiornamento dello stato del lavoro. Ora rispetta il valore di sonno configurato, impostato dall'attributo wait nell'inizializzatore di QuantumInstance.

  • È stato risolto un problema con la funzione schedule per cui i chiamanti che specificano un list di oggetti QuantumCircuit con una singola voce, veniva erroneamente restituito un singolo oggetto Schedule invece di un list.

  • Corretto un problema con la funzione di visualizzazione plot_error_map che ne impediva il funzionamento quando veniva eseguita con un backend che aveva un errore di lettura definito nel file di backend fornito BackendProperties o quando viene eseguita con un BackendV2 backend. Corretto #7879.

  • Corretto un bug che poteva causare un tempo di esecuzione esponenziale e la non terminazione quando un'istanza Pauli è dato al metodo init_observables().

  • Fissato SabreSwape per estensione transpile() con optimization_level=3, occasionalmente riordina le misure in modo non valido. In precedenza, se due misure scrivevano sullo stesso bit classico, SabreSwap poteva (a seconda della mappa di accoppiamento) riordinarle per produrre un circuito non equivalente. Questo comportamento era stocastico, quindi potrebbe non essere apparso in modo affidabile. Corretto #7950

  • Il SabreSwap e per estensione SabreLayout e transpile() di optimization_level=3, ha ora un meccanismo di fuga che garantisce che non possa mai rimanere bloccato in un ciclo infinito. In precedenza, alcuni input potevano, con molta sfortuna, rimanere bloccati in un minimo locale stabile dello spazio di ricerca e il passaggio non avrebbe mai fatto ulteriori progressi. Ora forzerà una serie di scambi che consentono di continuare l'instradamento se rileva che non ha fatto progressi di recente. Corretto #7707.

  • Corretto un problema con la deserializzazione di QPY tramite la funzione qpy.load() della funzione UCRXGate, UCRYGate, e UCRZGate . In precedenza, un file QPY che conteneva una qualsiasi di queste porte dava errore quando si cercava di caricare il file. Corretto #7847.

Aer 0.10.4

Nessuna modifica

Ignis 0.7.0

Nessuna modifica

IBM Q Fornitore 0.19.1

0.19.1

Correzioni di bug

  • PR #1129 aggiorna il metodo least_busy() in modo che non supporti più BaseBackend come tipo di input o output valido, poiché è stato deprecato da tempo in qiskit-terra e recentemente rimosso.

0.36.0

Terra 0.20.0

Nessuna modifica

Aer 0.10.4

Note sull'aggiornamento

  • Qiskit Aer non viene più compilato con ottimizzazioni in virgola mobile non sicure. Mentre la maggior parte degli effetti dovrebbe essere localizzata a Qiskit Aer, alcuni aspetti della gestione subnormale potrebbero essere trapelati in precedenza nel codice utente a causa dell'impostazione errata della libreria della modalità "flush to zero". Questo non accadrà più.

Correzioni di bug

  • Correggere il transpiler del blocco della cache per riconoscere le superop come bloccate dalla cache. Questa è la correzione del problema 1479 <https://github.com/Qiskit/qiskit-aer/issues/1479> Ora la matrice di densità con modelli di rumore può essere parallelizzata. Per verificare questo problema è stato aggiunto un nuovo test, test_noise.TestNoise.test_kraus_gate_noise_on_QFT_cache_blocking. Questa correzione include anche la correzione del problema 1483 <https://github.com/Qiskit/qiskit-aer/issues/1483> scoperto con l'aggiunta di un nuovo caso di test. Questo corregge la misura sui chunk per statevector.

  • Corregge un bug in NoiseModel.from_backend() che generava un errore quando T2 valore maggiore di 2 * T1 veniva fornito dal backend. Dopo questa correzione, il valore T2 viene troncato fino a 2 * T1 e viene emesso un avviso all'utente in caso di troncamento. Il bug è stato introdotto con #1391 e, prima di allora, NoiseModel.from_backend() troncava il valore di T2 fino a 2 * T1 in modo silenzioso.

    Per i dettagli, consultare il numero 1464.

  • device=Thrust era molto lento per un piccolo numero di qubit perché veniva sempre applicato il threading OpenMP. Questa correzione applica i thread di OpenMP allo stesso modo di device=CPU utilizzando statevector_parallel_threshold.

  • Qiskit Aer non imposterà più la modalità in virgola mobile su "flush to zero" quando viene caricato. Gli utenti downstream potrebbero aver visto in precedenza avvisi da Numpy come:

    Il valore della subnormale più piccola per il tipo <class ‘numpy.float64’> è zero.

    Questi non verranno più emessi e la gestione delle virgole sarà corretta.

  • È stato risolto un potenziale problema con l'esecuzione di simulazioni su circuiti che hanno l'attributo QuantumCircuit.metadata impostato. L'attributo metadata può essere un qualsiasi dizionario python e in precedenza qiskit-aer tentava di serializzare JSON il contenuto dell'attributo per elaborarlo insieme al resto dell'input del circuito, anche se il contenuto non era serializzabile JSON. Questo non accade più perché l'attributo QuantumCircuit.metadata non viene utilizzato per eseguire la simulazione, quindi ora i contenuti non vengono serializzati e sono direttamente collegati all'oggetto qiskit.result.Result senza tentare di serializzare il contenuto in JSON. Corretto #1435

Ignis 0.7.0

Nessuna modifica

IBM Q Fornitore 0.19.0

Nuove funzioni

  • Il pacchetto qiskit-ibmq-provider ora supporta le funzionalità di IBM Quantum LiveData. Queste funzioni consentono agli utenti di osservare il comportamento in tempo reale dei backend di IBM Quantum durante l'esecuzione dei lavori. In particolare, il provider ora include una nuova scheda nel widget Jupyter del backend e supporta l'esecuzione di lavori (tramite il metodo qiskit.providers.ibmq.IBMQBackend.run() ) con il parametro live_data_enabled=True nei backend IBM Quantum consentiti.
  • Ora è possibile specificare un livello di registrazione diverso nella parola chiave options quando si invia un lavoro Qiskit Runtime con il metodo qiskit.providers.ibmq.runtime.IBMRuntimeService.run() .

Note sull'aggiornamento

  • Python 3.6 il supporto è stato abbandonato poiché ha raggiunto la fine del ciclo di vita nel dicembre 2021.
  • qiskit.providers.ibmq.random il servizio di numeri casuali utilizzato per accedere all'estrattore di casualità CQC non è più supportato ed è stato rimosso.

Note di deprecazione

  • La parola chiave image nel metodo qiskit.providers.ibmq.runtime.IBMRuntimeService.run() è deprecata. Si deve invece specificare l'immagine da usare nella parola chiave options .

Correzioni di bug

  • Risolve il problema #190. Ora qiskit.providers.ibmq.runtime.RuntimeEncoder e qiskit.providers.ibmq.runtime.RuntimeDecoder sono stati aggiornati per gestire le istanze della classe Istruzione.
  • Corregge il problema #74 per cui gli ndarray numpy con tipi di oggetti non potevano essere serializzati. qiskit.providers.ibmq.runtime.RuntimeEncoder e qiskit.providers.ibmq.runtime.RuntimeDecoder sono stati aggiornati per gestire questi ndarray.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.