启科量子线路模拟器QuSprout与AWS HPC集成,赋能量子计算

138 阅读5分钟

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

KY1, Bertran Shao2 , Adam Sun

1. Amazon HERO;2.开发者生态负责人;3.Solutions Architect

2022.11.17,启科量子正式开源其内部团队研发的量子线路模拟器:QuSprout软件。结合早前其开源的启科量子编程框架QuTrunk,开发者可以基于启科的量子计算平台实现真正的量子编程。因为QuSprout的性能水平直接影响量子编程计算的效率,而QuSprout本身又严重依赖硬件平台。众所周知AWS是全球著名云计算服务提供商,提供了丰富的硬件平台,故如何将QuSprout与AWS高性能服务实现有机的融合,将变得非常有意义。今天我们会将QuSprout部署在AWS高性能计算(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、关于AWS  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(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz,具体实例的详细参数如下表所示:

3、部署QuSprout

首先在AWS Console中申请创建m5.8xlarge和p3.2xlarge实例,待实例初始化成功后,可通过SSH远程连接到对应的EC2实例。

然后从Github拉取最新的QuSproutgithub.com/qudoor/qusp… 根据README文档,进行编译和安装即可,整个过程通过脚本执行,简单方便。

最后安装QuTrunk,因为QuSprout是后端的量子线路模拟器,需要与前端量子编程框架QuTrunk联合使用。同样从Github拉取最新的QuTrunkgithub.com/qudoor/qutr…

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

4、测试QuSprout性能

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

4. 1 grover搜索算法源码:

4.2计算结果:

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

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

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

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

5、一键式部署

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

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

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

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

作者介绍:

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

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

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