高效!启科量子线路模拟器 QuSprout 与 Amazon HPC 集成,赋能量子计算

news2024/11/28 8:47:36

KY1, Bertran Shao2, Adam Sun

Amazon HERO;2.开发者生态负责人;3.Solutions Architect2022.11.17,启科量子正式开源其内部团队研发的量子线路模拟器:QuSprout 软件。结合早前其开源的启科量子编程框架 QuTrunk,开发者可以基于启科的量子计算平台实现真正的量子编程。因为 QuSprout 的性能水平直接影响量子编程计算的效率,而 QuSprout 本身又严重依赖硬件平台。众所周知亚马逊云科技是全球著名云计算服务提供商,提供了丰富的硬件平台,故如何将 QuSprout 与亚马逊云科技高性能服务实现有机的融合,将变得非常有意义。今天我们会将 QuSprout 部署在亚马逊云科技高性能计算(HPC)平台上,并对比分析 QuSprout 在 CPU 以及 GPU 两种不同硬件平台的计算效率。

1、QuSprout 简介

QuSprout 是启科量子自主研发的一款免费、开源的量子计算模拟后端,用户在 QuTrunk 量子编程框架生成量子线路后,需要连接到 QuSprout 计算后端来进行模拟计算。

同时,QuSprout 支持多个量子线路的任务管理、MPI 多进程并行计算。目前支持 Kylin,Ubuntu,CentOS 操作系统,支持在 x86,arm64 体系上编译部署,(建议使用 KylinV10,Ubuntu22.04,CentOS7.9)

量子模拟方面,QuSprout 通过 RPC 与 QuTrunk 量子编程框架连接,主要负责量子线路的任务管理、

QuSprout 使用 C++ 作为宿主语言,目前已经实现40+个量子门,包括 H, CH, P, CP, R, CR, Rx, Ry, Rz等,为量子线路的计算提供了更高的性能和更强大的灵活性。

QuSprout 已经支持 CPU 和 GPU 两种类型的硬件平台,目前开源的版本为 CPU 版本,GPU 版本目前还在内测中,相信不久也会实现开源。

2、关于 Amazon HPC 平台

P3 实例:

Amazon EC2 P3 类型实例基于 NVIDIA Tesla V100 Tensor Core GPU,最多支持8 GPUs,可为用户提供高性能计算平台,支持基于CUDA的加速程序,通常用于 HPC 程序、机器学习等场景。

本文采用 p3.2xlarge 实例作为 QuSprout 底层 GPU 的硬件平台,它为单 GPU 显卡实例,显卡型号为 NVIDIA Tesla V100-SXM2,拥有640 Tensor Cores,5120 CUDA Cores,其双精度浮点(FP64)运算性能可达7TFLOPS,单精度(FP32)可达14TFLOPS,具体实例的详细参数如下表所示:

M5 实例:

M5 家族的实例属于计算、内存、带宽相对均衡的一种资源类型,可以用来作为 web 服务器,计算集群,游戏服务器等。拥有 Intel Xeon Platinum 8000 以及 AMD EPYC 7000 系列的 CPU 可供选择。

本文采用 m5.8xlarge 类型的实例作为 QuSprout 底层 CPU 的硬件平台,它的 CPU 类型为 Intel® Xeon® Platinum 8259CL CPU @ 2.50GHz,具体实例的详细参数如下表所示:

3、部署 QuSprout

首先在 Amazon Console 中申请创建 m5.8xlarge和p3.2xlarge 实例,待实例初始化成功后,可通过 SSH 远程连接到对应的 EC2 实例。然后从 Github 拉取最新的 QuSprout 代码, 根据 README 文档,进行编译和安装即可,整个过程通过脚本执行,简单方便。

最后安装 QuTrunk,因为 QuSprout 是后端的量子线路模拟器,需要与前端量子编程框架 QuTrunk 联合使用。同样从 Github 拉取最新的 QuTrunk 代码,根据 README 文档,通过脚本安装即可。

注:本文测试为了避免网络带宽对计算效率的影响,选择将 QuTrunk 与 QuSprout 部署在同一个 EC2 实例上。通过在 QuTrunk 中配置 QuSprout 服务程序的 IP 和端口,即可实现两者的通信。

4、测试 QuSprout 性能

QuTrunk 和 QuSprout 部署完成后,就可以进行量子编程的开发了。此处我们以 grover 搜索算法为例,记录 QuSprout 分别在 m5.8xlarge(CPU)以及p3.2xlarge(GPU)两个平台上的运行效率,通过模拟不同数量的量子比特,统计相应平台的计算时间和资源消耗信息。具体内容如下所示:

4.1 grover 搜索算法源码:

"""Grover's search algorithm."""  
  
