英特尔的一个团队与荷兰的QuTech合作,正在研究量子计算的可能性,以更好地理解实际量子计算机如何编程以影响我们的生活。鉴于量子计算机的研究性质和当前的局限性,特别是在I / O方面,研究人员正在专注于特定类型的算法。

英特尔教授量子计算101-量子客
因特尔量子芯片

正如您所料,英特尔实验室专注于材料科学和量子化学等应用。其他可能的算法包括参数化模拟和具有全局最优的各种组合优化问题。值得注意的是,这项研究可能永远无法实现商业成果。

理查德费曼1982年的猜想,即量子计算机可以编程来模拟任何当地的量子系统已被证明是正确的。这就是为什么我们听说在量子层面模拟原子和分子的成功案例,以及对使用量子计算机进行材料设计的强烈兴趣。一个例子是模拟简单H2分子的能量的成功。

“量子计算机可以计算我们今天无法做到的问题。但是,他们将扩大而不是替代现有的计算机,“英特尔研究员兼英特尔实验室新兴技术研究总监Jim Held说。关于实际影响,Held指出“量子计算是一个远离运行商业应用的研究领域。”他还低估了媒体量子计算机已经获得的预期,即他们可以用它来破解现有的加密方法。具体来说,Held指出“密码学需要具有纠错的大量子系统”,并且期望“ 量子密码学将在量子系统扩展到所需大小之前就位,这意味着不会像一个那样产生巨大的影响可能会期待。“

量子计算机编程101,或相反,1和0

使用大多数程序员熟悉的传统编译和运行方法,可以以非常高的水平查看量子计算机的编程。但是,有一些显着的差异。

程序员可以使用以各种高级语言之一嵌入的量子指令来编写量子计算机的程序。这些编译为控制量子协处理器执行算法的经典计算机的指令,实现为量子位(量子位)上的操作。

量子计算的力量来自量子计算机特有的量子位(量子位)的两个关键性质:

  1. 量子位可以是0和1的叠加,如果被测量的话,有些概率(不一定相等)就是一个或另一个。
  2. 两个或更多的量子比特可以纠缠,这意味着它们的状态是相关的,所以N个量子比特可以同时代表高达2N

因此纠缠量子位A和B意味着它们可以同时代表四种可能的状态。类似地,每个额外的量子位纠缠表示可以同时表示的叠加状态的数量的指数倍增。在一组纠缠量子位上运行的量子算法转换所有表示的状态。

这种在指数级大的状态空间中对所有状态进行操作的能力对于量子计算机程序如何解决传统计算机难以解决的问题至关重要。简而言之,传统的计算机必须在给定的状态空间中评估每个状态 - 一次一个状态。根据定义,这意味着传统计算机将呈现呈指数级大状态空间的指数运行时增长。

密码学就​​是一个例子,因为它使用这种指数爆炸来保护数据。即使计算问题完美地映射到大规模并行硬件,这些问题的棘手性仍然存在,因为指数级地扩展硬件,解密算法的粒度或所需的计算能量是昂贵的。无论数量多大,速度快或并行,状态数量(以及运行时间)的指数级增长都会保证超出任何非量子计算机的处理能力。这就是为什么量子计算可能会增加CPU以增加解决指数缩放问题的能力 - 这是目前任何CPU都无法实现的令人兴奋的可能性。

在一个非常真实的意义上 - 而不需要进入数学 - 程序员的量子指令定义了这些纠缠量子位如何在运行时在指数级大的状态空间中进行转换,而不需要指数级的大量操作或指数级的长运行时间。然后由程序员来实现一个算法,该算法将从这个指数级大的状态空间中产生一个希望独一无二的解决方案。

关于如何执行这种基于量子的计算的更详细但仍然高级的描述(与数学相关)可以在Seth Lloyd的1993年的有说服力的论文A Potentially Realizable Quantum Computer中找到。特别是,Lloyd描述了如何使用阵列来处理信息以及量子计算机中的更新规则如何能够像细胞自动机中的规则根据个体状态以及本地和远端邻居的状态来修改许多量子比特的状态。因此,读者可以更详细地了解一种量子计算如何工作。请记住,量子系统的工作原理将根据量子硬件的实际实现而有所不同。劳埃德描述了一种基于聚合物的量子计算机(基本上是制造地毯的东西)。相比之下,英特尔实验室正在投资超导量子比特,同时也在研究基于硅的自旋量子比特。

除了定义转换量子位的算法之外,程序员还可以初始化量子位的状态(例如零或一)来定义输入数据。量子系统还允许指定传统的逻辑运算,如AND,OR,NOT和FANOUT以及量子位如何“连线”在一起。(参见Lloyd关于这种接线的一种可能的方式。)

因此,从软件角度来看,编译器需要一个程序并将其转化为适当的主机逻辑和量子协处理器量子位操作,以初始化,纠缠和转换状态为期望的结果。将算法映射成一个量子比特阵列,并对大量这些单量子比特门和多量子比特门的应用进行排序和并行化,以将量子比特移动和转换为所需状态,这是一个重要的研究课题,也是一个需要解决的问题。转向越来越多的量子比特。

无论技术如何,重要的是要注意I / O对于量子计算机来说是个大问题,并且这会影响它们可以运行的算法类型。Held强调了这一点,他指出:“量子计算不是大数据友好的。”尽管一组量子比特可以对指数级大的状态空间进行编码,但是将它们置于与那么多输入数据相对应的状态所需的操作侵蚀了复杂性优势。输出有类似的限制。由于量子位是量子器件,因此测量量子位的状态也会导致其从0和1的叠加中概率性地崩溃。获得所有在一组纠缠量子位中表示的答案需要反复运行该算法,每次测量该值,然后评估它们的分布以确定结果。

虽然量子计算机可以在非指数时间处理存在于指数级大状态空间中的问题,但它可以 - 也将 - 需要指数时间来读取指数数量的解决方案。

因此,在考虑使用量子计算机时,重要的是理解它们只能被真实地用于解决产生一种(例如独特的)解决方案的算法或至少有限数量的有效解决方案的问题。

Achilles Heel:噪音和纠错

量子系统的一个大问题是它们很容易被干扰,因为量子比特非常脆弱。

英特尔正在与QuTech一起探索的两项量子比特技术被冷却至20毫el左右(绝对零度以上的千分之二十),以消除尽可能多的热噪声。这比深空空间低大约250倍。否则,热噪声将影响解决方案的计算。注意到冷却技术在商业上可用,因此不是部署的障碍。

存在许多开放的研究课题,包括如何在不增加热量或其他形式的噪音的情况下操纵量子计算机,以及在不引入来自外部环境的噪声的情况下连接到量子位。总体而言,Seth Lloyd观察到:“计算状态的相干叠加可以保持的步数受限于与环境的相互作用。”由于这些原因,人们正在积极尝试消除噪声并开发纠错方案来解决挑战在量子水平上可靠地工作。

令人惊讶的是,量子计算正在成为现实。即便如此,大多数研究人员仍然不得不满足于在各种量子模拟器上进行编程。英特尔实验室已经开放源代码提供了01.org上使用的高性能量子模拟器。来自行业和学术界的各种其他编译器和仿真环境,例如苏黎世ETH的ProjectQ,一个使用Python实现量子程序的开源软件框架。

有关英特尔努力的更多信息,2017年英特尔HPC开发者大会上的Held全体会议“ 领先计算的演变:神经形态和量子计算 ”可在线获取。