Changelog
Improvements
- Introduce providers and rework backends (#376).
- Split backends into
localandibmq. - Each provider derives from the following classes for its specific requirements.
BaseProviderclass.
BaseBackendclass.
BaseJobclass. - Allow querying result by both circuit name and QuantumCircuit instance.
- Split backends into
- Introduce the QISKit
wrapper(#376).- Introduce convenience wrapper functions around commonly used QISKit components
(e.g.compileandexecutefunctions). - Introduce the DefaultQISKitProvider, which acts as a context manager for the current session
(e.g. providing easy access to allavailable_backends). - Avoid relying on QuantumProgram (eventual deprecation).
- The functions are also available as top-level functions (for example,
qiskit.get_backend()).
- Introduce convenience wrapper functions around commonly used QISKit components
- Introduce
BaseJobclass and asynchronous jobs (#403).- Return
BaseJobafterrun(). - Mechanisms for querying
statusandresults, or tocancela job
- Return
- Introduce a
skip_transpilerflag forcompile()(#411). - Introduce schemas for validating interfaces between qiskit and backends (#434)
- qobj_schema
- result_schema
- job_status_schema
- default_pulse_config_schema
- backend_config_schema
- backend_props_schema
- backend_status_schema
- Improve C++ simulator (#386)
- Add
tensor_index.hppfor multi-partite qubit vector indexing. - Add
qubit_vector.hppfor multi-partite qubit vector algebra. - Rework C++ simulator backends to use QubitVector class instead of std::vector.
- Add
- Improve interface to simulator backends (#435)
- Introduce
local_statevector_simulator_pyandlocal_statevector_simulator_cpp. - Introduce aliased and deprecated backend names and mechanisms for resolving them.
- Introduce optional
compactflag to query backend names only by unique function. - Introduce result convenience functions
get_statevector,get_unitary - Add
snapshotcommand for caching a copy of the current simulator state.
- Introduce
- Introduce circuit drawing via
circuit_drawer()andplot_circuit()(#295, #414) - Introduce benchmark suite for performance testing (
test/performance) (#277) - Introduce more robust probability testing via assertDictAlmostEqual (#390)
- Allow combining circuits across both depth and width (#389)
- Enforce string token names (#395)
Bug Fixes
- Fix coherent error bug in
local_qasm_simulator_cpp(#318) - Fix the order and format of result bits obtained from device backends (#430)
- Fix support for noises in the idle gate of
local_clifford_simulator_cpp(#440) - Fix JobProcessor modifying input qobj (#392) (and removed JobProcessor during #403)
- Fix ability to apply all gates on register (#369)
Backward-incompatible changes
- Some methods of
QuantumProgramare soon to be deprecated. Please use the
top-level functions instead. - The
Registerinstantiation now expectssize, name. Using
name, sizeis still supported but will be deprecated in the future. - Simulators no longer return wavefunction by setting shots=1. Instead,
use thelocal_statevector_simulator, or explicitly ask forsnapshot. - Return
jobinstance afterrun(), rather thanresult. - Rename simulators according to
PROVIDERNAME_SIMPLEALIAS_simulator_LANGUAGEORPROJECT - Move simulator extensions to
qiskit/extensions/simulator - Move Rzz and CSwap to standard extension library