import math  
import random  
  
from numpy import pi  
  
from qutrunk.circuit import QCircuit  
from qutrunk.circuit.gates import Measure, All  
from qutrunk.circuit.ops import PLUS, QAA  
  
  
def run_grover(qubits=10, backend=None):  
    # Quantum qubits  
    num_qubits = qubits  
  
    # Number of amplitudes  
 num_elems = 2**num_qubits  
  
    # Count of iteration  
    num_reps = math.ceil(pi / 4 * math.sqrt(num_elems))  
    print("num_qubits:", num_qubits, "num_elems:", num_elems, "num_reps:", num_reps)  
  
    # Choose target state randomly  
    sol_elem = random.randint(0, num_elems - 1)  
    print(f"target state: |{str(sol_elem)}>")  
  
    # Create quantum circuit with local python simulator  
    circuit = QCircuit(backend=backend, resource=True)  
  
    # Allocate quantum qubits  
    qureg = circuit.allocate(num_qubits)  
  
    # Set inital amplitudes to plus state  
    PLUS * qureg  
  
    # Apply quantum operator(gates)  
    QAA(num_reps, sol_elem) * qureg  
  
    # Measure for all qubits  
    All(Measure) * qureg  
  
    # Run circuit in local simulator  
    res = circuit.run()  
  
    # Get measure result and print as int  
 out = res.get_outcome()  
    print("measure result: " + str(int(out, base=2)))  
  
    # Print quantum circuit resource information  
    circuit.show_resource()  
  
    # Print quantum circuit execution information  
    print(res.excute_info())  
  
    return circuit  
  
  
if __name__ == "__main__":  
    # Run locally  
    circuit = run_grover()  

4.2 计算结果:

表1(CPU(Intel® Xeon® Platinum 8259CL CPU @ 2.50GHz)

表2(GPU(NVIDIA Tesla V100-SXM2):

根据表1和表2中的时间与量子比特数,绘制如下图:

从图表中可以看出,在量子比特模拟数量相同的情况下 GPU 相对于 CPU 的计算速度有6~8倍的提升。当然不同实例的价格也不尽相同,在实际开发过程中,开发者可以根据自身的计算任务特点选择合适的实例类型,从而实现最大化的资源利用。

5、一键式部署

AMI 是亚马逊云科技提供和维护的镜像,它包含 EC2 实例创建时需要的所有信息。在启动实例时,需指定 (AMI)。也可以用同一个 AMI 配置启动多个实例。

用户通常可以将生产或者开发环境在 Amazon EC2 实例中进行部署,然后可以创建 EBS-backed AMI,这样就将完整的环境制作成了镜像,后续再次需要相关环境的 EC2 实例时,就可以直接选择相应的 AMI 即可。

AMI 的管理也非常方便,可以将其用于启动新实例,也可以在同一 Amazon Region 中复制 AMI,也可以跨 Region 复制,不再需要某个 AMI 时,还可以将其注销。

后续可以将 QuSprout 以及其它相关工具制作成 AMI,并投入 Marketplace,这样量子开发者就可以基于亚马逊云科技更加方便快捷的部署启科量子的软件开发环境,最大程度简化量子编程环境的搭建流程,为开发者提供更友好开发体验,让量子编程变得不再遥不可及。

作者介绍:

Keith Yan(丘秉宜)中国首位亚马逊云科技 Community Hero。

Bertran Shao(邵伟),启科量子开发者关系负责人,国内首个开源量子计算社区发起者

Adam Sun(孙海洋),启科量子解决方案架构师,GPU量子线路模拟项目负责人编辑文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41919.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

能源与经济面板数据集(中国能源统计年鉴面板数据+区域经济、人口与二氧化碳排放量面板数据)

一、中国能源统计年鉴面板数据 1、数据来源:中国能源统计年鉴 2、时间跨度:1991-2020 3、区域范围:全国 4、指标说明: 部分数据如下: 能源平衡表: 部分指标如下: 国内生产总值增长速度&am…

HTML网页设计制作——响应式网页影视动漫资讯bootstrap网页(9页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

地图轨迹跟踪系统设计与实现(Android+Eclipse+APP)

目 录 1 在线地图轨迹APP概述 1 1.1 本论文的背景及意义 1 1.2 本论文的主要方法和研究进展 1 1.3 本论文的主要内容 1 1.4 本论文的结构安排 1 2 系统分析 3 2.1 研究目标 3 2.2 可行性分析 3 2.2.1 经济可行性 3 2.2.2 技术的可行性 3 2.3 需求分析 3 2.4 性能分析 4 3 系统开…

TPAMI 2022 | 自动搜索文本识别网络的高性能特征提取器

©PaperWeekly 原创 作者 | 陈卓群单位 | 清华大学论文标题:Searching a High Performance Feature Extractor for Text Recognition Network收录情况:TPAMI论文链接:https://ieeexplore.ieee.org/document/9887897代码链接:…

HTTPS(对称加密+非对称加密+证书)

目录 1. 加密和解密 HTTPS工作过程 2. 对称加密 3. 对称加密 4. 既然都有非对称加密了,那为啥还要有对称加密 5. 中间人攻击 6. 引入证书 HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在…

笔记本电脑恢复删除数据的5种方法

我们都知道笔记本电脑比台式电脑拥有方便携带的优势,但是不论是笔记本还是台式电脑,难免会出现数据丢失情况,如最近有位小伙伴,不小心将自己出差需要使用的工作资料误删了,那么问题来了,笔记本数据删除怎么…

Vuex的搭建与使用

Vuex 专门在Vue中实现集中式状态(数据)管理的插件 (Vue.use(Vuex)),对Vue应用中多个组件的共享状态进行集中式的管理(读、写),也是一种组件间通信的方式,且适用于任意组件间通信。 如果多个组…

git的使用规范及技巧总结

一、什么是Git? Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同&#x…

聚观早报 | 黑五电子产品销售额飙升;谷歌不满微软收购动视暴雪

今日要闻:黑五电子产品销售额飙升;谷歌不满微软收购动视暴雪;特斯拉海外充电站价格下降;欧盟对微软发起反垄断调查;小米13渲染图曝光黑五电子产品销售额飙升 据消息,Adobe数据和分析部门Adobe Analytics发布…

Navicat Premium 16 连接Oracle注意事项

起因 新同学使用的新版本的Mac电脑 但是装的W系统M芯片 发现 PLSQL Developer 并不兼容 导致无法连接到Oracle数据 就临时换成Navicat Premium 16进行连接 然后就出现了一系列问题 Oracle默认编码集 ZHS16GBK 该问题是Navicat Premium默认使用Navicat自带的instantclient_…

激光雷达发射的PCB布局

1、激光发射的电路如下图所示。 重点就是要考虑电容、GaN、激光器三部分的布局。 2>第一种布局方式 激光器、GaN、电容三者都在同一层上,放电的回路也都在顶层上,此时临近的第二层没有铺地。 用ANSYS仿真得到此时得回路电感为2nH左右。我们都以500M时得寄生电感来评估。…

面试官:介绍一下 Redis 三种集群模式

小码今天去面试。 面试官:给我介绍一下Redis集群, 小码:啊,平时开发用的都是单机Redis,没怎么用过集群了。 面试官:好的,出门右转不谢。 小码内心困惑:在小公司业务量也不大&…

操作系统

文章目录一,操作系统是什么二,操作系统的发展史1) 1945~1955年2) 1955~1965年:首个操作系统诞生3) 1964~1979年:多道程序系统诞生4) 1979~至今:网络操作系统和分布式操作系统快速发展三,操作系统的类别一&a…

