分布式量子计算系统和资源管理方法与流程

文档序号:32312263发布日期:2022-11-23 12:08阅读:135来源:国知局
分布式量子计算系统和资源管理方法与流程

1.本技术涉及量子计算研究领域,尤其涉及构建量子计算系统,本技术涉及构建一种分布式量子计算系统以及分布式量子资源管理方法。


背景技术:

2.1982年英国物理学家deutsch提出“量子图灵机”概念,“量子图灵机”可等效为量子电路模型。从此,“量子计算机”的研究便在学术界逐渐引起人们的关注。
3.1994年shor提出了量子并行算法,证明量子计算可以求解“大数因子分解”难题,从而攻破广泛使用的rsa公钥体系,量子计算机才引起广泛重视。shor并行算法是量子计算领域的里程碑工作。进入21世纪,量子计算研究得到了极大的扩展,也获得了明显的进步。
4.但是,当前量子计算都偏向于对各个量子基础门和量子复合门的实现、量子计算线路可视化,以及量子比特的提升和量子的耗时等方面。
5.如何更好地利用现有的一些技术,使之与量子计算做结合,从而设计出效率更高的量子计算系统,目前还没有进行深入的研究。


技术实现要素:

6.本发明实施例对分布式量子计算进行了深入研究,提供一种分布式量子计算系统,从而更好地通过该量子计算系统来管理系统资源,为量子请求需求提供并行的、多进程处理方法。
7.本发明实施例提供的分布式量子计算系统,包括主服务集群,所述主服务集群包括若干量子计算终端;所述主服务集群包括主服务模块,所述主服务模块提供与外部设备连接的端口,用于接收量子请求;每台量子计算终端设置有管理量子计算终端资源的从服务模块;还包括中间服务模块,所述中间服务模块和每一个从服务模块连接;所述中间服务模块用于发现每个从服务模块,对每个从服务模块进行注册并获取从服务模块所对应的量子计算终端信息,所述中间服务模块还用于与所述从服务模块维持连接并持续获取量子计算终端的运行信息;所述主服务模块通过查询所述中间服务模块,持续获取所述量子计算终端的资源信息;所述主服务模块还用于远程调用所述量子计算终端,使用所述量子计算终端的资源实现量子请求。
8.本技术提供的分布式量子计算系统,针对其主服务集群、量子计算终端各个部分的工作,以及整个分布式量子计算系统整体工作,分别提供了相应的分布式量子资源管理方法。
9.本技术针对分布式量子计算系统的主服务集群,提供的分布式量子资源管理方
法,包括以下步骤:s11.实现对服务集群内的量子计算终端的管理:通过中间服务模块获取注册到所述中间服务模块的所有量子计算终端的信息;s12.接收量子请求;s13.根据量子请求的量子比特计算所需要的算力资源;s14.根据量子计算终端的资源计算量子计算终端的算力资源;s15.根据所述量子请求所需要的算力资源和所述量子计算终端的算力资源,选取执行量子请求的量子计算终端;s16.配置一个被选取的量子计算终端作为主进程,其余被选取的量子计算终端作为次进程,通过所选取的量子计算终端执行量子请求。
10.本技术针对分布式量子计算系统的量子计算终端,提供的分布式量子资源管理方法,包括以下步骤:s21.在所述中间服务模块注册,并与所述中间服务模块保持心跳连接,持续将量子计算终端的信息发送至所述中间服务模块;s22.根据所述主服务模块的远程调用命令,当所述量子计算终端被配置为主进程时,启动主工作进程,复制mpirun进程,通过所述mpirun进程在被选取的所有量子计算终端中启动次工作进程;s23. 主工作进程启动远程调用,接收主服务模块发送的量子请求数据并分发给次工作进程,所述主工作进程和所有次工作进程通过mpi的方式交换数据并进行并行同步量子计算;s24.返回量子计算结果至主服务模块。
11.本技术针对整个分布式量子计算系统,提供的分布式量子资源管理方法,包括以下步骤:s31.中间服务管理模块发现从服务模块并注册所述从服务模块;s32.中间服务模块持续获取从服务模块所对应的量子计算终端的终端信息,并将所述量子计算终端的终端信息发送至主服务模块;s33. 主服务模块接收量子请求;s34.主服务模块根据量子请求的量子比特计算所需要的算力资源;s35.主服务模块根据量子计算终端的资源计算量子计算终端的算力资源;s36.主服务模块根据所述量子请求所需要的算力资源和所述量子计算终端的算力资源,选取执行量子请求的量子计算终端,配置一个被选取的量子计算终端作为主进程,其余被选取的量子计算终端作为次进程,通过所选取的量子计算终端执行量子请求;s37.从服务模块根据所述主服务模块的远程调用命令,当所述量子计算终端被配置为主进程时,启动主工作进程,复制mpirun进程,通过所述mpirun进程在被选取的所有量子计算终端中启动次工作进程;s38. 主工作进程启动远程调用,接收主服务模块发送的量子请求数据并分发给次工作进程,所述主工作进程和所有次工作进程通过mpi的方式交换数据并进行并行同步量子计算;s39.主工作进程返回量子计算结果至主服务模块。
12.本发明实施例提供的分布式量子计算系统,以及分布式量子资源管理方法,利用传统分布式技术结合多进程框架,把各种量子计算融合做成一个量子系统,提供资源管理和控制,资源的服务发现和注册,自动适配资源大小,资源隔离等,同时利用多线程技术(openmp)让整个量子系统效率高、耗时短、并发能力强、资源扩展方便、提高量子比特数等优点,给各种量子开发爱好者、企业和研究机构做量子计算,满足其更多执行更多量子请求的需求。
13.本技术提供的进一步改进的分布式量子计算系统,主服务模块用于计算所述量子请求所需要的资源,根据量子计算终端的资源算力,选取执行量子请求的量子计算终端,并配置一个被选取的量子计算终端作为主进程,其余被选取的量子计算终端作为次进程,通过所选取的量子计算终端执行量子请求。
14.所述量子计算终端还用于:当所述量子计算终端被配置为主进程时,启动主工作进程,复制mpirun进程,通过所述mpirun进程在被选取的所有量子计算终端中启动次工作进程,所述主工作进程启动远程调用,接收所述量子请求数据并分发给次工作进程,所述主工作进程和所有次工作进程通过mpi的方式交换数据并进行并行同步量子计算。
15.所述量子计算终端的主工作进程和次工作进程均根据当前量子计算终端的cpu或gpu资源,利用openmp计算,开启多个线程同时进行量子计算。
16.所述主服务模块用于根据所有量子计算终端的资源,对量子计算终端进行分类,将cpu归类为c类,将gpu归类为g类,然后根据量子计算终端的cpu或gpu和内存配置,将所述量子计算终端分成g类高配组、g类低配组或者c类高配组、c类低配组;所述主服务模块还用于根据量子请求中量子比特的大小,计算所需要的算力资源,并根据所需要的算力资源,选择g类高配组、g类低配组或者c类高配组、c类低配组。
17.本发明实施例提供的分布式量子资源管理方法进一步改进方案中,所述步骤s11还包括根据所有量子计算终端的资源,对量子计算终端进行分类,将cpu归类为c类,将gpu归类为g类,然后根据量子计算终端的cpu或gpu和内存配置,将所述量子计算终端分成g类高配组、g类低配组或者c类高配组、c类低配组;所述步骤s15具体为计算所需要的算力资源,并根据所需要的算力资源,选择g类高配组、g类低配组或者c类高配组、c类低配组。
18.所述步骤s23具体包括:主工作进程和次工作进程根据当前计算终端的cpu或gpu资源,利用openmp计算,开启多个线程同时进行量子计算。
19.基于相同的发明构思,本发明实施例还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序在运行时可执行上述的分布式量子资源管理方法。
附图说明
20.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1为本技术实施例提供的一种分布式量子计算系统结构示意图;图2为本技术实施例提供的分布式量子计算系统中各部分相互作用示意图;
图3为本技术实施例提供的分布式量子计算系统中工作原理示意图;图4为本技术实施例提供的分布式量子资源管理方法流程示意图;图5为本技术实施例提供的分布式量子资源管理方法示意图;图6为本技术实施例提供的分布式量子资源管理方法中量子计算终端多进程工作示意图;图7为本技术实施例提供的分布式量子资源管理方法中量子计算终端中多线程示意图。
具体实施方式
22.为使本技术的目的、技术方案和优点更加清楚,以下将参照本技术实施例中的附图,通过实施方式清楚、完整地描述本技术的技术方案,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
23.在本发明的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
24.本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
25.本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
26.首先,对本技术具体实施可能用到的一些专业名词及其英文缩写做介绍如下,以便能更清楚地说明本技术的技术方案。
27.实施例1如图1、图2、图3所示,本发明实施例提供一种分布式量子计算系统,包括主服务集群,定义为master集群,master集群包括主服务模块,定义为master服务。master集群包括多个服务器,多个服务器可以集中一起进行同一种服务或者运算,从而获得更高的计算速度。master服务布置在master集群的若干台主机上,可分别定义为master1、master2
……
,所有master服务一起构成了master服务集,每个master服务之间通过keepalived保持集群的负载均衡、健康检查及高可用性。本技术实施例提供的master集群,主要用于代理量子请求。
28.还包括了中间服务模块,本技术实施例中中间管理模块采用etcd。etcd部署在多台主机上,所有etcd构成etcd集群。master集群从etcd集群中获取slave的信息,连接到所有slave。
29.还包括多个量子计算终端,所述量子计算终端为能提供量子计算的终端设备,可以是电脑或者超级计算机,或者其他能提供量子计算的设备,在此不一一列举。量子计算终端被定义为slave,量子计算终端上部署有从服务模块,定义为slave服务,用于作为当前量子计算终端的资源管理器。每个量子计算终端包括了cpu(central processing unit,中央处理器)和/或者gpu(graphics processing unit, 图形处理器, 又称显示核心、视觉处理器、显示芯片)。每个slave可以运行多个进程作为工作进程,以并行方式处理量子请求。量
子计算终端运行后通过slave服务获取当前机器的cpu和/或gpu资源,以及ip等信息,向etcd集群登记,在etcd集群中保存量子计算终端的信息。量子计算终端与etcd集群维持心跳,其退出时向etcd集群删除本机信息。
30.本技术实施例提供的分布式量子计算系统通过以下工作实现了量子资源管理。
31.1、服务注册和服务发现利用etcd作为服务发现和注册。etcd集群连接到slave,并可以主动发现每个slave,之后,每个slave均会向etcd集群注册,并把本量子计算终端的信息保存到etcd集群中。同时slave和etcd维持心跳,master集群监听etcd的slave变化,获取所有slave的信息,同时master会通过rpc(remote procedure call,即远程过程调用)连接所有slave,以调用slave的计算资源。
32.多进程(mpi)并行量子计算原理:量子请求需求方通过负载均衡(load balance,就是分摊到多个操作单元上进行执行,例如web服务器、ftp服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务)把量子请求转发给某一个master服务,master服务会计算每个量子请求所需要的资源,以及现在拥有的所有slave的资源算力,决定使用cpu还是gpu,使用多少内存,需要多少台机器,选取哪些机器执行量子请求,然后从选择的机器中选择一个机器作为主进程,其它机器作为次进程,主进程启动主工作进程(即主work进程)。主work进程上的slave会fork(复刻,是unix或类unix中的分叉函数,fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程序的两个副本)一个mpirun进程,通过mpirun进程在所选的其他机器上都启动一个次工作进程(即次work进程),主work进程启动rpc,接收slave请求,接收数据分发给次工作进程,次work进程通过mpi的方式和主work进程或者其它次work进程交换数据,同时进行并行同步量子计算。
33.多线程(openmp)并行量子计算原理:每个work进程会根据当前机器的cpu数,利用openmp计算,开启多个线程,同时进行量子计算。
34.本技术实施例提供的分布式量子计算系统,利用传统分布式技术结合多进程、多线程框架,通过多种技术的融合,构成一个稳定、并发、高效、长期可用的分布式量子计算系统,提供资源管理和控制,资源的服务发现和注册,自动适配资源大小,资源隔离等,同时利用多线程技术(openmp)让整个量子系统效率高、耗时短、并发能力强、资源扩展方便、提高量子比特数等优点,给各种量子开发爱好者、企业和研究机构做量子计算,满足其更多执行更多量子请求的需求。
35.实施例2本发明实施例提供一种分布式量子资源管理方法,如图4所示,包括以下步骤:s31.中间服务管理模块发现从服务模块并注册所述从服务模块;s32.中间服务模块持续获取从服务模块所对应的量子计算终端的终端信息,并将所述量子计算终端的终端信息发送至主服务模块;s33. 主服务模块接收量子请求;s34.主服务模块根据量子请求的量子比特计算所需要的算力资源;
s35.主服务模块根据量子计算终端的资源计算量子计算终端的算力资源;s36.主服务模块根据所述量子请求所需要的算力资源和所述量子计算终端的算力资源,选取执行量子请求的量子计算终端,配置一个被选取的量子计算终端作为主进程,其余被选取的量子计算终端作为次进程,通过所选取的量子计算终端执行量子请求;s37.从服务模块根据所述主服务模块的远程调用命令,当所述量子计算终端被配置为主进程时,启动主工作进程,复制mpirun进程,通过所述mpirun进程在被选取的所有量子计算终端中启动次工作进程;s38. 主工作进程启动远程调用,接收主服务模块发送的量子请求数据并分发给次工作进程,所述主工作进程和所有次工作进程通过mpi的方式交换数据并进行并行同步量子计算;s39.主工作进程返回量子计算结果至主服务模块。
36.本技术提供一种分布式量子资源管理方法,用于实现量子请求。因为量子计算和量子比特(后面以qubit代表)的数量有很大关系,n个qubit会有2的n次方的组合,即需要2的n次方的数量去保存这个组合,而每个组合的概率是个复数,复数有实部和虚部,这样我们需要2的n次方再乘以2的数量保存,如果以double(8个byte)保存一个数量的数据,那么我们需要8*2*(2《《n)byte保存我们的计算结果。这样量子计算将需要非常多的资源才能实现。而如果如果有m台机器,通过分布式量子资源管理,每台机器需要的内存是8*2*(2《《n)/mbyte;这样可以大大减小单台量子计算终端所需要的资源。
37.本技术提供的具体实施例中,master服务先会对所有机器资源做分类,cpu计算能力归为一类(c类),gpu计算能力归为一类(g类),再进行分组,一些配置高(主要是内存),算力强的分为一组(c2组或者g2组),低配分为一组(c1组或者g1组);master服务接收请求,根据量子比特大小,先计算所需要资源(计算内存),再决定是使用哪个资源组,比如小于20量子比特的选择c1组或者g1组,单进程,多线程运行,大于20量子比特的选择c2组或者g2组里面所有机器资源,选好组后,选择其中一个机器的slave作为主,初始化多机器多进程环境(即主slave给每个机器创建work进程),作为主的机器的work进程启动rpc服务并接收master的计算数据,和其它机器的work进程一起做多机器多进程多线程并行计算运行。
38.下面,结合图5、图6、图7和具体的实施方案,详细介绍本技术提供的分布式量子资源分配方法。
39.如图5所示,master的对外接口接收开发者向master发起量子请求,开发者的量子请求中包括n个量子比特。master可在获得计算结果之后通过外接接口发送至开发者,或者在接收到结果请求指令之后将计算结果发送至开发者。
40.master在接收到量子请求之后,一般还需要做参数验证等工作。然后初始化量子环境,建立符合量子计算的量子模拟环境。然后master计算量子请求需要的算力资源。算力资源包括所需要的gpu或者cpu算力,以及内存算力等。
41.本技术提供的一种可选实施方式中,master预先根据所有量子计算终端的资源,对量子计算终端进行分类,将cpu归类为c类,将gpu归类为g类,然后根据量子计算终端的cpu或gpu和内存配置,将所述量子计算终端分成g类高配组、g类低配组或者c类高配组、c类低配组;
因此,master在计算出量子算力资源后,根据所需要的算力资源,决定选择gpu还是cpu,如果选择的是gpu,再决定选择g类高配组、还是g类低配组;如果选择的是cpu,再决定是选择c类高配组、还是c类低配组。
42.如图6所示,以16个量子比特的量子请求为例做具体说明本技术实施例提供的分布式量子资源管理方法中量子计算终端多进程工作原理。
43.mpi技术会把一个量子请求的n个比特的数据(即8*2*(2《《n)byte)根据有m每台机器,拆成m个进程同时计算,分开存储(即每台机器存储和计算8*2*(2《《n)/m的数据段),以达到多进程并行计算;master接收量子请求,经过上面资源选择后,会选出一个机器的slave作为主,该slave会通过mpirun去所选的所有机器上启动一个work进程,而本机上的work是为0进程(即图中的work0),会启动rpc服务,master通过rpc把量子请求发给0进程,0进程通过mpi技术和非0进程(即图6中的work1、work2、work3)之间会同步计算数据,并行计算,最后汇总计算结果给0进程,0进程返回结果给master。
44.图中,

