写点什么

启科量子 QuSprout 正式开源

  • 2022-11-16
    广东
  • 本文字数:1619 字

    阅读完需:约 5 分钟

启科量子 QuSprout 正式开源

随着启科量子内部研发团队在量子计算后端研发方面工作的持续推进,启科量子于今日公开发布了其自主研发的量子计算模拟后端——QuSprout,宣布将其正式开源。


QuSprout 的开源旨在让更多的开发者、专家学者或爱好者参与到量子技术的研发上来,更快推动量子技术发展。

开源地址:https://github.com/qudoor/qusprout

编译,安装,启动服务


编译:
  1. QuSprout 根目录下的 thirdparty 目录里面包含了大部分编译和运行 QuSprout 的第三方库,该目录下的 install.sh 脚本可以一键安装依赖库:


    sudo chmod a+x install.sh    sudo ./install.sh        Noted:     1. CentOS上需要使用root权限执行install.sh脚本。    2. 执行install.sh之前需要提前安装基本的开发工具包括gcc,g++, make, unzip。    3. 执行install.sh过程中,可能在不同的Linux平台会遇到个别依赖库安装失败的情况,您可以尝试解决或者在github上创建 Issue。
复制代码


  1. QuSprout 根目录下有个 build_qusprout.sh 脚本文件,这个脚本文件是用来对 QuSprout 进行编译的。

  2. 赋予编译脚本执行权限:


   sudo chmod a+x build_qusprout.sh
复制代码


  1. 执行编译脚本,0.1.12 是需要指定的编译版本号,您可以指定任意的版本号:


   sudo ./build_qusprout.sh version 0.1.12
复制代码
安装:
  1. 编译完成后,会在当前目前下生成 build_v0.1.12.tar.gz 文件,0.1.12 是编译时指定的版本号。

  2. QuSprout 根目录下有个 service_qusprout.sh 脚本文件,这个脚本文件是用来对 QuSprout 进行安装部署的。

  3. 赋予部署脚本执行权限:


   sudo chmod a+x service_qusprout.sh
复制代码


  1. 执行部署脚本, 执行时会在当前目前下查找 build_v0.1.12.tar.gz 编译文件,0.1.12 是要安装部署的版本号。


   sudo ./service_qusprout.sh version 0.1.12
复制代码
启动:
  1. 安装完成后,需要启动 qusprout 服务。

  2. 启动 qusprout 服务:


   sudo ./service_qusprout.sh start qusprout
复制代码


  1. service_qusprout 支持另外两个参数 stop,restart,分别对应于停止和重启服务。


QuSprout 作为 QuTrunk 的量子计算模拟后端,可以帮助完成很多算法的运行。以下示例展示了利用 QuTrunk 运行 bell-pair 量子算法:


from qutrunk.circuit import QCircuitfrom qutrunk.circuit.gates import H, CNOT, Measurefrom qutrunk.backends import BackendQuSprout

def run_bell_pair(backend=None): # Create quantum circuit qc = QCircuit(backend=backend)
# Allocate quantum qubits qr = qc.allocate(2)
# Apply quantum gates H * qr[0] CNOT * (qr[0], qr[1]) Measure * qr[0] Measure * qr[1]
# Print quantum circuit qc.print() # qc.dump(file="bell_pair.qasm", format="openqasm")
# Run quantum circuit with 100 times res = qc.run(shots=10000)
# Print result like: #[1, 1] #[{"00": 50}, {"11": 50}] print(res.get_measure()) print(res.get_counts())
# Print quantum circuit exection information print(res.excute_info())
return qc

if __name__ == "__main__": # Run locally circuit = run_bell_pair(backend=BackendQuSprout())
# Draw quantum circuit circuit.draw()
复制代码


运行结果为:


qreg q[2]creg c[2]H * q[0]MCX(1) * (q[0], q[1])Measure * q[0]Measure * q[1][1, 1][{"00": 4995}, {"11": 5005}]{"backend": "BackendQuSprout", "task_id": null, "status": "success", "arguments": {"shots": 10000}}      ┌───┐      ┌─┐   q[0]: ┤ H ├──■───┤M├───      └───┘┌─┴──┐└╥┘┌─┐q[1]: ─────┤ CX ├─╫─┤M├           └────┘ ║ └╥┘ c: 2/════════════╩══╩═                  0  1 
复制代码


开源地址:https://github.com/qudoor/qusprout

添加助手,邀你结识更多量子计算行业大牛



发布于: 刚刚阅读数: 4
用户头像

量子计算技术交流 2022-06-10 加入

关注量子计算软件技术最新动态 启科量子开发者官方网站:http://developer.queco.cn GitHub开源地址:https://github.com/qudoor

评论

发布
暂无评论
启科量子 QuSprout 正式开源_开源_启科量子开发者官方号_InfoQ写作社区