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 flagopen_pulsenella 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ù metodiQuantumCircuitoSchedule. Uso diQasmQobjePulseQobjè ora deprecato. Le opzioni di configurazione di runtime, come il numero di scatti, possono essere impostate con il metodorun()o con il metodoqiskit.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 inrun()ha la precedenza.- IBM Le credenziali di Quantum vengono ora caricate solo dalle sezioni del file
qiskitrcche 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ù metodiQuantumCircuitoSchedule. Le opzioni di configurazione di runtime, come il numero di scatti, possono essere impostate con il metodorun()o con il metodoqiskit.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 inrun()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.Experimentora ha tre attributi aggiuntivi, hub, gruppo e progetto, che identificano il provider utilizzato per creare l'esperimento. -
È ora possibile assegnare un
experiment_ida un lavoro quando lo si invia utilizzandoqiskit.providers.ibmq.IBMQBackend.run(). È possibile utilizzare questo nuovo campo per raggruppare un insieme di lavori che appartengono allo stesso esperimento. Anche il metodoqiskit.providers.ibmq.IBMQBackendService.jobs()è stato aggiornato per consentire il filtraggio perexperiment_id. -
qiskit.providers.ibmq.experiment.Experimentha 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 orahub,groupeprojectcome parole chiave di filtraggio. -
I metodi
qiskit.providers.ibmq.experiment.ExperimentService.experiments()eqiskit.providers.ibmq.experiment.ExperimentService.analysis_results()supportano ora un parametrolimitche consente di limitare il numero di esperimenti e risultati di analisi restituiti. -
Il metodo
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()accetta oraexclude_mineemine_onlycome parole chiave di filtraggio. -
Il metodo
qiskit.providers.ibmq.experimentservice.ExperimentService.experiments()accetta oraexclude_publicepublic_onlycome parole chiave di filtraggio. -
qiskit.providers.ibmq.managed.IBMQJobManager.run()accetta ora un singolo elementoQuantumCircuitoScheduleoltre 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()eqiskit.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 metodiqiskit.providers.ibmq.experiment.ExperimentService.experiments()eqiskit.providers.ibmq.experiment.ExperimentService.analysis_results(). Questolimitha 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
qiskitrcche iniziano con "ibmq". Ciò consente di utilizzare il fileqiskitrcper altre funzionalità.
Note di deprecazione
-
Uso di
QasmQobjePulseQobjnel metodoqiskit.providers.ibmq.IBMQBackend.run()è ora deprecato.QuantumCircuiteScheduledovrebbero essere utilizzati al loro posto. -
L'attributo
backendsdiqiskit.providers.ibmq.AccountProviderè stato rinominato inbackend(sigolare). Per la retrocompatibilità, si può continuare a usarebackends, ma è deprecato e sarà rimosso in una versione futura. Il metodoqiskit.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
IBMQJobclient_versionè stata deprecata. È tuttavia possibile continuare a leggere il valore dell'attributo. -
"La parola chiave
validate_qobjinqiskit.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
CREATINGse 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
IBMQRandomServicea un processo figlio. - Corregge il problema per cui viene sollevato un
TypeErrorse il server restituisce un codice di errore ma i dati della risposta non sono nel formato previsto.