4 个版本

0.4.4 2023年3月10日
0.4.3 2022年11月9日
0.4.2 2022年8月2日

#151模拟

GPL-3.0-or-later

45KB
1K SLoC

QVNT

build rustc crates.io docs.rs

Rust编写的高级量子计算模拟器

功能

  1. 能够模拟多达64个量子比特。配备4-16 Gb RAM的普通机器能够模拟26-28个量子比特,这对于几个研究案例来说已经足够了;
  2. 一套1-或2-量子比特操作,用于构建自己的量子电路;
  3. 量子操作经过测试和调试,以确保使用安全;
  4. 使用多线程库Rayon加速电路执行;
  5. 复杂的量子寄存器操作:两个寄存器的张量积以及量子比特到寄存器的别名,以简化与寄存器的交互。

QVNT解释器

关于

它是一个REPL解释器,可用于处理量子操作而无需编译代码。

安装

cargo install qvnt-i

如何

现在,您可以使用OpenQASM语言运行量子模拟器。应通过cli将*.qasm文件传递给解释器

qvnt-i ./cirquit.qasm
|Q> :go

或通过解释器

qvnt-i
|Q> :load ./cirquit.qasm
|Q> :go

运行模拟器的另一种方式是在REPL中直接用OpenQASM语言编写电路。

qvnt-i
|Q> qreg q[4];
|Q> creg c[4];
|Q> h q;
|Q> measure q -> c;
|Q> :go
|Q> :class
  • :go - 处理模拟;
  • :class - 从经典寄存器获取结果。

REPL是惰性的:它仅在遇到:go时开始计算。此示例将每次显示一个数字

|Q> qreg q[4];
|Q> creg c[4];
|Q> h q;
|Q> measure q -> c;
|Q> :go
|Q> :class
|Q> :class
|Q> :class
|Q> :class
...

与这不同,重复执行:go将每次产生不同的结果

|Q> qreg q[4];
|Q> creg c[4];
|Q> h q;
|Q> measure q -> c;
|Q> :go
|Q> :class
|Q> :go
|Q> :class
|Q> :go
|Q> :class
...

命令

所有命令都应该以 : 开头。否则,REPL 会将行视为 OpenQASM 源代码。命令的完整列表

loop N     Repeat following commands N time
tags TAG   Create TAG with current state
goto TAG   Swap current state to TAG's state
class      Show state of classical registers
polar      Show state of quantum registers in polar form
prob       Show state of quantum registers in probability form
ops        Snow current quantum operations queue
go         Start modulating quantum computer
reset      Clear current state
names      Show aliases for quantum and classical bits
load FILE  Load state from FILE according to QASM language script
help       Show this reference
quit       Exit interpreter

许可协议

根据 MIT 许可协议 许可

依赖项

~13–21MB
~277K SLoC