表示slave通过fork创建mpirun进程,mpi进程给每台机器创建一个work进程,分别变化0~4,同时分配qubit;

表示slave向work0发送量子请求,work0同步给其他work,同步执行各自的qubit执行量子操作,保存各自的结果;

表示slave向work0发送获取执行量子操作的结果,work0同步给各个work,把结果汇总到work0,返回给slave。
45.如图7所示,为一台量子计算终端分配了16量子比特的多线程流程示意图。
46.openmp多线程计算主要是针对一段数据拆成n个段,用n个线程分开计算各自的段,以达到并行计算的目的;如图中,共有16个量子比特,将其拆分成4份,用4个线程分开计算。
47.在n个量子比特的量子计算里面,如果该机器有m个cpu,开m个线程,会把量子数据(即8*2*(2《《n)byte)拆成m段,每个线程计算各自对应的段的数据,互不干扰,最后读取那整块数据即可。
48.图中,

表示分4个openmp计算,直接向其传每个段的地址;

表示针对各种的qubit计算;

表示回填结果。
49.实施例3基于相同的发明构思,本技术实施例提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序在运行时可执行上述实施例2提供的分布式量子资源分配方法。本实施例中没有说明,其与实施例2中相同的详细技术可参与实施例2,在此不予赘述。
50.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random accessmemory,ram)等。
51.以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
52.对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种
相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1