Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Quandela/Perceval
An open source framework for programming photonic quantum computers
https://github.com/Quandela/Perceval
physics-simulation quantum quantum-computing
Last synced: 2 months ago
JSON representation
An open source framework for programming photonic quantum computers
- Host: GitHub
- URL: https://github.com/Quandela/Perceval
- Owner: Quandela
- License: other
- Created: 2022-03-30T15:25:34.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T12:02:42.000Z (8 months ago)
- Last Synced: 2024-05-22T13:27:52.210Z (8 months ago)
- Topics: physics-simulation, quantum, quantum-computing
- Language: Python
- Homepage: https://perceval.quandela.net
- Size: 14 MB
- Stars: 130
- Watchers: 5
- Forks: 59
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-quantum-software - Perceval - [Quandela](https://www.quandela.com)'s software library for programming realistic photonic quantum computers. (Quantum full-stack libraries)
README
[![GitHub release](https://img.shields.io/github/v/release/Quandela/Perceval.svg?style=plastic)](https://github.com/Quandela/Perceval/releases/latest)
![PyPI - Python Version](https://img.shields.io/pypi/pyversions/perceval-quandela?style=plastic)
[![CI](https://github.com/Quandela/Perceval/actions/workflows/python-publish.yml/badge.svg)](https://github.com/Quandela/Perceval/actions/workflows/python-publish.yml)[![CI](https://github.com/Quandela/Perceval/actions/workflows/autotests.yml/badge.svg)](https://github.com/Quandela/Perceval/actions/workflows/autotests.yml)
[![CI](https://github.com/Quandela/Perceval/actions/workflows/build-and-deploy-docs.yml/badge.svg)](https://github.com/Quandela/Perceval/actions/workflows/build-and-deploy-docs.ym)Through a simple object-oriented python API, Perceval provides tools for building a circuit with linear optics components,
defining single-photon sources and their error model, manipulating Fock states, running simulations, reproducing published experimental papers results,
and experimenting with a new generation of quantum algorithms.It is interfaced with the available QPUs on
the [Quandela cloud](https://cloud.quandela.com/webide/), so it is possible to run computations on an
actual photonic computer.Perceval aims to be a companion tool for developing discrete-variable photonics circuits
- while simulating their design, modelling their ideal and real-life behaviour;
- and proposing a normalized interface to control photonic quantum computers;
- while using powerful simulation backends to get state-of-the-art simulation;
- and also allowing direct access to the QPUs of Quandela.Perceval has been developed as a complete toolkit for physicists and quantum computational students, researchers and
practitioners.# Key Features
* Powerful Circuit designer making use of predefined components
* Simple python API and powerful simulation backends optimized in C
* Misc technical utilities to manipulate State Vector, Unitary Matrices, and circuit Parameters
* Transversal tools for visualization compatible with notebooks or local development environments
* Numerical and symbolical computation
* Modular architecture welcoming contributions from the community# Installation
Perceval requires:
* Above Python 3.8 and below Python 3.12
## PIP
We recommend installing it with `pip`:```bash
pip install --upgrade pip
pip install perceval-quandela
```If you are looking to use our qiskit, qutip or myqlm bridges you can specify it:
```bash
pip install perceval-quandela[qiskit_bridge] #install qiskit and seaborn
pip install perceval-quandela[qutip_bridge] #install qutip
pip install perceval-quandela[myqlm_bridge] #install myqlm
pip install perceval-quandela[qiskit_bridge, qutip_bridge, myqlm_bridge] #install all above
```## GitHub
```bash
git clone https://github.com/quandela/Perceval
```
then to install Perceval:
```bash
pip install .
```
Or for developers:
```bash
pip install -e .
```
Or to use converters:
```bash
pip install .[qiskit_bridge,qutip_bridge,myqlm_bridge,cqasm_bridge]
```# Running tests and benchmarks
Unit tests files are part of the repository in `tests/` and can be run with:
```
pip install -r tests/requirements.txt
pytest
```Additionally, you can see a coverage report with the command:
```
pytest --cov=perceval
```Benchmark tests for computing-intensive functions are in `benchmark/` and can be run with:
```
pytest benchmark/benchmark_*.py
```Comparison benchmarks for different platforms are also committed in `.benchmarks/` - see [pytest-benchmark documentation](https://pytest-benchmark.readthedocs.io/en/stable/usage.html) for more information.
# Documentation and Forum
* The [documentation](https://perceval.quandela.net/docs)
* The [Community Forum](https://perceval.quandela.net/forum)#
[](https://www.quandela.com/)[![Twitter Follow](https://img.shields.io/twitter/follow/Quandela_SAS?style=social)](https://twitter.com/Quandela_SAS)
[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCl5YMpSqknJ1n-IT-XWfLsQ?style=social)](https://www.youtube.com/channel/UCl5YMpSqknJ1n-IT-XWfLsQ)