Twist:麻省理工学院的量子编程语言

2022-02-22 03:25:30

麻省理工学院计算机科学和人工智能实验室(CSAIL)的一组研究人员创造了Twist,一种新的量子计算编程语言。Twist的设计目的是让开发人员更容易识别哪些数据片段被纠缠,从而使他们能够创建错误更少、更容易调试的量子程序。

Twist的基础在于识别纠缠,即量子计算机中两个数据段的状态相互关联的现象。“每当你对一段纠缠的数据执行一个操作时,它可能会影响到另一段。你可以用它实现强大的量子算法,但它也会使你对自己编写的程序进行推理变得不直观,并且容易引入微妙的错误,”Charles Yuan说,麻省理工学院CSAIL计算机科学博士生,关于Twist的论文的主要作者,发表在《ACM编程语言学报》上。

“Twist所做的是,它提供了一些功能,让开发人员能够说出哪些数据被纠缠,哪些数据没有被纠缠,”袁说。“通过在程序中包含有关纠缠的信息,可以检查量子算法是否正确实现。”

该语言的一个特点是类型系统,它使开发人员能够指定程序中哪些表达式和数据片段是纯的。袁说,纯数据没有纠缠,因此没有可能的错误和纠缠造成的非直观影响。Twist还具有纯度断言操作符,用于确认表达式没有与任何其他数据片段纠缠,以及静态分析和运行时检查,以验证这些断言。

为了评估这种语言,该团队用Twist为一组著名的量子算法编写了程序,并在量子模拟器上执行。袁说:“我们进行的实验表明,运行这些运行时检查的开销比运行基本程序的开销不超过3.5%,我们认为基本程序的开销相当低,在语言提供的安全保证方面,这是一个很好的权衡。”。

该团队还向一些程序引入了小错误,并发现Twist可以检测到这些错误并拒绝错误的程序。“我们希望,当人们使用我们的语言或为他们的特定用例设计新的量子语言时,他们将能够看到我们的工作,并说他们想要纯净的想法,并将纠缠作为一种功能,因为这将让他们更有信心,他们的程序是正确的,而不必运行很多昂贵的程序“模拟和测试,”袁说。

虽然许多研究人员致力于构建高效优化的量子硬件,但Twist旨在填补量子软件领域的空白。“与我们在机器学习和其他高性能计算应用中看到的情况类似,在硬件开发的每一个新阶段,我们都会得到一个新的系统和潜在的新功能——通过利用硬件,可能会有许多难以置信的机会。但几乎总是软件战麻省理工学院副教授、关于Twist的论文合著者迈克尔·卡宾(Michael Carbin)说:“这阻碍了人们访问该硬件,并能够部署它,并在不同的软件系统中广泛使用它。”我们正在做的大量工作是奠定一些基础,并试图梳理出一些核心抽象概念,这些抽象概念可能会使这些类型的设备更具可编程性。"

然而,该团队在构建Twist时面临的一个挑战是,缺乏一个量子程序应该是什么样子的标准。袁说:“多年来,人们已经开发出核心算法来解决单个复杂任务,比如整数分解,但我们如何为其构建一个完整的软件生态系统还不太清楚。”。“通过Twist,我们能够围绕我们想要在量子计算机上执行的任务的最佳共识构建语言,并使其尽可能表达这些任务。”

就局限性而言,Twist只能告诉你一段数据是否与其他数据纠缠在一起,而不能告诉你它们是如何纠缠在一起的。袁说:“它们纠缠的确切方式将决定量子算法是否正确,但数据纠缠的方式有无数种。”。“能够提供更细粒度的细节是一个真正的挑战,这是我们未来需要做的事情。”

该团队目前正在开发另一种基于Twist的语言,以解决相位和叠加等其他量子现象,但他们希望Twist将为创建更好的量子程序铺平道路。

“对于试图实现量子算法的开发者来说,他们需要语言中内置的工具来告诉他们程序中发生的事情是由纠缠引起的,”袁说。“如果我们能够构建核心语言原则和功能,让开发人员能够对纠缠进行推理,我们就能使纠缠减少认知负担,并让开发人员编写更直观的程序。”

这在很大程度上是朝着成本效益和进一步改进的可能性迈进的一大步,我们希望它一定会丰富量子编程。