v0.10.0 - Avalon Island
New features
-
Shots
Remote sampling jobs now require a maximum shots threshold.
See: https://perceval.quandela.net/docs/algorithms.html#work-with-algorithms
When creating aRemoteProcessor
for a physical QPU, a shot to samples conversion tool enables you to anticipate your use of Quandela Cloud resources. -
myQLM converter
Perceval now contains a way of converting myQLMqat.core.Circuit
into aProcessor
.
See: Conversion of myQLM circuit to Perceval -
Tomography algorithms
StateTomography
andProcessTomograpy
algorithm have been included in order to study logical gates.
See: Example notebook -
CCZ and CCNOT (Toffoli) gates have been implemented in the component catalog.
-
Quandela Cloud token persistence
A token can now be set on your environment once and for all. It will then be retrieved when running a job with aRemoteProcessor
. You won't have to copy/paste your token in all your scripts and notebooks! -
Generic interferometer phases can now be easily set to a given zone of a bigger interferometer.
Improvements
- Two new Perceval usage examples are available:
- Heralded CNOT implementation was improved (with 2 less ancillary modes and a better performance).
CircuitOptimizer
now supports template circuits containing permutations, arbitrary unitary matrices as well as multiple hierarchy levels.- Clifford & Clifford 2017 sampling back-end now computes several samples at once.
- Catalog syntax is more user friendly (see
build_circuit
andbuild_processor
methods). The previous syntax still works but was deprecated. - Several optimizations were made in the native code (exqalibur package) to speed up computations, specifically on BasicState and StateVector classes. StateVector was moved to exqalibur retaining most of the class API.
see: https://perceval.quandela.net/docs/legacy.html for a comprehensive list of changes. - Sample count now returns an exact number of samples.
- Extra requirements (e.g. for converters) may now be installed with
pip
. See: https://github.com/Quandela/Perceval#installation
Bug fixes
- Fix MPS back-end for input states with multiple photons per mode.
- Fix exponentiation of StateVectors and state distribution data structures.
Removals
- Python 3.7 support was dropped
AnnotatedBasicState
class was removed (was deprecated since version 0.7.0) .
Known issues
exqalibur
is unusable on some Ubuntu virtual machines hosted by VirtualBox- Multiplying a
StateVector
from the left with anumpy
numerical type (e.gnumpy.float64(0.6)*state_vector
) can lead to cryptic error messages.
Work-around: either multiply from the right, or convert thenumpy
type to the corresponding Python type.