量子计算机编程语言早已问世!让咱们一起来了解一下

已收录   阅读次数: 929
2021-02-2622:41:50 发表评论
摘要

此前伯衡君就了解到量子计算机已经问世,但是没想到的是原来量子计算机的编程语言竟然已经有很久了,这是我实在未想到的,虽然目前暂时伯衡君对此编程语言不甚了解,但相信也肯定有其内在规律的,待以后慢慢学习吧,先行了解一下预预热也是好的……

分享至:
量子计算机编程语言早已问世!让咱们一起来了解一下

开篇寄语

此前伯衡君就了解到量子计算机已经问世,但是没想到的是原来量子计算机的编程语言竟然已经有很久了,这是我实在未想到的,虽然目前暂时伯衡君对此编程语言不甚了解,但相信也肯定有其内在规律的,待以后慢慢学习吧,先行了解一下预预热也是好的。

内容详情

量子计算可以说不是完全成熟的计算,除非有量子软件和硬件。位于美国新墨西哥州阿尔伯克基的桑迪亚国家实验室的一个开源量子计算机项目旨在通过一种用于量子计算的定制汇编语言来解决这一差距。

未来几年,物理学家苏珊克拉克和她的团队在桑迪亚计划用从美国能源部5年获得总共2500万美元研发预算,以使“QSCOUT”(Quantum Scientific Computing Open User Testbed的缩写)平台稳步升级从3量子位元到2023年的32个量子位。

QSCOUT代表Quantum Scientific Computing开放用户测试平台,由悬浮在真空室内的离子化atoms原子组成。紫外线激光闪烁使这些原子旋转,执行以该团队刚起步的量子组装代码编写的算法,该算法被命名为“Just Another Quantum Assembly Language”或“ JAQAL”。 (实际上,他们已将名称商标命名为Jaqal,并使用小写字母“ aqal”,因此所有后续引用都将改用该句柄。)

尽管Google,IBM和其他一些公司已经构建了更大的量子机器并生产了自己的编程语言,但Clark表示QSCOUT为那些热衷于探索计算机科学前沿的人们提供了一些优势。像Google和IBM机器中的那些一样,超导门肯定是很快的。但是它们也是不稳定的,在不到一秒钟的时间内丢失了一致性(和数据)。

得益于与IonQ公司(已在此处发布了一个不错的解释器)公司开发的类似的离子阱技术,Clark表示QSCOUT可以保持其计算的连贯性-认为它像在保留计算思路方面的计算等价物-可以保持尽可能多的10秒“那是最好的,”克拉克说。 “但是我们的大门要慢一些。”

然而,QSCOUT真正的优势不是性能,而是它能让用户随心所欲地控制或多或少的计算机操作——甚至可以向机器的基本指令集架构中添加新的或修改的操作。QSCOUT软件团队负责人安德鲁•兰达尔(Andrew Landahl)表示:“QSCOUT就像一个面包板,而各公司提供的产品就像印刷电路。”

“我们的用户是想做控制实验的科学家。当他们要求两个量子门同时发生时,他们是认真的,”他说。商业系统倾向于优化用户的程序以提高其性能。克拉克说:“但它们并没有给你很多关于内部情况的细节。”在这些早期的日子里,当人们还不清楚如何最好地处理噪音、数据持久性和可伸缩性等主要问题时,量子机器就有了一个角色,它只做你告诉它做的事情。

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

桑迪亚从最初的15名申请人中接受的前五个项目建议中的大多数,将针对其他量子计算机执行各种基准测试。但是,克拉克说:“ [由布卢明顿印第安纳大学的菲尔·里希姆(Phil Richerme)领导的一个团队,正在通过发现特定分子的基态来解决小量子化学问题。”

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

量子编程的Hello World~~

Landahl说,通常在新的量子计算机上运行的最简单的非平凡程序之一就是将两个量子位纠缠为所谓的贝尔状态之一的代码,贝尔状态是经典0和1二进制状态的叠加。 Jaqal文档提供了一个15行程序的示例,该程序定义了两个教科书操作,执行这些指令以准备Bell状态,然后读取对两个qubit结果状态的度量。

但是作为离子计算机,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
}
  • 我的微信
  • 微信扫一扫加好友
  • weinxin
  • 我的微信公众号
  • 扫描关注公众号
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: