用于执行量子网络节点应用程序的操作系统

  QDEVICE包括一个物理量子设备,该设备可以初始化和存储量子位(Qubits)(Qubits)(Qubits) ,该设备通过物理地址单独识别 ,可以识别量子门,测量Qubits,测量Qubits并在其他节点上使用QDEVICES(entangle-and-and-measure-measure或entangle-measure或entangle-keep34) ,或其他endmiary Node或一个Intermed netred Netred Neverne。我们指出的是,两个末端节点QDevices的能力不是量子网络中直接邻居(但由其他网络节点分开)在它们之间生成纠缠的能力依赖于实现网络层协议作为网络stack34的一部分的架构 。Qubits因此是指对Qubits的任何可能实现,包括通过错误校正实现的逻辑Qubit 。QDEVICE将以下接口暴露于Qnodeos(补充信息第2.6节):可用的量子数和Qnodeos可能发送的支持的物理指令。物理说明包括量子初始化 ,单量和两量门,测量,纠缠创建以及“无”无所事事。每个指令都有相应的响应(包括纠缠成功 ,失败或测量结果),QDEVICE将其发送回Qnodeos 。   Qnodeos和Qdevice通过以固定的速率来回传递消息来交互(我们的NV实施中为100 kHz,在捕获离子实现中为50 kHz)。在每个刻度期间 ,同时:(1)Qnodeos向QDEVICE发送物理指令,(2)Qdevice可以发送响应(对于先前的指令)。接收指令时,QDEVICE执行适当的操作(例如 ,AWG中的特定脉冲序列) 。指令可能需要几个勾号完成 ,在完成后,Qdevice在第一个时钟滴答过程中返回响应(成功,失败 ,结果)。QDEVICE通过执行(一批)纠缠生成的尝试来处理纠缠指令38(由Qdevice与相邻节点的Qdevice同步)。   Qnodeos由两层组成:CNPU和QNPU(图2A;主文本和补充信息) 。QNPU上的流程由流程管理器管理,并由本地处理器执行。执行用户流程是指该过程的NetQASM59子例程(量子块),涉及在QNPU的本地处理器上运行经典指令(包括流量控制逻辑) ,将纠缠请求发送到网络堆栈并处理本地量子操作,并通过向QDriver发送指令(图2A)。执行网络过程意味着询问网络堆栈哪个请求(如果有)要处理并将适当的(纠缠生成)指令发送到QDevice 。   QNPU过程可以在以下状态中(有关状态图,请参见补充图5):空闲 ,准备,跑步和等待。将QNPU处理器分配给其时,QNPU进程正在运行。当网络时间表时间bin启动时 ,网络过程就会准备就绪;当它完成执行并等待下一次bin时,它变得等待着;永远不会闲置 。当至少有一个netqasm子例程待处理时,用户流程就可以准备好了 。否则是空闲的;当它从网络堆栈请求纠缠(使用NetQasm纠缠指令59)时 ,它将进入等待状态 ,并在所请求的纠缠量子(S)(已交付)时再次准备好。   QNPU调度程序负责监督QNPU上的所有进程(用户和网络),并选择将哪些准备过程分配给QNPU处理器。CNPU进程可以同时运行,其执行(订单)由CNPU调度程序处理 。QNPU调度程序独立运行 ,仅对QNPU流程作用。CNPU过程只能与其相应的QNPU过程进行通信。由于多个程序可以在Qnodeos上同时运行,因此QNPU可能具有许多用户流程,这些用户流程具有子例程 ,同时等待执行 。因此,这需要在QNPU上进行安排。   进程通过QMMU分配QMMU,该QMMU管理每个过程的虚拟量子地址空间 ,并将虚拟地址转换为QDEVICE中的物理地址。QMMU还可以将QMU的所有权转移到过程之间的所有权,例如,从网络过程(刚刚创建纠缠量子量)到请求此纠缠的用户流程 。   网络堆栈使用纠缠请求插座(执行后 ,用QNPU API通过QNPU API打开)来表示与其他节点上的程序的量子连接。纠缠管理单元维护所有纠缠请求插座,并确保将纠缠量子置旋转到正确的过程。   这项工作中使用的两节点网络包括参考文献中描述的节点“鲍勃 ”(服务器)和“ charlie ”(客户端)(由3 m分开) 。7,22,38。对于QDEVICE,我们复制了参考文献中使用的设置。38 ,主要由:ADWIN-PRO II(参考71)充当设置的主要编排;一系列负责量子控制的下属设备 ,包括激光脉冲发生器,光学读数电路和AWG(Zurich Instruments HDAWG62) 。基于NV中心的量子物理设备为每个节点计数一个量子 。这两个Qdevices共享一个通用的1 MHz时钟,用于高级通信 ,其AWG在次纳秒级进行纠缠尝试。   我们通过使用DD解决有限的内存寿命的挑战。在等待发出进一步的物理指令时,DD序列用于保持电子自旋Qubit72的连贯性 。NV中心的DD序列可以将相干时间(TCOH)延长至数百毫秒(参考文献7)甚至秒73。在我们的具体情况下,我们测量了服务器节点的TCOH = 13(2)ms ,对应于约1,300个DD脉冲。类似设置的艺术状态的差异是由于几个因素 。为了达到如此长的TCOH,必须对核自旋环境进行彻底的研究,以避免在长时间的DD序列中避免不必要的相互作用 ,从而更加准确地选择了插槽延迟。其他噪声源包括不需要的激光场,微波脉冲的质量以及微波炉沿线的电噪声。   在使用DD延长内存寿命和对互动性的相交的相交中,出现了一个具体的挑战:要实现单个的物理指示 ,许多波形被上传到AWG上,其中Qnodeos发送的Qdevice解码指令将Qnodeos发送到特定的预加载脉冲序列中 。这导致一个包含170个条目的波形表。波形的效率受AWG的波形粒度的限制,该波形粒度对应于6.66 ns的倍数 ,对TCOH具有直接影响。我们能够使用参考文献中描述的方法部分克服了这一限制 。74。即 ,每个预加载的波形,对应于一项指令,必须上传16次才能以示例精度执行。为了不填充设备的波形内存 ,我们将方法应用于参考文献中 。74仅针对播放的DD脉冲,而QDEVICE等待QNPU的指令,而指示的波形(Gate/Operation+XY8 DD序列的第一块)是根据粒度填充的 。   补充信息第3.1节给出了由我们的NV Qdevice支持的物理说明列表。   两个节点的QNPU在FreerTos75的顶部(用于微控制器的实时操作系统)的C ++中实现。该堆栈在专用的Microzed76上运行 ,这是一个基于Zynq 7000 SOC的现成平台,该平台托有两个ARM Cortex-A9处理核心,其中只使用了一个 ,以667 MHz为单位 。QNPU是在Freertos的顶部实施的,以避免重新实现标准操作系统的原始图,例如线程和网络通信。FreErtos提供了基本的操作系统摘要 ,例如任务,插入消息通讯和TCP/IP堆栈。但是,弗雷托(Freertos)内核(例如任何其他标准操作系统)直接管理量子资源(Qubits ,纠缠请求和纠缠对) ,因此其任务调度程序无法基于此类资源做出决策 。QNPU调度程序添加了这些功能(补充信息第2.5节)。   QNPU通过TCP/IP通过千兆以太网接口连接到PEER QNPU设备(Full Duplex Cat 5E)。通信通过两个网络交换机(NetGear JGS524PE,每个节点一个) 。两个QNPU通过它们各自的QDEVICE(粒度10μs)进行时间同步,因为它们已经在微秒级别(常见的1-MHz时钟)同步。   QNPU设备通过12.5-MHz串行外围界面(SPI)接口与QDEVICE的ADWIN-PRO II接口 ,用于以100 kHz的速度交换4字节控制消息。   这两个节点的CNPU是在通用台式机上执行的Python运行时(四个Intel 3.20-GHz内核,32 GB RAM,Ubuntu 18.04) 。选择使用高级系统的选择是因为遥远节点之间的通信最终将在毫秒的时间范围内进行 ,这可以易于编程应用程序。CNPU机器通过TCP通过千兆以太网接口连接到QNPU设备(IEEE 802.3在全双工CAT 8上,平均ping往返时间为0.1 ms),通过上述相同的单网络开关(一个节点)(一个节点) ,并发送了申请注册请求和净额下列表的范围(按这个互动)(按范围为10至10至1,000至1,000至1,000至1,000至1,000和10,000,00,000,000年。CNPU通过相同的两个网络交换机相互通信 。   我们使用单个Linux进程(Python)在CNPU上执行程序 。CNPU“进程”是在此单个Python过程中创建的线程。选择Python是因为NetQasm SDK在Python中实现。同时运行多个程序时 ,会使用此类线程池 。Python过程的调度及其线程由Linux操作系统处理。每个线程都建立了与QNPU的TCP连接以使用QNPU API(包括发送子例程并接收结果),并为其相应的程序执行经典块。   CNPU和QNPU都维护运行程序的过程 。CNPU调度程序(标准Linux调度程序,请参见上文)调度CNPU进程 ,该进程间接控制来自不同程序的订单子例程到达QNPU。QNPU调度程序以先到先得的方式处理相同过程优先级的子例程 ,但是导致执行QNPU流程,而不是在CNPU提交的顺序中执行(补充信息第5.3节)。   仅使用CNPU调度程序是不够的,因为:(1)我们要避免在CNPU和QNPU上传达调度说明所需的毫秒延迟;(2)需要与网络流程(满足安排本地和网络操作的挑战)结合计划 ,这仅在QNPU上运行;(3)QNPU用户流程需要相互安排(例如,在请求纠缠后正在等待一个用户进程,允许运行另一个用户流程 ,如多任务演示中所观察到的那样) 。   在纠缠请求插座中,一个节点是“创建者”,另一个节点是“接收器 ”。只要在节点之间打开纠缠请求插座 ,只有创建者的纠缠请求就足以使网络堆栈在下一个相应的时间箱中处理它,也就是说,即使尚无请求(尚未对其网络堆栈提出请求) ,“接收器”也可以遵守纠缠。   参考文献中讨论了用于捕获离子实施的实验系统 。60,61,并在参考文献中详细描述。77。在参考文献中描述了实施本身 。16 。我们将单个40CA+离子限制在线性保罗陷阱中;该陷阱基于300 µm厚的钻石晶片,将金电极溅射到上面。离子陷阱与由两个基于两个基于纤维的镜子组成的光学微腔集成在一起 ,但此处未使用微腔。物理层控制基础架构由C ++软件 ,Python脚本组成,Python脚本是一种脉冲序列器,将Python命令转换为现场可编程可编程栅极阵列(FPGA)的硬件说明语言和硬件 ,其中包括FPGA,输入触发器,直接数字合成(DDS)模块和输出logic 。   Qnodeos通过使用SPI的开发FPGA板(Texas Instruments ,launchxl2-rm57L(参考文献78))提供物理说明。我们对另一个板(Cypress,CY8CKIT-143(参考文献79))进行了编程,该板将SPI消息转换为与我们实验硬件的输入触发器兼容的TTL信号。   该实现由七个物理指令组成:初始化 ,rx(π),ry(π),rx(π/2) ,ry(π/2),ry(-π/2)和测量 。首先,我们确认消息交换以设计为50 kHz的速率发生。接下来 ,我们确认我们可以触发物理层硬件。最后 ,我们实施了七个不同的序列 。每个序列重复104次,这使我们能够获得足够的统计数据,以确认在没有Qnodeos较高层的情况下 ,我们的QDRIVER结果与操作是一致的。   经典和量子指标在性能评估中均相关:我们的测试程序的量子性能通过实验获得的量子状态ρ的保真度F(ρ,|τ)来衡量,其中f(ρ ,|τ)=τ|ρ|τ,在其中f(ρ,|τ) ,量子整形量。经典性能指标包括设备利用tutil = 1 - tidle/ttotal,其中虎钳是Qdevice没有执行任何物理指令的总时间,而ttotal是整个实验的持续时间 ,不包括用于纠缠尝试的时间(请参阅下面) 。   应用程序使用NetQASM SDK59(补充信息中的代码)以Python编写,并用针对NV Flavour59的编译器编写应用程序,因为它包括可以轻松映射到NV Qdevice支持的物理指令的量子说明。客户端和服务器节点通过在自己的CNPU上调用Python脚本来独立启动其程序 ,然后为每个程序催生线程。在应用程序执行期间 ,CNPU具有运行的背景过程,包括QDEVICE监视软件 。   在两个QNPU中安装了固定的网络时间表,其中连续垃圾箱(全部分配给客户端 - 服务器节点对)长度为10 ms(选择等于Qnodeos和Qdevice之间的1,000个通信周期 ,如参考文献38中的1,000个通信周期),以评估性能,而无需引入更改网络时间表 。在执行期间 ,CNPU和QNPU记录了包括时间邮票在内的事件。执行后,将校正应用于结果(见下文),并使用事件痕迹来计算潜伏期。   我们对DQC的演示(图4)在服务器上实现了有效的单量计算 ,这是一种简单的盲量计算形式,当使用随机选择的θ执行并不执行断层扫描时,它隐藏了从服务器中隐藏旋转角α 。所使用的远程纠缠协议是单光子协议81,82,83(补充信息第3.1节)。   结果没有出现后选择 ,包括在断层扫描单次读数(SSRO)过程中发生的已知误差(图4B,蓝色)(参考文献22补充信息中有关校正的详细信息)。我们还报告了在一次应用迭代后的电荷谐波检查结果的基础上过滤数据的后选择结果(图4B,紫色) 。该过滤器可以消除虚假事件 ,特别是当两个节点之一的发射器不在正确的电荷状态(电离)或执行DQC迭代后的激光场未正确解决光学共振时。   在那些迭代中执行进一步的过滤(图4B ,延迟过滤),这些迭代表明潜伏期与服务器的TCOH和平均纠缠状态保真度不兼容。对于此滤波器,使用模拟(使用基于测量值TCOH的去极化模型;补充信息第4.4节)来估计单个Qubit Fidelity(鉴于上面测得的上述纠缠保真度)作为服务器持续时间的函数 ,服务器Qubit在单个DQC电路的单个执行中保持生存在内存中(图4A) 。这给出了持续时间的保守上限为8.95 ms,以获得至少0.667的保真度。丢弃了与超过8.95毫秒持续时间的电路执行相对应的所有测量结果(在7,200个数据点中有146个)。   对结果分析中未考虑的其他不忠的主要来源包括,例如 ,NV Centre83的双重激发概率非零概率 。在纠缠产生过程中,可以重新启用NV中心,从而导致两个光子发射 ,从而降低了预示的纠缠忠诚度。可以通过丢弃在“纠缠时间窗口”中注册的事件(谐振零 - 音波线光子)的光子和在节点(离子异子侧侧带光子)本地进行的那些事件来纠正误差。   最后,在图4B中显示的数据集(未按时间顺序显示)是在“一击 ”中进行的,以证明物理层的鲁棒性 ,因此在之间没有对相关的实验参数进行校准,从而导致基于NV基于NV设置的整体性能的降低 。   单品忠诚度是用与参考文献相同的方法计算的 。8,在状态| i及其正交状态| -I中进行衡量 ,前提是我们期望结果| i ,而仅考虑相同的阳性基础相关因子(xx,yy,zz) ,则计算出两分的状态保真度。   在第一个多任务评估中,我们同时在客户端上同时执行两个程序:DQC-Client程序(与服务器上的DQC-Server程序进行交互)和LGT程序(仅在客户端上)(图5)。客户端CNPU运行时执行线程,同时执行两个不同的程序 。客户端QNPU具有两个活动的用户流程 ,每个流程都连续接收来自CNPU的新子例程,这些子程序相互计划,并且是相互计划的。   保真度的估计值(图5B)包含与参考文献补充信息相同的校正。22.为了评估LGT应用程序的量子性能 ,我们在Qdevices(执行无纠缠的执行纠缠动作执行纠缠动作)上使用了模拟的纠缠生成过程来简化测试:与NV过渡的共鸣弱脉冲,遵循常规的光学路径,遵循常规的光学路径 ,用于触发复杂的可编程logic设备在范围内的时间段windement winder winder winder winder winder winder windernement winder winderndernderndernding winding winding winding windernding salangding salanding winderding witternding winderding 。这导致了DQC的可比应用行为(可比速率和潜伏期;补充信息第5.1节),就Qnodeos上的多任务处理而言。   我们扩展了要多任务的程序数(图5D)。我们观察客户端QNPU调度程序如何选择CNPU提交的子例程的执行顺序 。DQC子例程每个都有一个纠缠指令,导致相应的用户流程在执行时进入等待状态(从网络过程中等待纠缠)。QNPU调度程序计划了另一个过程((56% ,81% ,99%)(n = 1,n = 2,n> 2)) ,该过程将DQC进程放入等待状态(表明QNPU计划与CNPU cons subrutines的顺序独立于该顺序)。连续的LGT子例程(任何LGT过程; LGT块执行时间约为2.4 ms)在DQC子例程之间执行的n = 1为0.83,每个n = 5的较高n的n = 5增加,直到n = 5的1.65增加 ,表明DQC期间的闲置时间确实由LGT块填充了LGT Blocks(补充信息5.3) 。   设备的利用率(请参阅“指标”部分)仅量化纠缠生成时间窗口之间的利用因子,以公平地比较多任务和非任务方案。在这两种情况下,都进行了相同的纠缠生成过程 ,在这两种情况下,它们都具有相同的概率持续时间。为了避免由于这种概率性质而不准确的结果,我们在这两种情况下都排除了纠缠产生的时间窗口 。

本文来自作者[admin]投稿,不代表象功馆立场,如若转载,请注明出处:https://wap.xianggongguan.cn/zixun/202506-787.html

(16)
admin的头像admin签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • admin的头像
    admin 2025年06月19日

    我是象功馆的签约作者“admin”

  • admin
    admin 2025年06月19日

    本文概览:  QDEVICE包括一个物理量子设备,该设备可以初始化和存储量子位(Qubits)(Qubits)(Qubits),该设备通过物理地址单独识别,可以识别量子门,测量Qubit...

  • admin
    用户061907 2025年06月19日

    文章不错《用于执行量子网络节点应用程序的操作系统》内容很有帮助

联系我们

邮件:象功馆@gmail.com

工作时间:周一至周五,9:30-17:30,节假日休息

关注微信