CN110020727A - 一种基于mpi多进程的单量子逻辑门实现方法 - Google Patents
一种基于mpi多进程的单量子逻辑门实现方法 Download PDFInfo
- Publication number
- CN110020727A CN110020727A CN201910281491.4A CN201910281491A CN110020727A CN 110020727 A CN110020727 A CN 110020727A CN 201910281491 A CN201910281491 A CN 201910281491A CN 110020727 A CN110020727 A CN 110020727A
- Authority
- CN
- China
- Prior art keywords
- quantum
- bit
- state
- logic gates
- quantum state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Optical Modulation, Optical Deflection, Nonlinear Optics, Optical Demodulation, Optical Logic Elements (AREA)
- Optical Communication System (AREA)
Abstract
本发明属于量子计算领域,具体公开了一种基于MPI多进程的单量子逻辑门实现方法,包括:配置N个量子比特,各所述量子比特的编号为比特位n;其中:N为正整数,0≤n≤N‑1;确定量子态和各所述量子态的下标值,所述量子态共有2N个,所述下标值为所述量子态对应的十进制值;初始化所述量子态;配置2M个基于MPI通信的进程,并将所有所述量子态按照所述下标值的大小依次均分存储至各所述进程;其中:M为整数,且M≥1,N≥M+1;根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算。本发明能够提高基于单量子逻辑门的量子计算的计算能力与计算效率。
Description
技术领域
本发明属于量子计算领域,特别是一种基于MPI多进程的单量子逻辑门实现方法。
背景技术
量子计算是通过量子逻辑门作用在量子比特上实现量子比特逻辑状态改变实现的,量子比特的逻辑状态可能为|0>态、|1>态、|0>态和|1>态的叠加态,这种叠加性使量子计算的计算量随着量子比特的增加是指数增长的。
单量子逻辑门是一个2*2的矩阵,一个单量子逻辑门对量子线路中的一个量子比特操作只会改变这个量子比特对应的态的振幅,目前单量子逻辑作用在量子比特上的量子计算实现通常是基于单进程进行的,随着量子比特数量的增加,基于单量子逻辑门的量子计算的计算能力与计算效率大幅下降。
发明内容
本发明的目的是提供一种基于MPI多进程的单量子逻辑门实现方法,以解决现有技术中的不足,它能够提高基于单量子逻辑门的量子计算的计算能力与计算效率。
本发明采用的技术方案如下:
一种基于MPI多进程的单量子逻辑门实现方法,其中,包括:配置N个量子比特,各所述量子比特的编号为比特位n;其中:N为正整数,0≤n≤N-1;确定量子态和各所述量子态的下标值,所述量子态共有2N个,所述下标值为所述量子态对应的十进制值;初始化所述量子态;配置2M个基于MPI通信的进程,并将所有所述量子态按照所述下标值的大小依次均分存储至各所述进程;其中:M为整数,且M≥1,N≥M+1;根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算。
如上所述的基于MPI多进程的单量子逻辑门实现方法,其中,优选的是,所述根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算,具体包括:根据所述单量子逻辑门待作用的量子比特的比特位和所述下标值确定待计算量子态,所述待计算量子态成对出现;根据每对所述待计算量子态在进程内分布情况确定进程的运行方式;按照所述运行方式运行所述进程实现单量子逻辑门。
如上所述的基于MPI多进程的单量子逻辑门实现方法,其中,优选的是,所述根据单量子逻辑门待作用的量子比特的比特位和所述下标值确定待计算量子态,具体包括:根据所述单量子逻辑门待作用的量子比特的比特位确定操作偏移量;根据所述操作偏移量和所述下标值确定待计算量子态;其中:任一对所述待计算量子态的所述下标值之差的绝对值均等于所述操作偏移量。
如上所述的基于MPI多进程的单量子逻辑门实现方法,其中,优选的是所述根据所述单量子逻辑门待作用的量子比特的比特位确定操作偏移量,具体包括:确定所述单量子逻辑门待作用的量子比特的比特位为目标比特位qn;根据所述目标比特位qn确定操作偏移量Q,其中:Q=2qn。
如上所述的基于MPI多进程的单量子逻辑门实现方法,其中,优选的是,所述根据每对所述待计算量子态在进程内分布情况确定进程的运行方式,具体包括:当每对所述待计算量子态分布在相同所述进程内时,所述进程内部独立运算;当每对所述待计算量子态分布在不同所述进程内时,对应于每对所述待计算量子态的各不同所述进程为相关联进程,所述相关联进程之间先基于MPI通信进行数据传输,然后在进程内部独立运算。
如上所述的基于MPI多进程的单量子逻辑门实现方法,其中,优选的是,所述当每对所述待计算量子态分布在不同所述进程内时,对应于每对所述待计算量子态的各不同所述进程为相关联进程,所述相关联进程先基于MPI通信进行数据传输,具体包括:当每对所述待计算量子态分布在不同所述进程内时,根据每对所述待计算量子态确定对应于每对所述待计算量子态的相关联进程;通过MPI通信实现对应于每对所述待计算量子态对应的各所述相关联进程的数据相互传输,使得任一所述进程获得与该所述进程相关的其它所有所述进程内的量子态数据。
如上所述的基于MPI多进程的单量子逻辑门实现方法,其中,优选的是,所述根据每对所述待计算量子态确定对应于每对所述待计算量子态的相关联进程,具体包括:确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号。
与现有技术相比,本发明配置N个量子比特和2M个基于MPI通信的进程,根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算,该过程中,通过基于MPI通信的进程实现了量子态的分开存储,而量子逻辑门作用的量子比特的逻辑状态可能为|0>态、|1>态、|0>态和|1>态的叠加态,具体的,量子态可以表示为ψ=a|0>+b|1>,其中,a,b为表示量子态振幅的复数,因此使得结合量子态和单量子逻辑门对应的矩阵运算实现单量子逻辑门时需要将单量子逻辑门对应的矩阵和2N-1对量子态对应的初始化振幅分别进行运算实现量子态振幅的更新,通过基于MPI通信的进程实现了量子态的分开存储,可以方便以上运算的并行进行,随着量子比特数目的增大,只需增大基于MPI通信的进程数量便可有效提高基于单量子逻辑门的量子计算的计算能力与计算效率,一定程度上克服了单进程计算在量子比特数量的增加时存在的限制量子计算的计算能力与计算效率的缺陷和不足。
附图说明
图1是本发明实施例提供的基于MPI多进程的单量子逻辑门实现方法流程图。
具体实施方式
下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
实施例1:
如图1所示,本发明的实施例提供了一种基于MPI多进程的单量子逻辑门实现方法,包括:
步骤S1:配置N个量子比特,各所述量子比特的编号为比特位n;其中:N为正整数,0≤n≤N-1。
步骤S2:确定量子态和各所述量子态的下标值,所述量子态共有2N个,所述下标值为所述量子态对应的十进制值。
具体的,例如:对5个量子比特的32个量子态的下标值为0到31的整数。
步骤S3:初始化所述量子态。
具体的,初始化所述量子态是指初始化所有量子态,在本实施例中,把下标值为0的量子态初始化为1,其它量子态初始化为0,需要说明的是,初始化量子态是指初始化量子态的振幅,考虑到量子态的振幅为复数,在本实施例中,把下标值为0的量子态初始化为1是指下标值为0的量子态的振幅初始值初始化为1+0i,其它量子态初始化为0是指把指下标值为其它值的量子态的振幅初始值初始化为0+0i。
步骤S4:配置2M个基于MPI通信的进程,并将所有所述量子态按照所述下标值的大小依次均分存储至各所述进程;其中:M为整数,且M≥1,N≥M+1。
配置2M个基于MPI通信的进程,而量子态共有2N个,实现了所有量子态的均匀存储,以及每个进程内均分布有量子态。
步骤S5:根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算。
在步骤S1至步骤S5中,配置N个量子比特和2M个基于MPI通信的进程,根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算,该过程中,通过基于MPI通信的进程实现了量子态的分开存储,而量子逻辑门作用的量子比特的逻辑状态可能为|0>态、|1>态、|0>态和|1>态的叠加态,具体的,量子态可以表示为ψ=a|0>+b|1>,其中,a,b为表示量子态振幅的复数,因此使得结合量子态和单量子逻辑门对应的矩阵运算实现单量子逻辑门时需要将单量子逻辑门对应的矩阵和2N-1对量子态对应的初始化振幅分别进行运算实现量子态振幅的更新,通过基于MPI通信的进程实现了量子态的分开存储,可以方便以上运算的并行进行,随着量子比特数目的增大,只需增大基于MPI通信的进程数量便可有效提高基于单量子逻辑门的量子计算的计算能力与计算效率,一定程度上克服了单进程计算在量子比特数量的增加时存在的限制量子计算的计算能力与计算效率的缺陷和不足。
在具体实施的时候,步骤S5所述根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算,具体包括步骤S51至步骤S53:
步骤S51:根据所述单量子逻辑门待作用的量子比特的比特位和所述下标值确定待计算量子态,所述待计算量子态成对出现。
具体的,待计算量子态成对出现是由单量子逻辑门作用决定的,成对出现的待计算量子态的数量是由量子比特数量决定的,共有2N-1对。
在具体操作的时候,成对出现的待计算量子态的确定,需要根据所述单量子逻辑门待作用的量子比特的比特位进行,具体的,根据所述单量子逻辑门待作用的量子比特的比特位确定操作偏移量。将所述单量子逻辑门待作用的量子比特的比特位记为目标比特位qn,则操作偏移量Q=2qn。根据所述操作偏移量和所述下标值确定待计算量子态,即任一对所述待计算量子态的所述下标值之差的绝对值均等于所述操作偏移量。
步骤S52:根据每对所述待计算量子态在进程内分布情况确定进程的运行方式。
具体的,当每对所述待计算量子态分布在相同所述进程内时,所述进程内部独立运算;当每对所述待计算量子态分布在不同所述进程内时,对应于每对所述待计算量子态的各不同所述进程为相关联进程,所述相关联进程之间先基于MPI通信进行数据传输更新所述进程,然后在进程内部独立运算。在具体操作的时候,当每对所述待计算量子态分布在不同所述进程内时,根据每对所述待计算量子态寻找对应于每对所述待计算量子态的相关联进程;通过MPI通信实现对应于每对所述待计算量子态的各所述相关联进程的数据相互传输,以使得任一所述进程获得与该所述进程相关的其它所有所述进程内的量子态数据。即当任一对所述待计算量子态包括的两个待计算量子态分布在同一进程内,则进行单进程内部独立运算;当任一对所述待计算量子态分布在两对应进程内,则两对应所述进程先进行MPI通信传输数据再单进程内部独立运算。需要说明的是,单进程内部独立运算具体包括所述单量子逻辑门对应的矩阵与一对所述待计算量子态的矩阵乘法运算实现量子态振幅的更新。
下面结合程序语言说明矩阵乘法运算实现量子态振幅的更新的过程。具体:
单量子逻辑门对应的矩阵为
对5量子比特,单量子逻辑门作用在q0上时,其中一对待计算量子态为00000(0)和00001(1),分别记为state[0000]和state[0001],定义复数a和b,则Complex a=ComplexState[m];Complex b=Complex State[m+offset],然后进行矩阵运算实现量子态振幅更新为State[m]=U00*a+U01*b;State[m+offset]=U10*a+U11*b;其中:offset为一对待计算量子态之间操作偏移量,在00000(0)和00001(1)中,offset为1.
步骤S53:按照所述运行方式运行所述进程实现单量子逻辑门。
通过实施例1,本实施例提供了一种根据配置的量子比特数和所具有的量子态配置基于MPI的多进程,采用基于MPI的多进程实现单量子逻辑门实现的运算,避免了单进程在实现单量子逻辑门时随着量子比特数的增加存在的计算内存受限、计算效率低缺陷和不足。
实施例2:
为了充分说明本发明,本实施例以单量子逻辑门H作用在5(即N等于5)量子比特的实现为例,进行详细介绍,具体如下:
5个量子比特分别为q0、q1、q2、q3、q4,其中:下标为比特为n,可以看到0≤n≤4。5个量子比特对应的量子态共用32个,分别为00000(0)、00001(1)、00010(2)、00011(3)、00100(4)、00101(5)、00110(6)、00111(7)、01000(8)、01001(9)、01010(10)、01011(11)、01100(12)、01101(13)、01110(14)、01111(15)、10000(16)、10001(17)、10010(18)、10011(19)、10100(20)、10101(21)、10110(22)、10111(23)、11000(24)、11001(25)、11010(26)、11011(27)、11100(28)、11101(29)、11110(30)、11111(31)。其中()内为该量子态对应的十进制值,在本实施例中,也称为量子态的下标值。另外需要说明的是,量子态的表示中,量子位从左到有排布低位和高位,即量子态表示符号q4q3q2q1q0的排布规则。
接下来,初始化32个量子态,是指把下标值为0的量子态00000的振幅初始化为1,其它量子态均初始化为0,考虑到量子态的复数表示,在本实施例中,量子态初始化为1的数学表示为1+0i,量子态初始化为0的数学表示为0+0i。
然后配置2M个基于MPI通信的进程,当量子比特数为5时,可以配置2个基于MPI通信的进程、4个基于MPI通信的进程、8个基于MPI通信的进程、16个基于MPI通信的进程、32个基于MPI通信的进程。当配置32个基于MPI通信的进程时,每个进程中存储一个量子态,在进行任何量子计算时,均需要进行基于MPI的通信,所以本实施例中,取M≤N-1,以保证每个进程中均存储至少2个量子态。当配置2个基于MPI通信的进程时,每个进程内存储16个量子态,该16对量子态中存在成对出现的量子态的最大对数为8,即该进程内存在可能按照单进程处理思路连续处理8次的操作,该操作是否会影响处理速度,需要本领域技术人员自行判断,本实施例第一种情况为以配置16(24,即M为4)个基于MPI通信的进程为基础进行后续介绍。第二种情况为以配置8(23,即M为3)个基于MPI通信的进程为基础进行后续介绍.
其中,第一种情况为以配置16(24,即M为4)个基于MPI通信的进程为基础进行后续介绍时16个基于MPI通信的进程存储量子态的情况如表1所示:
表1量子态在16进程中的存储分布
下面将依次以单量子逻辑门作用在q0(比特位qn=0)、q1(比特位qn=1)、q2(比特位qn=0)、q2(比特位qn=3)、q4(比特位qn=4)为例进行介绍单量子逻辑门的实现。
在本实施例,单量子逻辑门一H门为例,H门对应的矩阵为即
(1)、当单量子逻辑门H作用在q0(比特位qn=0)时,操作偏移量Q=2qn=20=1,此时下标值之差为1的量子态共有16对,且16对量子态如表1所示,分布在16个进程中,即每一对量子态分布在一个进程中,此时进行单进程内部独立运算即可,即编号0到编号15的进程内分别进行独立运算即可。
对编号为O的进程结合单量子逻辑门H门的矩阵进行运算的过程如下此时,0号进程内存在一对量子态,具体为00000(0)和00001(1),此时。编号为O的进程进行的运算为:
(2)、当单量子逻辑门H作用在q1(比特位qn=1)时,操作偏移量Q=2q1=21=2,此时下标值之差为2的量子态共有16对,分别为00000(0)和00010(2)、00001(1)和00011(3)、00100(4)和00110(6)、00101(5)和00111(7)、01000(8)和01010(10)、01001(9)和01011(11)、01100(12)和01110(14)、01101(13)和01111(15)、10000(16)和10010(18)、10001(17)和10011(19)、10100(20)和10110(22)、10101(21)和10111(23)、11000(24)和11010(26)、11001(25)和11011(27)、11100(28)和11110(30)、11101(29)和11111(31)。结合表1量子态在16进程中的存储分布可知,每一对量子态分布在不同的两个进程中,两个进程的编号的差(大编号减去小编号)为1(1=21=2q1/2),可以理解为操作偏移量除以每个进程内的量子态数目,该两个进程记为对应该对量子态的一对相应的进程,也称为对应该对量子态的相关联进程,每一对量子态都有两个对应的相关联进程。在具体操作的时候,确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号,即可获得两个相关联进程。此时欲实现单量子逻辑门对应的矩阵和一对量子态的计算,需要一对相应的进程之间通过MPI通信进行数据传输至同一进程内,然后在该进程内进行独立计算。运算过程同上,在此不做过多介绍。
(3)、当单量子逻辑门H作用在q2(比特位qn=2)时,操作偏移量Q=2q2=22=4,此时下标值之差为4的量子态共有16对,分别为00000(0)和00100(4)、00001(1)和00101(5)、00010(2)和00110(6)、00011(3)和00111(7)、01000(8)和01100(12)、01001(9)和01101(13)、01010(10)和01110(14)、01011(11)和01111(15)、10000(16)和10100(20)、10001(17)和10101(21)、10010(18)和10110(22)、10011(19)和10111(23)、11000(24)和11100(28)、11001(25)和11101(29)、11010(26)和11110(30)、11011(27)和11111(31)。结合表1量子态在16进程中的存储分布可知,每一对量子态分布在两个不同进程中,两个进程的编号的差(大编号减去小编号)为2(2=21=2q2/2),可以理解为操作偏移量除以每个进程内的量子态数目,该两个进程记为对应该对量子态的一对相应的进程,也称为对应该对量子态的相关联进程,每一对量子态都有两个对应的相关联进程。在具体操作的时候,确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号,即可获得两个相关联进程。此时欲实现单量子逻辑门对应的矩阵和一对量子态的计算,需要一对相应的进程之间通过MPI通信进行数据传输至同一进程内,然后在该进程内进行独立计算。运算过程同上,在此不做过多介绍。
(4)、当单量子逻辑门H作用在q3(比特位qn=3)时,操作偏移量Q=2q3=23=8,此时下标值之差为8的量子态共有16对,分别为00000(0)和01000(8)、00001(1)和01001(9)、100010(2)和01010(10)、00011(3)和01011(11)、00100(4)和01100(12)、00101(5)和01101(13)、00110(6)和01110(14)、00111(7)和01111(15)、0000(16)和11000(24)、10001(17)和11001(25)、10010(18)和11010(26)、10011(19)和11011(27)、10100(20)和11100(28)、10101(21)和11101(29)、10110(22)和11110(30)、10111(23)和11111(31)。结合表1量子态在16进程中的存储分布可知,每一对量子态分布在两个进程中,两个进程的编号的差(大编号减去小编号)为4(4=22=2q3/2),可以理解为操作偏移量除以每个进程内的量子态数目,该两个进程记为对应该对量子态的一对相应的进程,也称为对应该对量子态的相关联进程,每一对量子态都有两个对应的相关联进程。在具体操作的时候,确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号,即可获得两个相关联进程。此时欲实现单量子逻辑门对应的矩阵和一对量子态的计算,需要一对相应的进程之间通过MPI通信进行数据传输至同一进程内,然后在该进程内进行独立计算。运算过程同上,在此不做过多介绍。
(5)、当单量子逻辑门H作用在q4(比特位qn=4)时,操作偏移量Q=2q4=24=16,此时下标值之差为16的量子态共有16对,分别为00000(0)和10000(16)、00001(1)和10001(17)、00010(2)和10010(18)、00011(3)和10011(19)、00100(4)和10100(20)、00101(5)和10101(21)、00110(6)和10110(22)、00111(7)和10111(23)、01000(8)和11000(24)、01001(9)和11001(25)、01010(10)和11010(26)、01011(11)和11011(27)、01100(12)和11100(28)、01101(13)和11101(29)、和01110(14)和11110(30)、01111(15)和11111(31)。结合表1量子态在16进程中的存储分布可知,每一对量子态分布在两个进程中,两个进程的编号的差(大编号减去小编号)为8(8=23=2q4/2),可以理解为操作偏移量除以每个进程内的量子态数目,该两个进程记为对应该对量子态的一对相应的进程,也称为对应该对量子态的相关联进程,每一对量子态都有两个对应的相关联进程。在具体操作的时候,确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号,即可获得两个相关联进程。此时欲实现单量子逻辑门对应的矩阵和一对量子态的计算,需要一对相应的进程之间通过MPI通信进行数据传输至同一进程内,然后在该进程内进行独立计算。运算过程同上,在此不做过多介绍。
本实施例第二种情况为以配置8(23,即M为3)个基于MPI通信的进程为基础进行后续介绍。其中,8个基于MPI通信的进程存储量子态的情况如表2所示:
表2量子态在8进程中的存储分布
下面将依次以单量子逻辑门作用在q0(比特位qn=0)、q1(比特位qn=1)、q2(比特位qn=0)、q3(比特位qn=3)、q4(比特位qn=4)为例进行介绍单量子逻辑门的实现。
在本实施例,单量子逻辑门一H门为例,H门对应的矩阵为即
(1)、当单量子逻辑门H作用在q0(比特位qn=0)时,操作偏移量Q=2qn=20=1,此时下标值之差为1的量子态共有16对,且16对量子态如表2所示,分布在8个进程中,每个进程中包含两对量子态,此时进行单进程内部独立运算即可,即编号0到编号7的进程内分别进行独立运算即可。运算过程同上,在此不做过多介绍。
(2)、当单量子逻辑门H作用在q1(比特位qn=1)时,操作偏移量Q=2q1=21=2,此时下标值之差为2的量子态共有16对,分别为00000(0)和00010(2)、00001(1)和00011(3)、00100(4)和00110(6)、00101(5)和00111(7)、01000(8)和01010(10)、01001(9)和01011(11)、01100(12)和01110(14)、01101(13)和01111(15)、10000(16)和10010(18)、10001(17)和10011(19)、10100(20)和10110(22)、10101(21)和10111(23)、11000(24)和11010(26)、11001(25)和11011(27)、11100(28)和11110(30)、11101(29)和11111(31)。结合表2量子态在8进程中的存储分布可知,每个进程中包含两对量子态,此时进行单进程内部独立运算即可,即编号0到编号7的进程内分别进行独立运算即可。
(3)、当单量子逻辑门H作用在q2(比特位qn=2)时,操作偏移量Q=2q2=22=4,此时下标值之差为4的量子态共有16对,分别为00000(0)和00100(4)、00001(1)和00101(5)、00010(2)和00110(6)、00011(3)和00111(7)、01000(8)和01100(12)、01001(9)和01101(13)、01010(10)和01110(14)、01011(11)和01111(15)、10000(16)和10100(20)、10001(17)和10101(21)、10010(18)和10110(22)、10011(19)和10111(23)、11000(24)和11100(28)、11001(25)和11101(29)、11010(26)和11110(30)、11011(27)和11111(31)。结合表2量子态在8进程中的存储分布可知,每一对量子态分布在两个进程中,两个进程的编号的差(大编号小小编号)为1(2=21=2q2/4),可以理解为操作偏移量除以每个进程内的量子态数目,该两个进程记为对应该对量子态的一对相应的进程,也称为对应该对量子态的相关联进程,每一对量子态都有两个对应的相关联进程。在具体操作的时候,确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号,即可获得两个相关联进程。此时欲实现单量子逻辑门对应的矩阵和一对量子态的计算,需要一对相应的进程之间通过MPI通信进行数据传输至同一进程内,然后在该进程内进行独立计算。需要说明的,一对相应的进程之间通过MPI通信进行数据传输时,传输的是一个进程内的全部数据,此时,接收进程内存在两对量子态,在运算时,也需要基于单量子逻辑门对应的矩阵和每一对量子态的分别进行计算,运算过程同上,在此不做过多介绍。
(4)、当单量子逻辑门H作用在q3(比特位qn=3)时,操作偏移量Q=2q3=23=8,此时下标值之差的量子态共有16对,分别为00000(0)和01000(8)、00001(1)和01001(9)、100010(2)和01010(10)、00011(3)和01011(11)、00100(4)和01100(12)、00101(5)和01101(13)、00110(6)和01110(14)、00111(7)和01111(15)、0000(16)和11000(24)、10001(17)和11001(25)、10010(18)和11010(26)、10011(19)和11011(27)、10100(20)和11100(28)、10101(21)和11101(29)、10110(22)和11110(30)、10111(23)和11111(31)。结合表2量子态在8进程中的存储分布可知,每一对量子态分布在两个进程中,两个进程的编号的差(大编号减去小编号)为2(2=23=2q3/4),可以理解为操作偏移量除以每个进程内的量子态数目,该两个进程记为对应该对量子态的一对相应的进程,也称为对应该对量子态的相关联进程,每一对量子态都有两个对应的相关联进程。在具体操作的时候,确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号,即可获得两个相关联进程。此时欲实现单量子逻辑门对应的矩阵和一对量子态的计算,需要一对相应的进程之间通过MPI通信进行数据传输至同一进程内,然后在该进程内进行独立计算。需要说明的,一对相应的进程之间通过MPI通信进行数据传输时,传输的是一个进程内的全部数据,此时,接收进程内存在两对量子态,在运算时,也需要基于单量子逻辑门对应的矩阵和每一对量子态的分别进行计算,运算过程同上,在此不做过多介绍。
(5)、当单量子逻辑门H作用在q4(比特位qn=4)时,操作偏移量Q=2q4=24=16,此时下标值之差为16的量子态共有16对,分别为00000(0)和10000(16)、00001(1)和10001(17)、00010(2)和10010(18)、00011(3)和10011(19)、00100(4)和10100(20)、00101(5)和10101(21)、00110(6)和10110(22)、00111(7)和10111(23)、01000(8)和11000(24)、01001(9)和11001(25)、01010(10)和11010(26)、01011(11)和11011(27)、01100(12)和11100(28)、01101(13)和11101(29)、和01110(14)和11110(30)、01111(15)和11111(31)。结合表2量子态在8进程中的存储分布可知,每一对量子态分布在两个进程中,两个进程的编号的差(大编号减去小编号)为4(4=24=2q4/4),可以理解为操作偏移量除以每个进程内的量子态数目,该两个进程记为对应该对量子态的一对相应的进程,也称为对应该对量子态的相关联进程,每一对量子态都有两个对应的相关联进程。在具体操作的时候,确定一对所述待计算量子态所对应的两个下标值;获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;根据所述进程编号和两个所述下标值之差确定另一进程编号,即可获得两个相关联进程。此时欲实现单量子逻辑门对应的矩阵和一对量子态的计算,需要一对相应的进程之间通过MPI通信进行数据传输至同一进程内,然后在该进程内进行独立计算。运算过程同上,在此不做过多介绍。
以上依据图式所示的实施例详细说明了本发明的构造、特征及作用效果,以上所述仅为本发明的较佳实施例,但本发明不以图面所示限定实施范围,凡是依照本发明的构想所作的改变,或修改为等同变化的等效实施例,仍未超出说明书与图示所涵盖的精神时,均应在本发明的保护范围内。
Claims (7)
1.一种基于MPI多进程的单量子逻辑门实现方法,其特征在于,包括:
配置N个量子比特,各所述量子比特的编号为比特位n;其中:N为正整数,0≤n≤N-1;
确定量子态和各所述量子态的下标值,所述量子态共有2N个,所述下标值为所述量子态对应的十进制值;
初始化所述量子态;
配置2M个基于MPI通信的进程,并将所有所述量子态按照所述下标值的大小依次均分存储至各所述进程;其中:M为整数,且M≥1,N≥M+1;
根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算。
2.根据权利要求1所述的基于MPI多进程的单量子逻辑门实现方法,其特征在于:所述根据所述单量子逻辑门待作用的量子比特的比特位、及基于MPI的多个所述进程进行实现所述单量子逻辑门的运算,具体包括:
根据所述单量子逻辑门待作用的量子比特的比特位和所述下标值确定待计算量子态,所述待计算量子态成对出现;
根据每对所述待计算量子态在进程内分布情况确定进程的运行方式;
按照所述运行方式运行所述进程实现单量子逻辑门。
3.根据权利要求2所述的基于MPI多进程的单量子逻辑门实现方法,其特征在于:所述根据单量子逻辑门待作用的量子比特的比特位和所述下标值确定待计算量子态,具体包括:
根据所述单量子逻辑门待作用的量子比特的比特位确定操作偏移量;
根据所述操作偏移量和所述下标值确定待计算量子态;其中:任一对所述待计算量子态的所述下标值之差的绝对值均等于所述操作偏移量。
4.根据权利要求3所述的基于MPI多进程的单量子逻辑门实现方法,所述根据所述单量子逻辑门待作用的量子比特的比特位确定操作偏移量,具体包括:
确定所述单量子逻辑门待作用的量子比特的比特位为目标比特位qn;
根据所述目标比特位qn确定操作偏移量Q,其中:Q=2qn。
5.根据权利要求2所述的基于MPI多进程的单量子逻辑门实现方法,其特征在于:所述根据每对所述待计算量子态在进程内分布情况确定进程的运行方式,具体包括:
当每对所述待计算量子态分布在相同所述进程内时,所述进程内部独立运算;
当每对所述待计算量子态分布在不同所述进程内时,对应于每对所述待计算量子态的各不同所述进程为相关联进程,所述相关联进程之间先基于MPI通信进行数据传输,然后在进程内部独立运算。
6.根据权利要求5所述的基于MPI多进程的单量子逻辑门实现方法,其特征在于:所述当每对所述待计算量子态分布在不同所述进程内时,对应于每对所述待计算量子态的各不同所述进程为相关联进程,所述相关联进程先基于MPI通信进行数据传输,具体包括:
当每对所述待计算量子态分布在不同所述进程内时,根据每对所述待计算量子态确定对应于每对所述待计算量子态的相关联进程;
通过MPI通信实现对应于每对所述待计算量子态对应的各所述相关联进程的数据相互传输,使得任一所述进程获得与该所述进程相关的其它所有所述进程内的量子态数据。
7.根据权利要求6所述的基于MPI多进程的单量子逻辑门实现方法,其特征在于:所述根据每对所述待计算量子态确定对应于每对所述待计算量子态的相关联进程,具体包括:
确定一对所述待计算量子态所对应的两个下标值;
获得两个所述下标值中的一个所述下标值对应的量子态存储分布的进程编号;
根据所述进程编号和两个所述下标值之差确定另一进程编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281491.4A CN110020727B (zh) | 2019-04-09 | 2019-04-09 | 一种基于mpi多进程的单量子逻辑门实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281491.4A CN110020727B (zh) | 2019-04-09 | 2019-04-09 | 一种基于mpi多进程的单量子逻辑门实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110020727A true CN110020727A (zh) | 2019-07-16 |
CN110020727B CN110020727B (zh) | 2021-06-08 |
Family
ID=67190813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910281491.4A Active CN110020727B (zh) | 2019-04-09 | 2019-04-09 | 一种基于mpi多进程的单量子逻辑门实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020727B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705711A (zh) * | 2019-09-17 | 2020-01-17 | 合肥本源量子计算科技有限责任公司 | 一种量子态信息降维编码方法及装置 |
CN111461336A (zh) * | 2020-04-03 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 基于mpi多进程的含噪声双量子逻辑门实现方法及装置 |
CN111461335A (zh) * | 2020-04-03 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1568456A (zh) * | 2001-09-14 | 2005-01-19 | 独立行政法人科学技术振兴机构 | 半导体运算装置 |
JP3656152B2 (ja) * | 1998-08-19 | 2005-06-08 | 独立行政法人理化学研究所 | 量子コンピュータにおける量子ビット素子構造および量子相関ゲート素子構造 |
US20090096004A1 (en) * | 2007-10-05 | 2009-04-16 | Kenji Kawabata | Semiconductor storage device and manufacturing method thereof |
CN107393587A (zh) * | 2017-08-11 | 2017-11-24 | 中国科学技术大学 | 可多自由度并行复用的固态量子存储装置 |
CN109409524A (zh) * | 2018-09-26 | 2019-03-01 | 合肥本源量子计算科技有限责任公司 | 一种量子程序运行方法及装置、存储介质及电子装置 |
-
2019
- 2019-04-09 CN CN201910281491.4A patent/CN110020727B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3656152B2 (ja) * | 1998-08-19 | 2005-06-08 | 独立行政法人理化学研究所 | 量子コンピュータにおける量子ビット素子構造および量子相関ゲート素子構造 |
CN1568456A (zh) * | 2001-09-14 | 2005-01-19 | 独立行政法人科学技术振兴机构 | 半导体运算装置 |
US20090096004A1 (en) * | 2007-10-05 | 2009-04-16 | Kenji Kawabata | Semiconductor storage device and manufacturing method thereof |
CN107393587A (zh) * | 2017-08-11 | 2017-11-24 | 中国科学技术大学 | 可多自由度并行复用的固态量子存储装置 |
CN109409524A (zh) * | 2018-09-26 | 2019-03-01 | 合肥本源量子计算科技有限责任公司 | 一种量子程序运行方法及装置、存储介质及电子装置 |
Non-Patent Citations (2)
Title |
---|
A. N. VETLUGIN ETAL.: "The Efficiency of Parallel Quantum Memory for Light in a Cavity Configuration", 《OPTICS AND SPECTROSCOP》 * |
苏丹等: "八粒子量子态对彩色图像的存储方案", 《云南师范大学学报(自然科学版)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705711A (zh) * | 2019-09-17 | 2020-01-17 | 合肥本源量子计算科技有限责任公司 | 一种量子态信息降维编码方法及装置 |
CN110705711B (zh) * | 2019-09-17 | 2023-08-11 | 本源量子计算科技(合肥)股份有限公司 | 用于量子态信息降维编码的量子逻辑门的确定方法及装置 |
CN111461336A (zh) * | 2020-04-03 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 基于mpi多进程的含噪声双量子逻辑门实现方法及装置 |
CN111461335A (zh) * | 2020-04-03 | 2020-07-28 | 合肥本源量子计算科技有限责任公司 | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 |
CN111461336B (zh) * | 2020-04-03 | 2023-11-03 | 本源量子计算科技(合肥)股份有限公司 | 基于mpi多进程的含噪声双量子逻辑门实现方法及装置 |
CN111461335B (zh) * | 2020-04-03 | 2023-12-15 | 本源量子计算科技(合肥)股份有限公司 | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110020727B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020727A (zh) | 一种基于mpi多进程的单量子逻辑门实现方法 | |
Li et al. | A network-centric hardware/algorithm co-design to accelerate distributed training of deep neural networks | |
Tsianos et al. | Push-sum distributed dual averaging for convex optimization | |
CN106325810B (zh) | 微处理器 | |
CN107305485A (zh) | 一种用于执行多个浮点数相加的装置及方法 | |
CN109685198A (zh) | 用于量化神经网络的参数的方法和装置 | |
TWI755043B (zh) | 硬體中s型函數及包括其之可重組態資料處理器 | |
CN108416436A (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
US11481618B2 (en) | Optimization apparatus and method for controlling neural network | |
CN101097511A (zh) | 使用折叠的模归约 | |
KR102472282B1 (ko) | 고급 상호 연결 통신기술을 이용한 ai 훈련 가속화 방법 및 시스템 | |
CN111461335B (zh) | 基于mpi多进程的含噪声单量子逻辑门实现方法及装置 | |
TWI802332B (zh) | 可重組態處理器的資源分配 | |
CN114897175B (zh) | 量子测量设备的噪声消除方法及装置、电子设备和介质 | |
CN114462614B (zh) | 量子噪声强度确定方法及装置、电子设备和介质 | |
CN109190413B (zh) | 一种基于fpga和md5加密的串行通信系统 | |
CN105608055B (zh) | 一种基于位串架构的蝶形运算单元、fft处理器及方法 | |
CN110222815A (zh) | 适用于深度学习硬件加速器的可配置激活函数装置及方法 | |
WO2016205155A1 (en) | Mixed-radix carry-lookahead adder architecture | |
Hu et al. | A practical design of hash functions for IPv6 using multi-objective genetic programming | |
CN104951279B (zh) | 一种基于NEON引擎的向量化Montgomery模乘器的设计方法 | |
KR20210126398A (ko) | 시스톨릭 어레이를 갖는 신경망 연산 장치 | |
US10042610B2 (en) | Trailing or leading zero counter having parallel and combinational logic | |
CN116484959A (zh) | 量子电路处理方法、装置、设备以及存储介质 | |
WO2020008643A1 (ja) | データ処理装置、データ処理回路およびデータ処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |