QuTrunk是启客量子自主研发的一款免费、开源、跨平台的量子计算编程框架,包括量子编程API、量子命令翻译、量子计算Backend接口等,提供多种量子计算体验,提供本地量子计算Python计算后端,提供OMP多线程、MPI多节点并行、GPU加速等计算模式。使用QuTrunk开发量子计算程序,可以使用本地PC搭建开发环境,也可以使用亚马逊云上的资源作为开发环境。本文将向用户介绍如何利用亚马逊云上的资源,使用QuTrunk+Runtime+QuSaaS+亚马逊云技术进行量子程序编程。下面简单介绍一下Runtime工具。1、Runtime介绍用户使用奇科量子计算相关软件进行开发。首先,他们需要提取和准备量子编程环境。能否快速搭建编程环境,是吸引开发者前来开发的首要考虑因素。因此,环境部署非常重要。为简化开发环境的部署,降低开发者的入门门槛,奇客推出免费开源的工具Runtime,提供运行环境。通过Runtime可以快速实现Qike量子开发相关软件的部署,如QuTrunk量子编程框架、QuSprout量子仿真后端等。此外,还支持部署第三方量子算法、GPU、随机数卡等环境。支持集成算法公共库,一键安装所需算法组件;支持软硬件结合,提供硬件底层库驱动。Runtime的整体结构如下:2.亚马逊云技术开发环境准备使用亚马逊云技术资源进行QuTrunk程序开发的总体流程如下:2.1亚马逊云技术开发环境准备1.登录亚马逊云科技管理控制台点击右上角的Region下拉菜单,可以切换到要创建资源的Region。本例使用亚太新加坡站点的资源。2、创建EC2访问密钥对,点击Service->Computing->EC2,打开EC2主页面。首先创建一个密钥对供以后登录EC2,点击左侧导航栏中的网络和安全->密钥对->创建密钥对。创建完成后会自动下载秘钥,并保存秘钥文件以备后用。3.创建实例我们在亚马逊云技术上创建了两个测试实例,一个是运行时工具部署,一个是QuTrunk量子程序开发环境。在EC2dashboard,点击右侧导航栏的Instances,然后点击Instances,打开实例创建页面,选择启动一个新的实例。打开创建实例界面,确定实例名称,选择Ubuntu20.04镜像,新建安全组添加本机访问的网段,flavor选择t2.medium,选择启用公网IP。分别创建Runtime主机和QuTrunk主机。2.2运行时安装1.使用秘钥文件登录运行时安装主机,选择运行时主机,右键选择链接,选择ssh客户端复制访问命令:ssh-i"qutrunk-demo.pem“ubuntu@ec2-18-141-236-126.ap-southeast-1.compute.amazonaws.com2。从Runtime官网下载链接下载安装包,然后解压,进入解压目录执行INSTALL.sh安装。安装完成后查看runtime安装结果#下载安装包wget-chttp://nexus.queco.cn/repository/qudoor-raw/runtime/0.0.1/runtime_v0.0.1_1223_amd64.tar.gz#解压安装包tarzxvfruntime_release_v0.0.1_amd64.tar.gzcdruntime_release_v0.0.1_amd64#RunInstallationscript/bin/bashINSTALL.sh#安装完成后查看Runtime运行状态,rtctlstatus显示状态为healthy,这意味着安装成功。2.3使用Runtime自动部署QuTrunk部署安装QuTrunk有一些前提条件。在不同的操作系统下配置和安装这些前提条件很麻烦。运行时自动化工具可以解决这些问题,并且可以将QuTrunk部署所依赖的相关软件一起部署。比如python3环境,python3-pip等,方便用户更快搭建dev环境。具体自动化部署如下:1.环境信息配置首先,在运行时配置文件/opt/runtime/conf/hosts.hostname.ini中填写需要用QuTrunk部署的主机信息。用vim编辑这个文件,修改目标运行环境安装主机的ip、访问端口、密码,以及执行机的nexus访问地址。node1为最终运行时主机修改为QuTrunk主机的主机名,可直接填写为AmazonEC2的主机名,也可自定义为其他名称。ansible_ssh_host为需要安装QuTrunk的主机IP,ansible_ssh_pass为登录账号密码,Registry_hostname为Runtime主机。配置文件类似如下:2.列出可执行安装软件rtctllist3,选择Qurunk安装的playbook,进行自动安装。命令如下:rtctlrun--playbook02-qutrunk4,QuTrunk安装验证登录安装QuTrunk的亚马逊云技术主机,安装QuTrunk后进行检查,如下:2.4QuSaaS注册申请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后台调用AmazonBraket资源,需要使用此AK/SK认证授权。3、demo程序开发demo程序使用经典的bell_pair算法,程序命名为qutrunk-qusaas-demo.py。首先导入qutrunk程序开发中用到的模块。演示程序使用QuSaaS后端。代码如下:fromqutrunk.backendsimportBackendQuSaasfromqutrunk.circuitimportQCircuitfromqutrunk.circuit.gatesimportCNOT,H,Measure然后设置QuSaaS接入AK和SK。ak="ApikeygeneratedbycreatinganapplicationonQuSaaS"sk="ApiSecretgeneratedbycreatinganapplicationonQuSaaS"#useBackendQuSaasbe=BackendQuSaas(ak,sk)创建一个钟电路,执行门操作和测量,并打印状态向量circuit=QCircuit(be)qr=circuit.allocate(2)#applygateH*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())输出结果如下:$python3qutrunk-qusaas_demo.pyqregq[2]cregc[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.j0.+0.j0.+0.j0.70710678+0.j][{"0b00":52},{"0b11":48}]{"后端":"后端QuSaas","task_id":"dde06445761e43258589f041b745f428","status":"success","arguments":{"shots":100}}4.总结本文从安装Runtime到使用Runtime自动安装QuTrunk,以及在AmazonCloud上如何在科技环境下使用QuTrunk开发量子计算程序,使用QuSaaS后台从全过程向读者展示整个实战过程。Demo程序利用了资源的便利性在亚马逊云上,也充分展示了启客量子计算软件灵活的可扩展性,开发者不仅可以在本地环境轻松开发,还可以通过启客提供的自动化工具Runtime快速部署云端的开发环境,还可以使用多种计算后端,帮助开发者快速开发出自己的量子计算程序,本文只是一个bell_pair示例程序,讲解整个de开发过程和开发方法,希望能给开发者带来一些启发。稍后,我们将从其他维度展示奇客QuTrunk及相关编程的实用指导和技巧。作者:KeithYan(邱炳一)中国第一位亚马逊云技术社区英雄。启客量子开发者关系负责人BertranShao(邵伟),中国首个开源量子计算社区创始人黄文,启客量子DEVOPS工程师MarzKuo(郭梦洁),启客量子高级研发工程师,量子计算开源框架维护者阅读原文:https://dev.amazoncloud.cn/co...
