Start
The QuaLeSim(Quantum Lego Simulator) is an adapted version of DQCSim. For quantum circuit simulation, you can simulate QUIET-s and QCIS instruction by it. And what's more, now the QuaLeSim is integrated into the backend of Quingo, you can use it directly after installing quingoc and quingo-runtime. More inforemations is available in [[#Install]]
Install
The QuaLeSim now is only for Linux platform.
- 环境准备:
- Linux platform with
python>=3.7 - Rust # if you don't have rust, make sure you have
'curl'to install rust in the setup.py .
- Linux platform with
- 安装说明:
- 目前已经将 qualesim 及其相关插件上传至 PYPI,可以选择下面两种方式安装:
- 一键安装qualesim 及其相关插件:
pip install qualesim[TEQUILA]- 注:tequila目前尚未开源,tequila不会默认安装。
- 若需要使用Tequila模拟器,可以在
qualesim之后加[TEQUILA]来安装
- 若需要使用Tequila模拟器,可以在
- 单独安装各个模块插件:
pip install qualesim# 安装qualesim本体pip install qualesim-tequila# 安装 tequila 后端,tequila尚未开源,需要单独安装
Quick Start
Quick Start is for users use the Simulator directly or use it with quingo-runtime. Some examples are available below.
- For independent users:
- The Simulator can simulate QUIET-s and QCIS instructions, you can use it directly:
from qualesim.plugin import *
from qualesim.host import *
sim = Simulator(stderr_verbosity=Loglevel.INFO)
sim.with_frontend("<path-to-qcis-file>", verbosity=Loglevel.INFO)
# sim.with_frontend("<path-to-qi-file>", verbosity=Loglevel.INFO)
# Loglevel is for output information for DEBUG/INFO/OFF
# If you only want the simulation output, please set it OFF
sim.with_backend("quantumsim", verbosity=Loglevel.INFO)
# sim.with_backend("tequila", verbosity=Loglevel.INFO)
# now we have DQCsim-Tequila and DQCsim-QuantumSim backend for Simulator
sim.simulate()
res = sim.run(measure_mod="state_vector", num_shots=10)
# Start the simulation with different exe mod,
# measure_mod="one_shot" and num_shots=int /
# "state_vector"
# the output should be
sim.stop()
final_state = dict()
final_state = res["res"]
print(final_state)
- the output is :
measure_mod="state_vector":
res1(M Q1, M Q2) = {'classical': {'Q1': 1, 'Q2': 1}, 'quantum': (['Q3'], [0j, (1+0j)])}
# classical is qubit measured, quantum is qubit unmeasured with state vector.
res2() = {'classical': {}, 'quantum': (['Q1', 'Q2', 'Q3'], [(0.7071067811865472+0j), 0j, 0j, 0j, 0j, 0j, 0j, (0.7071067811865478+0j)])}
measure_mod="one_shot", num_shots=10:
# classical is classical value, quantum is qubit measured. and they are one to one correspondence
res(measure(q1)->c1, measure(q2)->c2) = {'quantum': [['q1', 'q2'], [[0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 1], [1, 1]]], 'classical': [{'c1': [0], 'c2': [0]}, {'c1': [0], 'c2': [0]}, {'c1': [1], 'c2': [1]}, {'c1': [0], 'c2': [0]}, {'c1': [0], 'c2': [0]}, {'c1': [1], 'c2': [1]}, {'c1': [0], 'c2': [0]}, {'c1': [0], 'c2': [0]}, {'c1': [1], 'c2': [1]}, {'c1': [1], 'c2': [1]}]}
- For Quingo Users
- You should follow the [[#Install|extern: quingoc & quingo-runtime installation]] to install it.
from quingo import *
import qututor.global_config as gc
from quingo.backend.qisa import Qisa
# input quingo file and simulate qu func
qu_file = gc.quingo_dir / "ghz.qu"
circ_name = "GHZ_state"
# set the qisa, and it is the output instructions QUIET,
# you can change to Qisa.QCIS or others.
task = Quingo_task(
qu_file,
circ_name,
qisa=Qisa.QUIET,
)
num_shots = 10
cfg = ExeConfig(ExeMode.SimFinalResult, num_shots)
num_qubits = 3
# now backend BackendType.QUANTUM_SIM, BackendType.DQCSIM_TEQUILA
# BackendType.DQCSIM_QUANTUMSIM, BackendType.SYMQC is available.
# method 1
qasm_fn = compile(task, params=(num_qubits,))
res = execute(qasm_fn, BackendType.QUANTUM_SIM, cfg)
# method 2
# res = call(task, (num_qubits,), BackendType.DQCSIM_TEQUILA, cfg)
print("res: ", res)
- the output is :
measure_mod="state_vector":
res1(M Q1, M Q2) = {'classical': {'Q1': 1, 'Q2': 1}, 'quantum': (['Q3'], [0j, (1+0j)])}
# classical is qubit measured, quantum is qubit unmeasured with state vector.
res2() = {'classical': {}, 'quantum': (['Q1', 'Q2', 'Q3'], [(0.7071067811865472+0j), 0j, 0j, 0j, 0j, 0j, 0j, (0.7071067811865478+0j)])}
measure_mod="one_shot", num_shots=10:
# quingo-runtime only have quantum values.
res(measure(q1)->c1, measure(q2)->c2) =(['q1', 'q2'], [[0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 1], [0, 0], [0, 0], [1, 1], [1, 1]])
FAQ
- for install
- your environment donot have rust?
- you can install rust yourself by the Rust 程序设计语言 (rust-lang.org)
- or just make sure you have command
"curl", the setup will help you install it automatic.
- if you have llvm in your platform, the setup install maybe very slow.
- the problem is to be solved.
- install about quingoc
- please refer to docs/DeveloperGuide.md · Quingo/quingo-compiler - Gitee.com
- your environment donot have rust?
- for use
- when you first use it, there would be a problem
核心已转储- it is the dqcsim's problem and is to be solved.
- when you first use it, there would be a problem
Metadata
Release files for qualesim 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 70.0 MB
Release files / qualesim-1.0.2-cp312-cp312-manylinux2014_x86_64.whl
| Download URL | qualesim-1.0.2-cp312-cp312-manylinux2014_x86_64.whl |
|---|---|
| Size | 11.7 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d9e446c64d5241ff2c0dbb620902fb5489587ce14e63855fa28725cbffb22d9c
|
|
BLAKE2b-256 checksum How to use checksums |
dca1f33cf0c05bec99ad3fc7171533907180567080347f3c884dc44f6dae7c6d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / qualesim-1.0.2-cp311-cp311-manylinux2014_x86_64.whl
| Download URL | qualesim-1.0.2-cp311-cp311-manylinux2014_x86_64.whl |
|---|---|
| Size | 11.7 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f4895b646b2cd207d3cf6dde5864ba63ffa597d5a93d0a2a65c08c297e04febe
|
|
BLAKE2b-256 checksum How to use checksums |
586a538c2b468a04e10ed5a20f81bd3c85418b6ceb7ee4f24a07f86c955665f7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / qualesim-1.0.2-cp310-cp310-manylinux2014_x86_64.whl
| Download URL | qualesim-1.0.2-cp310-cp310-manylinux2014_x86_64.whl |
|---|---|
| Size | 11.7 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
a4442e494481613ac8423f4e26e8dddf22d36c952bbef132b429eafd98307923
|
|
BLAKE2b-256 checksum How to use checksums |
1bd5062b2283b2def4ef7fe02e506576d48314ec7d15c6a561cea835c1f0daec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / qualesim-1.0.2-cp39-cp39-manylinux2014_x86_64.whl
| Download URL | qualesim-1.0.2-cp39-cp39-manylinux2014_x86_64.whl |
|---|---|
| Size | 11.7 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
5a1fc2748f9c4c40acfb47d10d94799f762fa581e5970ec53bf4ec9974864d71
|
|
BLAKE2b-256 checksum How to use checksums |
81a38081ab37e47fdac766338abae06991dba4b7dd481be63a2f881970d7046b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / qualesim-1.0.2-cp38-cp38-manylinux2014_x86_64.whl
| Download URL | qualesim-1.0.2-cp38-cp38-manylinux2014_x86_64.whl |
|---|---|
| Size | 11.7 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
bd06e0c8bdb64aaedb9f1829af9c615c29ede51b2982c0c416eae47d75c01f2b
|
|
BLAKE2b-256 checksum How to use checksums |
a69c5f4e09c830506277995577c215327f339642e79e258b01ab291e9a5755a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Release files / qualesim-1.0.2-cp37-cp37m-manylinux2014_x86_64.whl
| Download URL | qualesim-1.0.2-cp37-cp37m-manylinux2014_x86_64.whl |
|---|---|
| Size | 11.7 MB |
| Tags | CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
82f70dd7285bcf292836993dc183499c71708161bfc573178e72f6d139cfa04f
|
|
BLAKE2b-256 checksum How to use checksums |
786228233c2f0c19ed2d7ac2f48c0f90db811cb228bae9a7ee0b0b102373b27a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.12.2
|
Security for qualesim 1.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.