A sketchy roadmap towards a viable qibo-core.
Representing circuits
The present goal is to be able to represent simple circuits. To have a practical goal, I want to support writing just a QFT, and see the simple diagram being printed.
This is more or less the goal of #6.
Running circuits
Import a trivial copy of the NumPy backend, just to validate the circuit representation and to extend its API, to be sufficient for execution.
Done in #26.
C API
Extra
Support all Qibo models and examples
This is the final target for qibo-core to be used as a replacement of the current structure in Qibo.
It will require to implement all gates, the channels, and possibly to implement some additional features of the circuits (distcircuit.py?).
Tests
This is definitely a moving target, and I will start providing a minimal CI very soon.
Docs
Same as for tests.
Allow someone else:
Multilanguage backends
This will be the cornerstone of qibo-core: the backend mechanism.
The first step will be to provide a minimal Backend structure, and use it to implement in Python the NumPy backend, based on qibo-core.
The further (and far more ambitious) goal of this stage will be to make a Rust executable, capable to create a circuit and run it on the NumPy backend.
This means that the Rust qibo-core will be somehow able to recognize the availability of the NumPy backend on the platform, spawn the Python process, send it the circuit, and eventually fetch the result (asynchronously?).
Further APIs
A sketchy roadmap towards a viable
qibo-core.Representing circuits
The present goal is to be able to represent simple circuits. To have a practical goal, I want to support writing just a QFT, and see the simple diagram being printed.
This is more or less the goal of #6.
Running circuits
Import a trivial copy of the NumPy backend, just to validate the circuit representation and to extend its API, to be sufficient for execution.
Done in #26.
C API
Extra
serdeSupport all Qibo models and examples
This is the final target for
qibo-coreto be used as a replacement of the current structure in Qibo.It will require to implement all gates, the channels, and possibly to implement some additional features of the circuits (
distcircuit.py?).Tests
This is definitely a moving target, and I will start providing a minimal CI very soon.
Docs
Same as for tests.
Allow someone else:
Multilanguage backends
This will be the cornerstone of
qibo-core: the backend mechanism.The first step will be to provide a minimal
Backendstructure, and use it to implement in Python the NumPy backend, based onqibo-core.The further (and far more ambitious) goal of this stage will be to make a Rust executable, capable to create a circuit and run it on the NumPy backend.
This means that the Rust
qibo-corewill be somehow able to recognize the availability of the NumPy backend on the platform, spawn the Python process, send it the circuit, and eventually fetch the result (asynchronously?).Further APIs