在没有量子计算软件和硬件的情况下,量子计算可以说是并不完全成熟的计算。位于新墨西哥州阿尔伯克基的Sandia国家实验室的一个开源量子计算机项目旨在通过一种定制的量子计算汇编语言来解决这一问题。
在接下来的几年里,物理学家Susan Clark和她在Sandia的团队计划使用他们从美国能源部获得的2500万美元的5年期拨款,在他们的“QSCOUT”平台上运行世界各地的学术、商业和独立研究人员提供的代码,到 2023 年,该平台将从现在的3个量子比特稳步提升到32个量子比特。
QSCOUT代表了量子科学计算开放用户试验台(Quantum Scientific Computing Open User Testbed),由悬浮在真空室内的电离镱原子组成。紫外激光的闪光使这些原子旋转,通过执行用该团队刚刚起步的量子汇编代码编写的算法,他们将其命名为另一种量子汇编语言(Just Another Quantum Assembly Language)或JAQAL(事实上,他们已经用小写字母“aqal” 注册了 Jaqal 的商标,因此所有后续引用都将使用该句柄)。
尽管Google、IBM和其他一些公司已经制造了更大的量子机器,并生产了自己的编程语言,Clark说QSCOUT为那些热衷于探索计算机科学前沿的人带来了一些好处。
就像谷歌和IBM机器上的那些超导门(Superconducting gates)一样,它也很快速。但是它们也不稳定,在不到一秒钟的时间内就失去相干性(coherence)和数据。
Clark说,由于离子俘获技术类似于IonQ公司开发的技术,QSCOUT可以保持其计算的一致性——把它想象成一个计算的等价物,可以保持长达10秒的思路。“这是目前最好的,”Clark 说,“但我们的量子逻辑要慢一些。”
然而,QSCOUT的真正优势不在于性能,而是它赋予用户控制计算机操作的能力,用户可以随心所欲地控制计算机的操作,甚至可以在计算机的基本指令集结构中添加新的或修改过的操作。QSCOUT软件团队的负责人Andrew Landahl说:“QSCOUT就像一个试验板,而公司提供的产品就像印刷电路。”。
“我们的用户是科学家,他们希望进行控制实验。”他说:“他们要求两个量子逻辑门同时发生,商用系统往往会优化用户的程序来改善它们的性能。”Clark 称,“但他们不会给你太多的细节来告诉你幕后的情况。”在早期,如何最好地处理噪音、数据持久性和可伸缩性等主要问题仍然是个未知数,量子机器的角色就是按你的吩咐去做。
Landahl说,为了实现精确性和灵活性的结合,他们创建了Jaqal,其中包括将离子初始化为量子位的命令,将它们单独或共同旋转到各种状态,将它们缠绕成叠加,然后以输出数据的形式读取最终状态。
任何 Jaqal 程序的第一行,例如:
from qscout.v1.std usepulses *
loads a gate pulse file that defines the standard operations (“gates,” in the lingo of quantum computing)。
这种方案可以轻松实现扩展性。Landahl 说,下一个版本将增加新的指令来支持 10 个以上的量子比特,并增加新的功能。此外,他还说,用户甚至也可以编写自己的函数。
Clark说,“愿望列表”中,一个在经典计算中理应具备的新特性是,能对进行中的计算进行局部测量,然后根据中间状态进行调整。在量子领域,由于量子比特的互连性(interconnectedness),这种局部测量方法很难实现,但实验人员已经证明这可以做到。
实用程序将量子和经典操作混合在一起,因此QSCOUT团队还在Github上发布了一个名为JaqalPaq的Python包,它提供了一个Jaqal模拟器以及将Jaqal代码作为对象包含在一个更大的Python程序中的命令。
Sandia国家实验室在首批 15 个申请者中接受了前 5 个项目提案,其中大部分将针对其他量子计算机进行各种基准测试。但是,Clark说:“其中一个小组(由印第安纳大学布卢明顿分校的Phil Richerme领导)正在通过找到一个特定分子的基态来解决一个小的量子化学问题。”
在团队将机器从3个量子比特升级到10个量子比特之后,Clark计划在3月份邀请第二轮提案。
Jaqal 编程语言输出“Hello World”
Landahl说,一个最简单的non-trivial程序通常运行在一台新的量子计算机上,它是将两个量子比特纠缠成一个所谓的Bell态的代码,Bell态是经典的0和1二元态的叠加。Jaqal文档给出了一个15行程序的例子,该程序定义了两个教科书操作,执行这些指令来准备一个Bell态,然后读取两个量子位的结果态的测量值。
但是,QSCOUT 作为一台离子阱计算机,QSCOUT支持一个叫做Mølmer–Sørensen门的漂亮操作,它提供了一条捷径。利用这一点,下面的6行程序可以完成相同的任务并重复1024次:
register q[2] // Define a 2-qubit register
loop 1024 { // Sequential statements, repeated 1024x
prepare_all // Prepare each qubit in the |0〉 state
Sxx q[0] q[1] // Perform the Mølmer–Sørensen gate
measure_all // Measure each qubit and output results
}
原文标题:量子比特编码:如何用量子计算机汇编语言编程
文章出处:【微信公众号:IEEE电气电子工程师学会】欢迎添加关注!文章转载请注明出处。
责任编辑:haq
-
计算机
+关注
关注
19文章
7413浏览量
87696 -
量子计算
+关注
关注
4文章
1079浏览量
34900
原文标题:量子比特编码:如何用量子计算机汇编语言编程
文章出处:【微信号:IEEE_China,微信公众号:IEEE电气电子工程师】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论