量子比特编码:如何用量子计算机汇编语言编程

桑迪亚实验室在他们的QSCOUT平台上率先推出了另一种量子汇编语言(Jaqal)

4分钟读取
QSCOUT的离子阱利用电磁场来容纳一串发挥量子位作用的镱-171离子。
QSCOUT的离子阱利用电磁场来容纳一串发挥量子位作用的镱-171离子。该陷阱于今年2月推出,拥有3个量子比特,将在2021年升级至容纳10个量子比特。程序命令激光向离子发射紫外线脉冲,以控制它们的方向和量子态。
图片来源:桑迪亚国家实验室

量子计算可以说还不是完全成熟的计算,直到有了量子软件和硬件。一个开源量子计算机项目桑迪亚国家实验室在新墨西哥州阿尔伯克基,他们的目标是用定制的量子计算汇编语言来解决这一差距。

在接下来的几年里,桑迪亚大学的物理学家苏珊·克拉克(Susan Clark)和她的团队计划使用他们从美国能源部获得的2500万美元,为期5年的拨款,在他们的“QSCOUT”平台上运行由世界各地的学术、商业和独立研究人员提供的代码,并将其从今天的3个量子比特稳步升级到2023年的32个量子比特。

QSCOUT代表量子科学计算开放用户试验台,由悬浮在真空室内的电离镱原子组成。紫外线激光的闪光使这些原子旋转,执行用该团队刚刚诞生的量子汇编代码编写的算法——他们将其命名为“只是另一种量子汇编语言”(JAQAL)。(事实上,他们已经将该名称注册为Jaqal,并使用小写字母“aqal”,因此所有后续引用都将使用该句柄。)

虽然谷歌、IBM和其他一些公司已经建造了更大的量子机器,并开发了自己的编程语言,但克拉克说,QSCOUT为那些热衷于探索计算机科学前沿的人提供了一些优势。超导门,就像谷歌和IBM机器中的超导门,速度当然很快。但它们也不稳定,失去连贯性(和数据)在不到一秒的时间内。

得益于与该公司开发的类似的离子捕获技术IonQ(已出版这里有一个很好的解释),克拉克说QSCOUT可以保持其计算的一致性——可以把它看作是将一连串思考保持10秒的计算等等物。“这是最好的,”克拉克说。“但是我们的大门有点慢。”

真空室包围了离子阱,以保护超灵敏离子免受与气体粒子的相互作用,以及可能改变其状态的热和电磁噪声的影响,从而有效地破坏量子处理器。一个真空室包围了一个离子阱,保护单个离子不受可能改变其状态的热和电磁噪声源的影响,有效地使量子处理器崩溃。图片来源:桑迪亚国家实验室

然而,QSCOUT的真正优势不是性能,而是它能让用户随心所欲地控制计算机的操作——甚至在计算机的基本指令集架构中添加新的或修改的操作。“QSCOUT就像一块面包板,而公司提供的产品就像印刷电路,”他说Andrew Landahl是QSCOUT软件团队的负责人。

“我们的用户是想做对照实验的科学家。当他们要求两个量子门同时发生时,他们是认真的,”他说。商业系统倾向于优化用户的程序以提高其性能。克拉克说:“但它们不会告诉你很多细节,告诉你背后发生了什么。”在早期,当人们还不清楚如何最好地处理噪声、数据持久性和可伸缩性等主要问题时,量子机器的作用是只做你让它做的事情。

为了实现这种精度和灵活性的结合,Landahl说,他们创建了Jaqal,其中包括将离子初始化为量子比特的命令,将它们单独或一起旋转成各种状态,将它们纠缠成叠加态,并将它们的最终状态作为输出数据读取。(请参阅下面的“Jaqal中的‘Hello World’程序”。)

任何jaal程序的第一行,如。

从qscout.v1。性病使用脉冲*

加载定义标准操作(量子计算行话叫“门”)的门脉冲文件。该方案易于扩展。Landahl说,下一个版本将添加新的指令,以支持超过10个量子比特,并添加新的功能。此外,他说,用户甚至还可以编写自己的函数。

Clark说,在愿望清单上排在前面的是在经典计算中被认为是理所当然的功能:能够对正在进行的计算进行部分测量,然后根据中间状态进行调整。量子比特之间的相互联系使得这种局部测量在量子领域很棘手,但实验家已经证明这是可以做到的。

实用程序将混合量子运算和经典运算,因此QSCOUT团队还在Github上发布了一个名为JaqalPaq它提供了Jaqal模拟器,以及将Jaqal代码作为对象包含在大型Python程序中的命令。

桑迪亚从最初的15个申请者中接受的前5个项目提案中,大多数将对其他量子计算机进行各种基准测试。但是,Clark说:“其中一个团队(由菲尔Richerme印第安纳大学布卢明顿分校正在通过找到特定分子的基态来解决一个小的量子化学问题。”

她说,在团队将机器从3个量子比特升级到10个量子比特之后,她计划在3月份邀请第二轮提案。

Jaqal的“Hello World”程序

兰德尔说,在一台新的量子计算机上通常运行的最简单的非平凡程序之一是将两个量子比特纠缠成一个所谓的量子比特的代码贝尔州,它们是经典的0和1二元态的叠加态。的Jaqal文档给出了一个15行程序的例子,它定义了两个教科书操作,执行这些指令来准备一个贝尔状态,然后读取两个量子位的结果状态的测量值。

但是作为一个捕获离子计算机,QSCOUT支持一种叫做a的漂亮操作Mølmer-Sørensen门这提供了一条捷径。利用这一点,下面的6行程序可以完成同样的任务,并重复1024次:

register q[2] //定义一个2量子位寄存器

循环1024{//连续语句,重复1024x
prepare_all //在|0⟩状态下准备每个量子比特
Sxx q[0] q[1] //执行Mølmer-Sørensen门
measure_all //测量每个量子位并输出结果

对话(0)

为什么函数式编程应该是软件开发的未来

这很难学习,但是您的代码将产生更少令人讨厌的意外

11分钟读取
垂直
一盘用代码做成的意大利面
Shira Inbar
DarkBlue1

你期望人生中最长、最昂贵的阶段一个软件产品的周期是系统的初始开发,当所有这些伟大的功能都是第一次想象,然后创建。事实上,最难的部分出现在后面的维护阶段。这时程序员就会为他们在开发过程中走的捷径付出代价。

那么,他们为什么要走捷径呢?也许他们没有意识到自己在偷工减料。只有当他们的代码被大量用户部署和使用时,隐藏的缺陷才会暴露出来。也许开发人员太匆忙了。推向市场的时间压力几乎保证了他们的软件会包含更多的bug。

继续阅读↓ 显示更少
{“imageShortcodeIds”(“31996907”):}
Baidu