具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种代码转换方法流程示意图,本实施例可适用于通过基础波形代码对各量子计算设备的各波形输出通道的操控,从而使得各量子设备的各波形输出通道输出波形的情况,该方法可以由代码转换装置来执行,该代码转换装置可通过软件和/或硬件方式实现,可集成于诸如计算机或者服务器等的电子设备中。
如图1所示,本实施例的方法包括:
S110、获取待转换量子计算过程描述方案的实现类,基于待转换量子计算过程描述方案的实现类创建待转换量子计算过程描述方案对象。
其中,待转换量子计算过程描述方案的实现类可以是IBM的开源量子信息软件工具包QISKit中所包括的量子计算过程方案的实现类。可选的,量子计算过程方案的实现类可以是OpenPulse方案的实现类,其中,OpenPulse方案可以是基于脉冲波形的实现方案。示例性的,待转换量子计算过程描述方案的实现类可以为qiskit.Schedule类。其中,待转换量子计算过程描述方案对象可以是待转换量子计算过程描述方案的实现类的实例。示例性的,待转换量子计算过程描述方案对象可以是qiskit.Schedule对象。
具体的,从开源量子信息软件工具包QISKit中获取基于脉冲波形的量子计算过程描述方案的实现类,并将获取到的基于脉冲波形的量子计算过程描述方案的实现类作为待转换量子计算过程描述方案的实现类。在获取到待转换量子计算过程描述方案的实现类后,可以创建待转换量子计算过程描述方案的实现类的实例,进而可以得到待转换量子计算过程描述方案对象。
S120、对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历,其中,每条指令数据分别为每个波形输出起始时刻下的各波形输出通道的操作波形指令。
其中,待转换量子计算过程描述方案对象的指令属性可以是qiskit.Schedule.instructions属性。每条指令数据可以是每个波形输出起始时刻下的各波形输出通道的操作波形指令。其中,波形输出起始时刻可以理解为波形输出的起始时刻。波形输出通道可以理解量子计算设备中为输出波形的通道。操作波形指令可以理解为对波形进行操控的指令。
具体的,在得到待转换量子计算过程描述方案对象后,可以对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历。进而可以确定每条指令数据,也就是说,可以确定在每个波形输出起始时刻下的各波形输出通道的操作波形指令。
可选的,在对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历之前,可以通过下述方式获取待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据:
在预先定义的设备类中调用预先定义的指令数据获取方法,通过指令数据获取方法获取待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据。
其中,预先定义的设备类可以是基于Python3定义的类,如,class Device。预先定义的指令数据获取方法可以理解为用于获取待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据,如,指令数据获取方法可以是def add_instruction(self,inst),其中,inst可以是qiskit.Schedule.instructions属性中的元素。
具体的,将指令属性作为实际参数传递给预先定义的设备类中预先定义的指令数据获取方法的入口参数。在参数传递完成后,可以调用指令数据获取方法读取指令属性中的每一条指令数据。在读取完成后,可以获取到待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据。
可选地,通过下述方式对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历:
将待转换量子计算过程描述方案对象的指令属性传递给预先定义的指令数据遍历方法的入口参数;当指令数据遍历方法的入口参数接收指令属性,则通过执行指令数据遍历方法对指令属性所包含的多条指令数据进行遍历。
其中,预先定义的指令数据遍历方法可以预先定义的设备类中用于对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历。
具体的,将待转换量子计算过程描述方案对象的指令属性传递给预先定义的指令数据遍历方法的入口参数。在参数传递完成后,当指令数据遍历方法的入口参数接收指令属性,则可以执行指令数据遍历方法,进而对指令属性所包含的多条指令数据进行遍历。
S130、针对每条指令数据,基于预先配置的量子计算设备与波形输出通道的对应关系对指令数据进行数据拆分处理,确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令。
其中,量子计算设备可以包括采集反馈系统(Acquisition and FeedbackSystem,AFS)和任意波形发生器(Arbitrary Waveform Generator,AWG)。预先配置的量子计算设备与波形输出通道的对应关系可以是一对一或一对多。如,AWG或AFS可以包括4个波形输出通道。
具体的,针对每条指令数据,可以对每一条指令数据进行数据拆分处理。在拆分处理后,可以得到各波形输出通道在各波形输出起始时刻下的操作波形指令。在各波形输出通道在各波形输出起始时刻下的操作波形指令后,可以基于预先配置的量子计算设备与波形输出通道的对应关系,可以确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令。
示例性的,预先配置的量子计算设备与波形输出通道的对应关系可以是:
{"n_devices": 5,"devices_map":
[{"type": "AFS", "mac": "FE-FE-FE-00-00-B0", "channels": [["m0"], ["m1"], ["a0"], ["a1"]]},. . . ,{"type": "AWG", "mac": "FE-FE-FE-00-00-A1", "channels": [["d4", "u4"], ["d5", "u5"], [], []]}]}
其中,量子计算设备AFS的波形输出通道为m0、m1、a0以及a1,量子计算设备AWG的波形输出通道为d4、u4、d5以及u5。
多条指令数据可以是:在时刻1时波形输出通道d4的波形操作指令为指令1、在时刻2时波形输出通道d4的波形操作指令为指令1、在时刻2时波形输出通道d5的波形操作指令为指令1、在时刻2时波形输出通道a0的波形操作指令为指令1。
那么,对上述多条指令数据进行数据拆分后,可以得到量子计算设备AWG的波形输出通道d4在时刻1时的波形操作指令为指令1、在时刻2时的波形操作指令为指令1,量子计算设备AWG的波形输出通道d5在时刻2时的波形操作指令为指令1,以及量子计算设备AFS的波形输出通道a0在时刻2时的波形操作指令为指令1。
S140、如果操作波形指令为执行指令,则将操作波形指令替换为与执行指令对应的基础波形代码,得到基础波形代码,基于基础波形代码操控各量子设备的各波形输出通道输出波形。
其中,执行指令可以是播放波形指令、改变相位指令以及改变频率指令。基础波形代码可以理解为输出波形的函数,如,基础波形代码可以是f'Sin({inst.pulse.samples[0].real * 1e3:.3f}, Amp=350, Len={w_len})'。
具体的,在确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令后,可以对操作波形指令进行判断,如果操作波形指令为执行指令,也就是说,操作波形指令为Play指令,则可以确定与play指令对应的基础波形代码,并将play指令替换为与play指令对应的基础波形代码。在替换完成后,可以得到基础波形代码。进而可以基于得到的基础波形代码对各量子设备的各波形输出通道进行操控,以使各波形输出通道输出波形。
可选的,通过下述方式实现如果操作波形指令为执行指令,则将操作波形指令替换为与执行指令对应的基础波形代码:
通过在操作波形指令处理方法中调用内置的类型判断方法,判断操作波形指令是否为执行指令,若是,则确定与操作波形指令对应的基础波形代码,并将操作波形指令替换为与操作波形指令对应的基础波形代码,基于基础波形代码操控各量子设备的各波形输出通道输出波形。
其中,操作波形指令处理方法可以是在预先定义的设备类中预先定义的方法,可以用于对操作波形的指令进行翻译处理。如,操作波形指令处理方法可以是:def _translate(self)。内置的类型判断方法可以是isinstance()方法,可以用于判断操作波形指令是否为执行指令,即,if isinstance(inst, Play)。
具体的,通过在预先定义操作波形指令处理方法中调用内置的类型判断方法对操作波形指令进行判断,进而确定操作波形指令是否为执行指令。如果操作波形指令是执行指令,则可以确定与执行指令对应的基础波形代码。在确定与执行指令对应的基础波形代码后,可以将执行指令替换与执行指令对应的基础波形代码。在替换完成后,可以基于基础波形代码对各量子设备的各波形输出通道进行操控,以使各波形输出通道输出波形。
在上述基础上,如果操作波形指令为空,则将操作波形指令设置为第一延时指令。
其中,第一延时指令的起始时间为当前输出波形的当前波形输出结束时刻,第一延时指令的结束时间为下一输出波形的波形输出起始时刻。
具体的,通过对操作波形指令进行判断后,如果操作波形指令为空,则可以将所述操作波形指令设置为第一延时指令。也就是说,如果从当前输出波形的当前波形输出结束时刻至下一输出波形的波形输出起始时刻的时长内的无操作波形指令,则可以将当前输出波形的当前波形输出结束时刻至下一输出波形的波形输出起始时刻的时长内的操作波形指令设置为第一延时指令。
进一步,可以通过下述方式实现如果操作波形指令为空则将操作波形指令设置为第一延时指令:
通过调用预先定义的操作波形指令处理方法,检测与波形输出起始时刻对应的操作波形指令是否为空,若为空,则在操作波形指令处理方法中调用数据追加方法,将操作波形指令设置为第一延时指令。
其中,数据追加方法可以是内置的append()方法,可以将操作波形指令设置为第一延时指令。
具体的,通过调用预先定义的操作波形指令处理方法,可以对与波形输出起始时刻对应的操作波形指令进行检测,进而判断与波形输出起始时刻对应的操作波形指令是否为空。如果与波形输出起始时刻对应的操作波形指令为空,则可以调用内置的数据追加方法,将该操作波形指令设置为第一延时指令。
可选的,在得到各量子计算设备的各波形输出通道的基础波形代码后,还可以将与各量子计算设备对应的基础波形代码存储至用于存储基础波形代码的波形代码存储字典。
其中,波形代码存储字典可以用于存储量子计算设备的基础波形代码。可选的,波形代码存储字典的形式可以是哈希表的形式。其中,可以设置不同基础波形代码的代码标识,并将设置的代码标识作为哈希表的键,将与代码标识对应的基础波形代码作为哈希表的值。
具体的,预先创建用于存储基础波形代码的波形代码存储字典。在得到各量子计算设备的各波形输出通道的基础波形代码后,可以确定与各量子计算设备对应的基础波形代码。在确定各量子计算设备对应的基础波形代码后,可以将各量子计算设备对应的基础波形代码存储至波形代码存储字典中。这样处理的好处在于降低基础波形代码的数量,避免硬件资源的浪费,可以达到节省硬件消耗的技术效果。
本发明实施例的技术方案,通过获取待转换量子计算过程描述方案的实现类,基于待转换量子计算过程描述方案的实现类创建待转换量子计算过程描述方案对象。对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历,其中,每条指令数据分别为每个波形输出起始时刻下的各波形输出通道的操作波形指令。针对每条指令数据,基于预先配置的量子计算设备与波形输出通道的对应关系对指令数据进行数据拆分处理,确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令。如果操作波形指令为执行指令,则将操作波形指令替换为与执行指令对应的基础波形代码,得到基础波形代码,基于基础波形代码操控各量子设备的各波形输出通道输出波形。本发明实施例的技术方案,解决了现有技术中无法基于脉冲波形的实现方案代码控制量子计算设备的技术问题。实现了基于现有的脉冲波形的实现方案代码生成基础波形代码,从而进一步基于基础波形代码操控各量子设备的各波形输出通道输出波形。
实施例二
图2是本发明实施例二提供的一种代码转换方法流程示意图,在前述实施例的基础上,可选地,所述基于所述基础波形代码操控各量子设备的各波形输出通道输出波形,包括:针对每个波形输出通道,根据所述波形输出通道的各波形输出起始时刻确定所述波形输出通道的通道占用时长;基于所述通道占用时长以及所述基础波形代码生成波形操控代码,基于所述波形操控代码操控所述波形输出通道输出波形。
可选地,所述方法还包括:针对单个量子计算设备,分别确定与每个波形输出通道对应的最晚波形输出起始时刻,并将各个最晚波形输出起始时刻中时间最晚的最晚波形输出起始时刻作为目标波形输出结束时刻;如果所述最晚波形输出起始时刻早于目标波形输出结束时刻,则将所述最晚波形输出起始时刻与所述目标波形输出结束时刻的时长内的操作波形指令设置为第二延时指令,以基于所述第二延时指令将所述最晚波形输出起始时刻延时至所述目标波形输出结束时刻。
其中,与上述实施例相同或者相应的技术术语在此不再赘述。
如图2所示,本实施例的方法具体可包括:
S210、获取待转换量子计算过程描述方案的实现类,基于待转换量子计算过程描述方案的实现类创建待转换量子计算过程描述方案对象。
S220、对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历,其中,每条指令数据分别为每个波形输出起始时刻下的各波形输出通道的操作波形指令。
S230、针对每条指令数据,基于预先配置的量子计算设备与波形输出通道的对应关系对指令数据进行数据拆分处理,确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令。
S240、如果操作波形指令为执行指令,则将操作波形指令替换为与执行指令对应的基础波形代码,得到基础波形代码。
S250、针对每个波形输出通道,根据波形输出通道的各波形输出起始时刻确定波形输出通道的通道占用时长。
其中,通道占用时长可以是基于波形输出通道的各波形输出起始时刻计算得到的时长。
具体的,针对每个波形输出通道,确定当前波形输出通道的各波形输出起始时刻。在确定当前波形输出通道的各波形输出起始时刻后,可以根据波形输出起始时刻确定波形输出通道的通道占用时长。
可选的,针对单个量子计算设备的每个波形输出通道,可以通过下述步骤确定波形输出通道的通道占用时长:
步骤一、针对单个量子计算设备的每个波形输出通道,将与当前波形输出通道对应的各波形输出起始时刻按时间先后顺序进行排布,得到当前波形输出通道的波形输出时刻序列。
其中,当前波形输出通道的波形输出时刻序列可以是将与当前波形输出通道对应的各波形输出起始时刻按时间先后顺序进行排布后得到的时刻排布序列。
具体的,针对单个量子计算设备的每个波形输出通道,可以确定与当前波形输出通道对应的各波形输出起始时刻,并将各波形输出起始时刻按时间先后顺序进行排布。将排布后的序列作为当前波形输出通道的波形输出时刻序列,即,可以得到当前波形输出通道的波形输出时刻序列。
步骤二、基于当前波形输出通道的波形输出时刻序列,确定波形输出时刻序列中的最早输出时刻和最晚输出时刻,基于波形输出时刻序列中的最早输出时刻和最晚输出时刻,确定当前波形输出通道的通道占用时长。
其中,最早输出时刻可以理解为波形输出时刻序列中最早的波形输出起始时刻。最晚输出时刻可以理解为波形输出时刻序列中最晚的波形输出起始时刻。
具体的,在得到当前波形输出通道的波形输出时刻序列后,可以确定波形输出时刻序列中的最早的波形输出起始时刻和最晚的波形输出起始时刻。在确定最早的波形输出起始时刻和最晚的波形输出起始时刻后,可以将最早的波形输出起始时刻和最晚的波形输出起始时刻之间的间隔时长作为当前波形输出通道的通道占用时长。
S260、基于通道占用时长以及基础波形代码生成波形操控代码,基于波形操控代码操控波形输出通道输出波形。
其中,波形操控代码可以通道占用时长以及基础波形代码生成的代码,可以用于操控波形输出通道输出波形。
具体的,在确定每个波形输出通道的通道占用时长以及基础波形代码后,可以基于每个波形输出通道的通道占用时长以及与相应的基础波形代码,生成波形操控代码。在生成波形操控代码后,可以通过波形操控代码操控波形输出通道输出波形。
可选的,针对单个量子计算设备,为了更加快速的对波形输出通道进行操控,可以通过下述步骤对每个波形输出通道进行处理:
步骤一、针对单个量子计算设备,分别确定与每个波形输出通道对应的最晚波形输出起始时刻,并将各个最晚波形输出起始时刻中时间最晚的最晚波形输出起始时刻作为目标波形输出结束时刻。
其中,目标波形输出结束时刻可以是与各波形输出通道对应的最晚波形输出起始时刻中时间最晚的最晚波形输出起始时刻。
具体的,针对单个量子计算设备,确定与当前量子计算设备对应的波形输出通道。在确定每个波形输出通道后,可以分别确定每个波形输出通道对应的最晚波形输出起始时刻。根据各个最晚波形输出起始时刻,可以确定各个最晚波形输出起始时刻中时间最晚的最晚波形输出起始时刻,并将各个最晚波形输出起始时刻中时间最晚的最晚波形输出起始时刻作为目标波形输出结束时刻。
步骤二、如果最晚波形输出起始时刻早于目标波形输出结束时刻,则将最晚波形输出起始时刻与目标波形输出结束时刻的时长内的操作波形指令设置为第二延时指令,以基于第二延时指令将最晚波形输出起始时刻延时至目标波形输出结束时刻。
其中,第二延时指令可以用于当最晚波形输出起始时刻早于目标波形输出结束时刻时,则将最晚波形输出起始时刻与目标波形输出结束时刻的时长内的操作波形指令设置为延时指令。
具体的,将各最晚波形输出起始时刻分别与目标波形输出结束时刻进行比较,如果最晚波形输出起始时刻早于目标波形输出结束时刻,则可以将最晚波形输出起始时刻与目标波形输出结束时刻的时长内的操作波形指令设置为第二延时指令。从而可以根据第二延时指令将最晚波形输出起始时刻延时至目标波形输出结束时刻,以使当前量子计算设备的每个波形输出通道的通道占用时长一致。
本实施例的技术方案,针对每个波形输出通道,根据所述波形输出通道的各波形输出起始时刻确定所述波形输出通道的通道占用时长;基于所述通道占用时长以及所述基础波形代码生成波形操控代码,基于所述波形操控代码操控所述输出通道输出波形,解决了现有技术中无法基于脉冲波形的实现方案代码控制量子计算设备的技术问题。实现了基于现有的脉冲波形的实现方案代码生成基础波形代码,从而进一步基于基础波形代码操控各量子设备的各波形输出通道输出波形。
实施例三
图3是本发明实施例三提供的一种代码转换装置结构示意图,本发明提供了一种代码转换装置,该装置包括:对象创建模块310、指令数据遍历模块320、数据拆分处理模块330以及波形代码得到模块340。
其中,对象创建模块310,用于获取待转换量子计算过程描述方案的实现类,基于所述待转换量子计算过程描述方案的实现类创建待转换量子计算过程描述方案对象;
指令数据遍历模块320,用于对所述待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历,其中,每条指令数据分别为每个波形输出起始时刻下的各波形输出通道的操作波形指令;
数据拆分处理模块330,用于针对每条所述指令数据,基于预先配置的量子计算设备与波形输出通道的对应关系对所述指令数据进行数据拆分处理,确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令;
波形代码得到模块340,用于如果操作波形指令为执行指令,则将所述操作波形指令替换为与所述执行指令对应的基础波形代码,得到基础波形代码,基于所述基础波形代码操控各量子设备的各波形输出通道输出波形。
本发明实施例的技术方案,通过对象创建模块,获取待转换量子计算过程描述方案的实现类,基于待转换量子计算过程描述方案的实现类创建待转换量子计算过程描述方案对象。通过指令数据遍历模块对待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历,其中,每条指令数据分别为每个波形输出起始时刻下的各波形输出通道的操作波形指令。通过数据拆分处理模块针对每条指令数据,基于预先配置的量子计算设备与波形输出通道的对应关系对指令数据进行数据拆分处理,确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令。通过波形代码得到模块,如果操作波形指令为执行指令,则将操作波形指令替换为与执行指令对应的基础波形代码,得到基础波形代码,基于基础波形代码操控各量子设备的各波形输出通道输出波形。本发明实施例的技术方案,解决了现有技术中无法基于脉冲波形的实现方案代码控制量子计算设备的技术问题。实现了基于现有的脉冲波形的实现方案代码生成基础波形代码,从而进一步基于基础波形代码操控各量子设备的各波形输出通道输出波形。
可选的,波形代码得到模块340,用于针对每个波形输出通道,根据所述波形输出通道的各波形输出起始时刻确定所述波形输出通道的通道占用时长;基于所述通道占用时长以及所述基础波形代码生成波形操控代码,基于所述波形操控代码操控所述波形输出通道输出波形。
可选的,波形代码得到模块340还包括:通道占用时长确定单元,用于针对单个量子计算设备的每个波形输出通道,将与当前波形输出通道对应的各波形输出起始时刻按时间先后顺序进行排布,得到当前波形输出通道的波形输出时刻序列;基于所述当前波形输出通道的波形输出时刻序列,确定所述波形输出时刻序列中的最早输出时刻和最晚输出时刻,基于所述波形输出时刻序列中的最早输出时刻和最晚输出时刻,确定当前波形输出通道的通道占用时长。
可选的,指令数据遍历模块320,用于将所述待转换量子计算过程描述方案对象的指令属性传递给预先定义的指令数据遍历方法的入口参数;当所述指令数据遍历方法的入口参数接收所述指令属性,则通过执行所述指令数据遍历方法,对所述指令属性所包含的多条指令数据进行遍历。
可选的,所述代码转换装置还包括:第一延时指令设置模块,用于如果操作波形指令为空,则将操作波形指令设置为第一延时指令,其中,所述第一延时指令的起始时间为当前输出波形的当前波形输出结束时刻,所述第一延时指令的结束时间为下一输出波形的波形输出起始时刻。
可选的,第一延时指令设置模块,用于通过调用预先定义的操作波形指令处理方法,检测与波形输出起始时刻对应的操作波形指令是否为空,若为空,则在所述操作波形指令处理方法中调用数据追加方法,将所述操作波形指令设置为第一延时指令。
可选的,波形代码得到模块340,用于通过在所述操作波形指令处理方法中调用内置的类型判断方法,判断操作波形指令是否为执行指令,若是,则确定与所述操作波形指令对应的基础波形代码,并将所述操作波形指令替换为与所述操作波形指令对应的基础波形代码。
可选的,所述代码转换装置还包括:第二延时指令设置模块,用于针对单个量子计算设备,分别确定与每个波形输出通道对应的最晚波形输出起始时刻,并将各个最晚波形输出起始时刻中时间最晚的最晚波形输出起始时刻作为目标波形输出结束时刻;如果所述最晚波形输出起始时刻早于目标波形输出结束时刻,则将所述最晚波形输出起始时刻与所述目标波形输出结束时刻的时长内的操作波形指令设置为第二延时指令,以基于所述第二延时指令将所述最晚波形输出起始时刻延时至所述目标波形输出结束时刻。
上述装置可执行本发明任意实施例所提供的代码转换方法,具备执行代码转换方法相应的功能模块和有益效果。
值得注意的是,上述代码转换装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
实施例四
图4是本发明实施例四提供的一种电子设备的结构示意图。图4示出了适于用来实现本发明任一实施方式的示例性电子设备12的框图。图4显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担配置信息的处理的电子设备。
如图4所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备12典型地包括多种计算机可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机装置可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品40,该程序产品40具有一组程序模块42,这些程序模块被配置以执行本发明各实施例的功能。程序产品40,可以存储在例如存储器28中,这样的程序模块42包括但不限于一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、鼠标、摄像头等和显示器)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网WideArea Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)装置、磁带驱动器以及数据备份存储装置等。
处理单元16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的代码转换方法,该方法包括:
获取待转换量子计算过程描述方案的实现类,基于所述待转换量子计算过程描述方案的实现类创建待转换量子计算过程描述方案对象;对所述待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历,其中,每条指令数据分别为每个波形输出起始时刻下的各波形输出通道的操作波形指令;针对每条所述指令数据,基于预先配置的量子计算设备与波形输出通道的对应关系对所述指令数据进行数据拆分处理,确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令;如果操作波形指令为执行指令,则将所述操作波形指令替换为与所述执行指令对应的基础波形代码,得到基础波形代码,基于所述基础波形代码操控各量子设备的各波形输出通道输出波形。
当然,本领域技术人员可以理解,处理器还可以实现本发明任一实施例所提供的代码转换方法的技术方案。
实施例五
本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序,特征在于,该程序被处理器执行时,例如本发明上述实施例所提供的代码转换方法,该方法包括:
获取待转换量子计算过程描述方案的实现类,基于所述待转换量子计算过程描述方案的实现类创建待转换量子计算过程描述方案对象;
对所述待转换量子计算过程描述方案对象的指令属性所包含的多条指令数据进行遍历,其中,每条指令数据分别为每个波形输出起始时刻下的各波形输出通道的操作波形指令;
针对每条所述指令数据,基于预先配置的量子计算设备与波形输出通道的对应关系对所述指令数据进行数据拆分处理,确定各量子计算设备的各波形输出通道在各波形输出起始时刻下的操作波形指令;
如果操作波形指令为执行指令,则将所述操作波形指令替换为与所述执行指令对应的基础波形代码,得到基础波形代码,基于所述基础波形代码操控各量子设备的各波形输出通道输出波形。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。