Releases: QuEraComputing/bloqade-python
Release 0.15.4
Bloqade 0.15.3 release!
Changes
- Fixed a bug which was caused by a missing catch of a Boto3 exception
- Fixed pretty printing for IPython/Jupyter notebooks
- Updated Tree printer to truncate very long lists as well as deep trees.
Patch to fix issues with QuEra Internal API.
Changes
In this patch we update the QuEra backend to match the changes to the QuEra Internal API client that enables Bloqade to catch validation errors before submission implicitly.
Patch: Tweeks to Report Figure.
Changed report Figure for lattice visualization to have an equal aspect ratio.
0.15.0: New waveform compiler + other new features!
New in 0.15.0
In this release we have added a new compiler for bloqade waveforms to turn them from our bloqade waveform language to python functions. To enable this when running the bloqade python emulator specify the waveform_runtime=...
with either:
"interpret"
which corresponds to the original behavior"python"
which generates python function representing the waveform"numba"
Further compiles the python function with numba.
There is a slight performance gain when using the "python"
option, and this really will only help for very complicated waveforms.
Note that this is pretty experimental; we have tested a decent number of waveforms, but there still might be some issues. It is easy to check by simply switching the waveform_runtime
option
Other features
- Added some changes to the visualization of the lattice in the
Report
object - Added visualization for programs with
parallelize
- Added support for emulating the full Bloqade IR. This means you can append sequences together and execute them, more to come here.
Batch filters, run-time assignment expansion and bug fixes
New in Bloqade 0.14.0
New features:
- Added method to filter tasks in batch based on parameters in your parameter scan
- Added the ability to pass Vector-like parameters as run time assigned variables via
args
Bug fixes:
- Fixed issue related to
.show()
method ofReport
object. - Fixed issue with various Tutorial and Readme examples with regard to a previous change in the Bravais Lattice API
Engine Optimization + bug fixes.
`RemoteBatch.retrieve` and Bug fixes.
New in Bloqade 0.12.0
API updates:
- #785 Adding a method that will only fetch results that are not completed.
Bug fixes:
- Fixing deployment issues with the documentation
State Vector interface + API changes + Bug fixes
New in Bloqade 0.11.0
State Vector emulation interface: run_callback.
#758
In this release, we are pleased to present a new feature for Bloqade emulation of the bloqade. python()
backend, called run_callback
. This callback function gives you access to the state-vector data via the StateVector
object. This callback must have at least three arguments. The first three are the state vector, the second is the parameters of the particular task given as a named tuple, and the third argument is the Hamiltonian object used to generate the evolution for that specific task. The callback is called after running the emulation for each task given by the program's assignments.
The StateVector
object contains a method called local_trace
, which calculates the trace of an operator over the one- and two-site densities matrices. The Hamiltonian object has some method for calculating mean and variance of the energy given a particular StateVector
and can even be involved at different times.
A caveat to remember: if you select multiprocessing=True
when calling run_callback
if your callback function updates any objects from within the callback function, e.g., has "side effects," you might get a race condition, or the function may not update the values as expected. This is because each call is run on another Python process that will not be able to update global variables and will contain copies of objects from the main process.
Other changes
- #772 Removing implementation of QuEra backend to a private package, Access to QuEra's internal API will only be given on an individual basis.
- #776 Adding the option to filter or not filter out shots that were not perfectly filled.
- #771 Improving test coverage for
bloqade.tasks
module. - #769 A bug where the level coupling was not used to hash the operators in the
CompileCache
for the Bloqade emulator, which meant that if the hyperfine and rydberg both had the same spatial modulation, the second operator would not be stored.
Bug Fixes + New Lattice Interface.
Latest Changes in 0.10.0
New Features:
- Specify the number of unit cells along both Bravais Lattice vectors for Bravais Lattice objects, e.g.
Square(2, 3, lattice_spacing=...)
will now make a rectangular lattice. - Function to extract the device capabilities for Aquila:
bloqade.get_capabilities
. - Updates to documentation:
a. Added some links to the Builder workflow diagram
b. Extensive documentation on the device capabilities object.
Issues Fixed:
- Fixed bug in deserialization of QuEra tasks #755
- Made Waveform plots now have a fixed aspect ratio.
- Bug fix in subspace calculation for certain kinds of geometries.