QPanda-Lite. A python-native version for pyqpanda. Simple, easy, and transparent.
Project description
QPanda-lite
QPanda: Quantum Programming Architecture for NISQ Device Application
QPanda-lite should be a simple, easy, and transparent python-native version for QPanda.
Status
Developing. Unstable.
Design principles
- A clear, and tranparent way to assemble/execute a quantum program
- Support sync/async modes for execution on a quantum hardware
- Clear error hints
- Full, and better documentations
- Visualization of the quantum program
- Be able to migrate to different quantum backends
Install
OS
- Windows
- Linux (not fully tested)
- MacOS (not fully tested)
Requirements
- Python >= 3.7
Optional for quafu execution
manually install via pip :
- pyquafu (pip install pyquafu)
Optional for qiskit execution
manually install via pip :
- qiskit (pip install qiskit) and
- qiskit-ibm-provider (pip install qiskit-ibm-provider) and
- qiskit-ibmq-provider (pip install qiskit-ibmq-provider)
Optional for C++ simulator
- CMake >= 3.1
- C++ compiler (with C++ 14 support), including MSVC, gcc, clang, etc...
Build from source
A minimum version
# Clone the code
git clone https://github.com/Agony5757/QPanda-lite.git
cd QPanda-lite
# install
python setup.py install --no-cpp
For development
git clone https://github.com/Agony5757/QPanda-lite.git
cd QPanda-lite
# install
python setup.py develop
With C++ enabled (quantum circuit simulator written in C++)
git clone https://github.com/Agony5757/QPanda-lite.git
cd QPanda-lite
# install
python setup.py install
Build the docs
Will be released in the future.
pip
For python 3.8 to 3.10
pip install qpandalite
Examples
There are several ways to use QPanda-lite now.
- Circuit building (not supported now)
- Circuit simulation (not supported now)
- Run circuit on several backends
Circuit run on OriginQ Device
Step 1. Create online config
Refer to qcloud_config_template/originq_template.py
- Input the necessary information (token, urls, group_size) to call create_originq_online_config
- You will have the originq_online_config.json in your current working directory (cwd).
- Now you can submit task to the online chip!
Step 1.1 (Optional). Use originq_dummy
Dummy server is used to emulate the behavior of an online-avaiable quantum computing server, without really accessing the system but with your local computer to simulate the quantum circuit.
-
Input the necessary information (available_qubits and available_topology) to call create_originq_dummy_config.
-
If you want both mode, use create_originq_config and inputting all needed information.
Step 2. Create the circuits and run
Refer to test/demo
Circuit run on Quafu Device
Step 1. Create online config
Refer to qcloud_config_template/quafu_template.py
- Input the necessary information (token, urls, group_size) to call create_quafu_online_config
- You will have the quafu_online_config.json in your cwd.
- Now you can submit task to the online chip!
Step 2. Create the circuit and run
Todo.
Circuit build
Refer to test/demo
from qpandalite import Circuit
c = Circuit()
c.rx(1, 0.1)
print(c.circuit)
Circuit simulation
Refer to test/draft_test/originir_simulator_test.py
import qpandalite.simulator as qsim
sim = qsim.OriginIR_Simulator(reverse_key=False)
originir = '''
QINIT 72
CREG 2
RY q[45],(0.9424777960769379)
RY q[46],(0.9424777960769379)
CZ q[45],q[46]
RY q[45],(-0.25521154)
RY q[46],(0.26327053)
X q[46]
MEASURE q[45],c[0]
MEASURE q[46],c[2]
MEASURE q[52],c[1]
'''
res = sim.simulate(originir)
print(res)
print(sim.state)
# Expect output:
# [0.23218757036469517, 0.04592184582945769, 0.0, 0.0, 0.6122094271102275, 0.10968115669561962, 0.0, 0.0]
# [(0.4818584546987789+0j), (-0.21429383059121812+0j), (0.7824381298928546+0j), (0.33118145584500897+0j), 0j, 0j, 0j, 0j]
Note: Have ImportError? ImportError:qpandalite is not install with QPandaLiteCpp.
You should install with QPandaLiteCpp before importing qpandalite.simulator
Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for qpandalite-0.1.8-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 021947a053d97d3577cdc344905f2f61b7ab3c5a16d06ed287c390c520db33fe |
|
MD5 | cd72ff66b877d04d5b86d2a4866bde17 |
|
BLAKE2b-256 | 93b89df5346f82d7e1a2c3788d6b683a560402e13c4240457f780da559db45ea |
Hashes for qpandalite-0.1.8-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a662f3fd67173918afea6fe73130a8aa72fb25ae5376609fd7e7264c439b7bd |
|
MD5 | 37ae65e1b8bebe508262fd86d2a04d83 |
|
BLAKE2b-256 | 5bf469fec9b588520a7963be53663a38cb036ca75251e8b247303ecd59411983 |
Hashes for qpandalite-0.1.8-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d643b575cf8ef30cac6f3fede29bbaefbd029ad82e9ce0f2c0ab6d7fdd9c676 |
|
MD5 | 3ae3f6fc4fd322aa89a21248780fc128 |
|
BLAKE2b-256 | ea852dff1cabc2c7ba77ba4b652b551044cc8c9d84a7c415d98579e0848132ad |
Hashes for qpandalite-0.1.8-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2be18c8bfbf3b48f718a73151cf00fd2a578a0505f6e671d08b6e0c3e5936ecf |
|
MD5 | 71ddbba64255b355845d19496dd33f65 |
|
BLAKE2b-256 | 1193866c7c4a10fbea9a2c9fac82edabc2bcbd86479d1234382f6f4e7fdff983 |