qiboteam / qibo

A framework for quantum computing
https://qibo.science
Apache License 2.0
281 stars 56 forks source link

Improvements on top of the Clifford Simulator #1128

Open BrunoLiegiBastonLiegi opened 7 months ago

BrunoLiegiBastonLiegi commented 7 months ago

1076 is introducing in qibo a way for simulating clifford circuits efficiently, several improvements can still be introduced on top of that though:

EXTRA:

@renatomello did I forget anything?

### Tasks
- [ ] https://github.com/qiboteam/qibo/pull/1139
- [ ] https://github.com/qiboteam/qibo/pull/1150
- [ ] https://github.com/qiboteam/qibojit/pull/161
- [ ] https://github.com/qiboteam/qibo/pull/1183
- [ ] https://github.com/qiboteam/qibo/pull/1239
- [ ] https://github.com/qiboteam/qibo/pull/1248
renatomello commented 7 months ago

@renatomello did I forget anything?

The Clifford.to_circuit method, but there is already a #TODO annotation in the code for it

renatomello commented 7 months ago

One thing I forgot to mention is that we need a way to enumerate the Cliffords for a given number of qubits. Maybe a conversion from one integer to a symplectic matrix. This is important for quantum_info.random_clifford because it is necessary for randomized benchmarking protocols in qibocal.

renatomello commented 7 months ago

@BrunoLiegiBastonLiegi we should also add a few extra methods to the Clifford class, e.g. a compose that composes two Clifford objects, an unitary method like the one in the Circuit class, etc. And I insist we should still have a similar method to the add method of the Circuit class.

andrea-pasquale commented 6 months ago

@BrunoLiegiBastonLiegi For possible improvements related to the CuQuantum backend you might want to check their documentation to see if there some primitives that you can exploit in your implementation of the clifford backend.

renatomello commented 4 months ago

@scarrazza @BrunoLiegiBastonLiegi @alecandido @AlejandroSopena just to add to the already aforementioned issue(s): PennyLane added a new Clifford simulator with stim as engine https://github.com/PennyLaneAI/pennylane/releases/tag/v0.35.0