Skip to content

0.2.0

Choose a tag to compare

@stephendiadamo stephendiadamo released this 23 Feb 19:09
· 548 commits to main since this release

Release Notes: Maestro 0.2.0

Features and Additions

  • QuEST Simulator Support: Integrated the QuEST simulator into Maestro as an additional standard backend.
  • QuEST Python Bindings: Added module-level functions init_quest() and is_quest_available() to the Python interface for explicit library management.
  • Quantum Circuit Bindings: Added a unified QuantumCircuit model to the Python bindings, providing an easier and more robust interface for interacting with circuits natively from Python.
  • Extended Simulation Techniques: Included new simulators to the primary standard simulators lineup, notably Pauli Propagation and Extended Stabilizer workflows. Added full native Python bindings to support the Pauli Propagation simulators.
  • Arbitrary Qubit Support: Refactored the core engine to support operations spanning more than 64 qubits. Protective safeguards and warnings have been instituted for legacy functions approaching this former limit.
  • Cost Computation: Added detailed cost computation mechanisms directly into the Pauli propagator logic.

Improvements and Fixes

  • Improved GPU Stabilization: Made comprehensive fixes to the GPU simulators and GPU Pauli propagators, ensuring correct API sizing, addressing initialization bugs, and patching SetWillUseSampling configurations.
  • GPU Configuration: Exposed double-precision toggling for GPU simulators directly through the Python bindings and augmented logging to surface better error warnings when GPU simulators fail to initialize or are unavailable.
  • Parameter Handling Updates: The Python bindings now gracefully leverage empty arrays as default parameters rather than null checks, permitting cleaner management by add/remove wrappers.
  • Code Formatting & Consistency: Standardized variable casing to snake_case in the Python interfaces to better conform to PEP8 guidelines and applied various formatting sweeps across the repository.
  • Documentation & Examples: Refined the active tutorials, improved the binding documentation to accurately reflect the new QuEST workflows, and deprecated redundant documentation files to rely on automated builds.
  • Build Scripts and Systems: Optimized the automated CMake compilation pipeline by integrating ccache. Implemented improved dependency checking during build processes (like checking for BLAS) and supplemented build scripts with redundancy, alongside a patch for Yarn GPG keys.
  • Linux Compatibility Overhaul: Resolved several strict private/public visibility issues and patched numerous compilation errors unique to Linux and GPU-Linux hybrid environments.

Testing

  • Considerably expanded the testing suite. Integrated new tests profiling the QuEST bindings, standard Pauli propagation simulators, extensive GPU simulators, and extended stabilizers. Improved the Pauli propagation tests by properly scaling generation probabilities to avoid infinitely stalling edge-cases.