量子精确模拟工具包(QuEST)是一个高性能的量子电路、态向量和密度矩阵模拟器。QuEST 利用多线程、GPU 加速和分布式计算技术,可在笔记本电脑、台式机和联网超级计算机上快速运行。 QuEST 简单易用;它是独立的,无需安装,编译和运行极为简单。 QuEST 混合了具有广泛编译器支持的 OpenMP 和 MPI,可在各种多核、多 CPU 和分布式硬件上运行,使用 HIP 在 AMD GPU 上运行,集成了 cuQuantum 和 Thrust 以在现代 NVIDIA GPU 上获得尖端性能,并具有自定义内核后端,可在较旧的兼容 CUDA 的 GPU 上运行。 而且它 在单一、无缝的接口后隐藏了这些部署模式。
QuEST 由牛津大学 QTechTheory 小组和这些作者开发。要了解更多信息:
QuEST 拥有简单的接口,可在 CPU、GPU 和网络环境中无缝运行。
hadamard(qubits, 0); controlledRotateX(qubits, 0, 1, angle); double prob = calcProbOfOutcome(qubits, 0, outcome);
同时,它也很灵活
Vector v; v.x = 1; v.y = .5; v.z = 0; rotateAroundAxis(qubits, 0, angle, v); ComplexMatrix2 u = { .real = {{.5, .5}, { .5,.5}}, .imag = {{.5,-.5}, {-.5,.5}}}; unitary(qubits, 0, u); mixDepolarising(qubits, 0, prob);
而且功能非常强大
ComplexMatrixN u = createComplexMatrixN(5); int ctrls[] = {0, 1, 2}; int targs[] = {5, 20, 15, 10, 25}; multiControlledMultiQubitUnitary(qubits, ctrls, 3, targs, 5, u); ComplexMatrixN k1, k2, k3 = ... mixMultiQubitKrausMap(qubits, targs, 5, {k1, k2, k3}, 3); double val = calcExpecPauliHamil(qubits, hamiltonian, workspace); applyTrotterCircuit(qubits, hamiltonian, time, order, repetitions);
QuEST 支持:
qreal数值类型实现的可变精度,可使用单精度、双精度或四精度对于开发者:当
master分支更新时,QuEST的文档会通过Github Actions自动重新生成。要在本地重新生成文档,请在根目录运行doxygen doxyconfig/config,这将在Doxygen_doc/html中生成html文档。
要快速开始,请使用git在终端下载QuEST
git clone https://github.com/quest-kit/QuEST.git cd QuEST
mkdir build cd build cmake .. make
然后运行
<br>./demo
Windows用户应安装Visual Studio的Build Tools和CMake,并在Developer Command Prompt for VS中运行上述命令,但使用以下构建命令
cmake .. -G "NMake Makefiles" nmake如果以这种方式使用MSVC和NMake失败,用户可以放弃GPU加速,下载 MinGW-w64,并通过以下方式编译
cmake .. -G "MinGW Makefiles" make
我们衷心感谢以下QuEST的外部贡献者。
mixDamping。initDiagonalOpFromPauliHamil进行了串行原型设计。QuEST使用BSD许可下的mt19937ar梅森旋转算法进行随机数生成。QuEST可选择(通过额外导入QuEST_complex.h)集成Randy Meyers和Dr. Thomas Plum的语言无关复数类型。
QuESTlink <br> 一个Mathematica包,支持符号电路操作、解析模拟、可视化和使用远程加速硬件进行高性能模拟。
pyQuEST <br> 一个基于Cython的QuEST Python接口,由QTechTheory小组开发。请注意,pyQuEST目前处于alpha阶段。
PyQuEST-cffi <br> 由HQS Quantum Simulations开发的基于cffi的QuEST Python接口。请注意,PyQuEST-cffi目前处于alpha阶段,不是官方QuEST项目。