静态HTML旅行主题网页设计与实现——联途旅游网服务平台网(39页)HTML+CSS+JavaScript

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

KafKa C++实战

1 集群 1. Kafka架构是由producer(消息生产者)、consumer(消息消费者)、borker(kafka集群的 server,负责处理消息读、写请求,存储消息,在kafka cluster这一层这里,其实里面是有很多个…

SpringBoot+Vue项目校园防疫管理系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

Apollo 应用与源码分析:Monitor监控-硬件监控-GPS

硬件架构图 可以看到左下角的“GNSS定位模块”其实是有IMU和GPS Antenna 组成的。 执行分析 代码 class GpsMonitor : public RecurrentRunner {public:GpsMonitor();void RunOnce(const double current_time) override; };void GpsMonitor::RunOnce(const double current_t…

为什么要把Linux机器加入到Windows AD/域控制器(Linux机器为什么要入域)?

文章目录1. 如何入域?2. 如何判断入域成功?3. 入域的效果(目的)是什么?4. 入域和SSSD之间是什么关系?1. 如何入域? sudo yum -y install oddjob oddjob-mkhomedir sssd samba-common-tools adcli \krb5-workstation o…

Java项目:jsp+servlet实现的新闻发布系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本项目分为前后台; 前台主要功能为: 首页、娱乐新闻、经济新闻、文化新闻、小道新闻、用户评价等; 后台主要…

HTML5学习笔记(五)

CSS3 多列布局 CSS3新增了一种布局方式——多列布局。使用多列布局,可以轻松实现类似报纸那样的布局。 多列布局的应用非常广泛,像各大电商网站、素材网站中常见的“瀑布流效果”。 column-count属性来定义多列布局的列数。 column-width属性来定义多列…