| Name | Modified | Size | Downloads / 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.
-
It is now possible to send
Experimentscontaining 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
FockStaterepresentation 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
CircuitOptimizernow supports an initial guess- A
Heraldcan be added on only one side of anExperiment, 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
Detectorsimulation - Heralds and PostSelect are now transmitted between simulation layers for
LCandTDcomponents - Optimized usage of an
FSMaskin SLAP - Optimized the
SLAP.prob_distributioncall - Optimized the
Sourcemodel algorithm (by moving it to exqalibur) NoiseModelnow 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
-
pdisplayhandlesBSSamples -
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.statusproperty to know the current status of the corresponding remote platform - Add field
cloud_maximal_job_counttoRemoteConfig, limiting the number of concurrentJobrun at once when callingJobGroup.run_parallel JobGroup.list_existing()method was renamed tolist_locally_saved(), for clarity- The behaviour of
get_resultsis now consistent for failed jobs (LocalJoborRemoteJob).
Bug fixes
-
Experiment composition
-
When composing two experiments or processors, the right-hand-side detectors now have priority
-
Adding a single component to an
Experimenton 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_photonsin theNoisySamplingSimulator - Fix
Expression.fixedproperty - 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
Jobdoes not forget its name anymore when reloaded from aJobGroup - 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
FockStateclass was split into three. While thepcvl.BasicStateretains most of its versatility, user code might be broken by this code. - In some computations,
physical_perfandlogical_perfscores have been merged into aglobal_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