Skip to content

v1.2.1 The Royal Court

Choose a tag to compare

@Benoit-F-Q Benoit-F-Q released this 20 May 10:57
· 37 commits to main since this release
29918db

New features

  • The main computation classes have been ported to Exqalibur
    • Noisy computations should be faster and use less memory
    • SLOS is now fully in Exqalibur by default
    • Simulators (both probability and sampling) are now in Exqalibur, and will be used by default if the backends exists in Exqalibur (e.g. SLOS, Clifford)
  • RemoteProcessor now have a get_current_noise() method that returns a NoiseModel corresponding to its performance.
  • RemoteProcessor specs are now a dedicated object type that ensures some fields are always available. This should also provide code hints for your IDE
  • Fourier interferometers can now be constructed through a helper method of the Unitary class

Improvements

  • The "postselect" can now be changed in the Sampler's iterations
  • The Unitary class now have a random() method to make a random unitary.
  • The Unitary class can now take directly a numpy array instead of a Matrix

Bug fixes

  • RemoteProcessor's experiment can now be changed without breaking it
  • RemoteProcessor was raising an error when having asymetrical heralds
  • The precision in the Sampler's probability computations depended on the presence of iterations
  • The Grover's search notebook is now closer to the process proposed in its source material
  • The modulus fidelity was returning complex values
  • Circuit deserialization have been fixed for nested circuits with parameters
  • Optical components could added after detectors in some cases

Breaking changes

  • Although some classes were ported to Exqalibur, their python versions can still be accessed if needed
    • No class name has been changed, so Simulator or SLOSBackend still points to the python version
    • The python SLOS is still available in Processors under the name "SLOS_LEGACY"
  • Tokens that were saved before perceval 0.13 will no longer be loaded by perceval due to previous changes to their storage
    • Loading them and saving them in a perceval 1.1 should be enough to do the transition
  • Importing the Processor class from the components submodule is now deprecated
    • Processor should now be imported directly from perceval's root, or from the runtime submodule
  • The new PlatformSpecs object that is now returned by RemoteProcessor.specs should be accessed through its attributes and no longer as a dictionary. While this remains possible, it is now deprecated.
  • Catalog items' build_processor() is now deprecated. build_experiment() should be used instead

A detailed documentation on how to update your Perceval code to version 1.2 is available here: https://perceval.quandela.net/docs/v1.2/legacy.html

You can contact us on Quandela community forum