QuTrunk 是启科量子自主研发的一款收费、开源、跨平台的量子计算编程框架,包含量子编程 API、量子命令转译、量子计算后端接口等。它提供多种量子计算体验,提供本地量子计算 Python 计算后端,提供 OMP 多线程、MPI 多节点并行、GPU 减速等计算模式。
应用 QuTrunk 进行量子计算程序的开发能够应用过本地 PC 机搭建开发环境,也能够应用亚马逊云上的资源作为开发环境。本文将向用户介绍如何利用亚马逊云上资源应用 QuTrunk+Runtime+QuSaaS+ 亚马逊云科技进行量子程序编程。上面先简要介绍 Runtime 工具。
1、Runtime 介绍
用户应用启科量子计算相干软件进行开发,首先须要提取筹备好量子编程环境,能不能疾速的构建编程环境是吸引开发者进行开发的首要思考的因素,所以环境部署十分重要,为了简化开发环境部署,升高开发者入门的门槛,启科推出的一款收费、开源的提供运行环境的工具 Runtime。通过 Runtime 能够疾速实现启科量子开发相干软件的部署,例如 QuTrunk 量子编程框架,QuSprout 量子模仿后端,另外也反对第三方量子算法、GPU、随机数卡等环境部署。反对算法公共库整合,一键装置所需算法组件; 反对软硬件联合、提供硬件底层库驱动。Runtime 的整体架构如下:
2、亚马逊云科技开发环境筹备
应用亚马逊云科技资源进行 QuTrunk 程序开发的整体的流程有如下几个步骤:
2.1 亚马逊云科技开发环境筹备
1、登录亚马逊云科技的治理控制台
点击右上角 Region 下拉菜单切换到须要创立的资源的 Region,本示例应用亚太新加坡站点的资源。
2、创立 EC2 拜访密钥对
顺次点击服务 -> 计算 ->EC2 关上 EC2 的主页面。首先创立好秘钥对便于前面登录到 EC2,顺次点击左侧导航栏的网络与平安 -> 密钥对 -> 创立密钥对。
实现创立后主动下载秘钥,保留好秘钥文件备用。
3、创立实例
咱们在亚马逊云科技上创立好 2 个测试示例,一个用于 runtime 工具部署,一个用于 QuTrunk 量子程序开发环境。EC2 dashboard 点击右侧导航栏实例,而后点击实例关上实例创立页面,抉择启动新实例。
关上创立实例的界面,确定实例名称,选项 Ubuntu20.04 镜像,创立新的平安组增加本地计算机拜访的网段,flavor 抉择 t2.medium,并抉择都启用公网 IP。别离创立出 Runtime 主机和 QuTrunk 主机。
2.2 Runtime 装置
1、应用秘钥文件登录到 Runtime 装置主机选中 runtime 主机,右键抉择链接,抉择 ssh 客户端
复制拜访命令:ssh -i "qutrunk-demo.pem" ubuntu@ec2-18-141-236-126.ap-southeast-1.compute.amazonaws.com
2、从 Runtime 官网下载链接下载安装包,而后解压,进入解压目录下执行 INSTALL.sh 装置,装置实现后查看 runtime 装置后果
# 下载安装包
wget -c http://nexus.queco.cn/repository/qudoor-raw/runtime/0.0.1/runtime_v0.0.1_1223_amd64.tar.gz
# 解压安装包
tar zxvf runtime_release_v0.0.1_amd64.tar.gz
cd runtime_release_v0.0.1_amd64
#运行装置脚本
/bin/bash INSTALL.sh
#待装置实现后,查看 Runtime 运行状态
rtctl status
显示状态为 healthy 即为装置胜利。
2.3 应用 Runtime 自动化部署 QuTrunk
QuTrunk 的部署装置有一些前置条件,不同 OS 下配置和装置这些前置条件比拟繁琐,Runtime 自动化工具能够解决这些问题,能够将 QuTrunk 部署所须要依赖的相干软件一起部署上,例如 python3 环境,python3-pip 等,不便用户更快的搭建好 dev 环境。具体的自动化部署部署如下:
1、环境信息配置
首先将需部署 QuTrunk 的主机信息天填写到 runtime 的配置文件:/opt/runtime/conf/hosts.hostname.ini。vim 编辑此文件,批改指标 runtime 环境装置主机的 ip、拜访端口、明码以及执行机的 nexus 拜访地址,node1 是最终 runtime 主机将 QuTrunk 主机批改的主机名,能够间接填写为 Amazon EC2 的主机名,也能够自定义为其余名称。ansible_ssh_host
是须要装置 QuTrunk 主机的 IP,ansible_ssh_pass
为登录的账号的明码,Registry_hostname
是 Runtime 主机。配置文件相似如下:
2、列出能够执行的装置软件
rtctl list
3、抉择 Qurunk 的装置的 playbook,执行自动化装置,命令如下:
rtctl run --playbook 02-qutrunk
4、QuTrunk 装置验证
登录到装置了 QuTrunk 的亚马逊云科技主机,执行 QuTrunk 装置后的查看,如下:
2.4 QuSaaS 注册利用
2.4.1 注册 QuSaaS 账号
登录 QuSasS 网站:http://developer.queco.cn/ 点击右上角注册按钮,实现注册
2.4.2 购买 QuTrunk 云服务接口
登录账号后,点击 API 服务 ->QuTrunk 云接口 -> 价格套餐 -> 收费应用 -> 立刻购买,新注册用户提供一些调用额度。
点击右上角集体用户名,抉择集体核心,关上集体核心页面
抉择我的 API,能够查问以后账号下的 API 信息,点击 QuTrunk 云接口后面的加号能够开展此接口的详细信息。如下:
2.4.3 创立利用,或者 API 拜访 AK/SK
点击右上角登录账号关上下拉菜单,抉择我的利用,而后点击创立利用,填写利用名称和利用形容,最初点击确定实现利用创立
利用创立后,将以列表的模式展现在我的利用页面,通过此页面能够查问利用的 AK/SK 信息,展现信息如下:
应用 QuTrunk 编程应用 QuSaaS 后端调用 Amazon Braket 资源须要应用到此 AK/SK 认证受权。
3、Demo 程序开发
demo 程序选用经典的 bell_pair 算法,程序命名为 qutrunk-qusaas-demo.py。首先导入 qutrunk 程序开发应用到的模块,demo 程序中应用 QuSaaS 后端,代码如下
from qutrunk.backends import BackendQuSaas
from qutrunk.circuit import QCircuit
from qutrunk.circuit.gates import CNOT, H, Measure
而后,设置 QuSaaS 拜访 AK 和 SK。ak = "QuSaaS 上创立利用生成的 Api key"
sk = "QuSaaS 上创立利用生成的 Api Secret"
# use BackendQuSaas
be = BackendQuSaas(ak, sk)
创立 bell 电路,并执行门操作和测量,并打印状态向量
circuit = QCircuit(be)
qr = circuit.allocate(2)
# apply gate
H * qr[0]
CNOT * (qr[0], qr[1])
circuit.print()
circuit.draw(line_length=300)
print(circuit.get_prob(0))
print(circuit.get_probs())
print(circuit.get_statevector())
Measure * qr[0]
Measure * qr[1]
最初运行电路,并打印后果
res = circuit.run(shots=100)
print(res.get_counts())
print(res.running_info())
输入后果如下:
$ python3 qutrunk-qusaas_demo.py
qreg q[2]
creg c[2]
H * q[0]
MCX(1) * (q[0], q[1])
┌───┐
q[0]: ┤ H ├──■───
└───┘┌─┴──┐
q[1]: ─────┤ CX ├
└────┘
c: 2/═══════════
0.4999999999999999
[{'idx': 0, 'prob': 0.4999999999999999}, {'idx': 1, 'prob': 0.0}, {'idx': 2, 'prob': 0.0}, {'idx': 3, 'prob': 0.4999999999999999}]
[0.70710678+0.j 0. +0.j 0. +0.j 0.70710678+0.j]
[{"0b00": 52}, {"0b11": 48}]
{"backend": "BackendQuSaas", "task_id": "dde06445761e43258589f041b745f428", "status": "success", "arguments": {"shots": 100}}
4、总结
本文从 Runtime 的装置到利用 Runtime 自动化装置 QuTrunk,以及在亚马逊云科技环境上如何利用 QuTrunk 开发量子计算程序,并且应用 QuSaaS 后端,从全流程上向读者展现了整个实战过程。该 Demo 程序利用了亚马逊云上的资源便利性,也充沛展现了启科量子计算软件的灵便扩展性。开发者不仅能不便在本地环境开发,也能够在云上疾速通过启科提供的自动化工具 Runtime 疾速部署开发环境,还能够应用多种计算后端,帮忙开发者疾速的开发出本人的量子计算程序。本文只是通过一个 bell_pair 示例程序登程进行解说整个开发过程和开发方法,心愿能给开发者带来肯定的启发。后续还会从其余的维度来展现启科 QuTrunk 及相干的编程实战领导和技巧。
作者:
Keith Yan(丘秉宜)中国首位亚马逊云科技 Community Hero。
Bertran Shao(邵伟),启科量子开发者关系负责人,国内首个开源量子计算社区发起者
黄文,启科量子 DEVOPS 工程师
Marz Kuo(郭梦杰),启科量子资深研发工程师,量子计算开源框架保护人
浏览原文:https://dev.amazoncloud.cn/co…