Download Latest Version v1.1.0 The Round Table source code.tar.gz (7.3 MB)
Email in envelope

Get an email when there's a new version of Perceval

Home / v1.0.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2025-09-03 4.7 kB
v1.0.0 - The Grail Encounter source code.tar.gz 2025-09-03 7.4 MB
v1.0.0 - The Grail Encounter source code.zip 2025-09-03 7.8 MB
Totals: 3 Items   15.2 MB 0

After a long wait, Perceval has finally reached version 1!

New features and reasons to upgrade

  • The user documentation has been completely revamped.

    • Its improved structure is more natural, especially for newcomers,
    • The tutorials section was split in lessons divided into three levels (beginner, advanced and expert),
    • A particular care was given to Perceval and exqalibur code reference which now covers all existing features!
  • It is now possible to send Experiments containing feed-forward to the Cloud. Please note that only a limited list of platforms can handle feed-forward (at the time of its release, only "sim:slos" has this capability).

  • Noisy simulations were optimised a lot, through an improved preprocessing of noisy input states, the use of light-weight FockState representation during computations and an improved algorithm. It is now consuming way less memory and shows speed-ups up to 50x on larger noisy simulations.

Improvements

  • CircuitOptimizer now supports an initial guess
  • A Herald can be added on only one side of an Experiment, making it asymmetrical (user input state and output state won't have the same size anymore)
  • Better probability threshold management in chained tensor products of distributions
  • Use herald values during an imperfect Detector simulation
  • Heralds and PostSelect are now transmitted between simulation layers for LC and TD components
  • Optimized usage of an FSMask in SLAP
  • Optimized the SLAP.prob_distribution call
  • Optimized the Source model algorithm (by moving it to exqalibur)
  • NoiseModel now provides pythonic access to its attributes
  • A request payload may now be generated without connecting to a Cloud provider
  • Enhanced Scaleway provider code
  • Shor's algorithm example notebook has been modernised

  • Rendering

  • pdisplay handles BSSamples

  • Sped up the rendering of large SVDistribution

  • Remote computing

  • Perceval now checks a new constraint from remote platforms, telling whether they can handle multiple input photons per mode

  • Read RemoteProcessor.status property to know the current status of the corresponding remote platform
  • Add field cloud_maximal_job_count to RemoteConfig, limiting the number of concurrent Job run at once when calling JobGroup.run_parallel
  • JobGroup.list_existing() method was renamed to list_locally_saved(), for clarity
  • The behaviour of get_results is now consistent for failed jobs (LocalJob or RemoteJob).

Bug fixes

  • Experiment composition

  • When composing two experiments or processors, the right-hand-side detectors now have priority

  • Adding a single component to an Experiment on non-consecutive modes correctly applies an inverted permutation after it

  • Circuit and Processor rendering

  • Modes are now rendered below the input ports

  • Fixed a bug where a subcircuit and its container box would be shifted
  • Fixed a bug in specific feed-forwarded circuits rendering

  • Fix handling of min_detected_photons in the NoisySamplingSimulator

  • Fix Expression.fixed property
  • Fix a crash that could occur in Clifford & Clifford 2017 sampling back-end
  • Internal logger can now be setup to write in a file at a path containing non-ASCII characters
  • A Job does not forget its name anymore when reloaded from a JobGroup
  • Fix the result of PS.definition()

Breaking changes

With the release of Perceval version 1 comes a list of updated features and syntax. Here's a list of the major potential code breaks:

  • To achieve large performance gains in noisy simulations, the FockState class was split into three. While the pcvl.BasicState retains most of its versatility, user code might be broken by this code.
  • In some computations, physical_perf and logical_perf scores have been merged into a global_perf
  • Gate based to LO circuits converters were moved from Perceval to a new package perceval-interop. Read its documentation.

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

You can contact us on the Perceval forum

Source: README.md, updated 2025-09-03