更轻松地实现量子编程-量子客
量子芯片示意图

为了实现量子计算从理论,小型早期用例到更广泛采用的飞跃,需要可编程性的跳跃。在过去的几周里,一些第一个障碍已经被新的编译器和基于API的开发工作所淘汰,这些开发工作将量子比特和基于门的量子器件方法所需的一些复杂物理学抽象出来。

最近公开的努力是OpenFermion的开源出版物,OpenFermion是基于Google和量子初创公司Rigetti Computing的量子编译器,专注于量子化学和材料科学的应用。OpenFermion在这一点上比实际更具理论/模拟驱动力,因为它不那么专注于硬件,而不是计划量子化学和其他领域即将出现的问题,但它是Google和Rigetti团队争论的量子系统最终上线时的有用基础。作为一个侧面说明,Rigetti在其基于门的设备(称为Forest)上有自己的计算开发环境旨在为混合(量子和CPU)系统的一系列问题提供高级开发工具和开源基础。

利用橡树岭国家实验室的量子计算研究所的一个较少公开但高度发展的量子编程项目采取了类似的步骤,将一个开源框架用于将量子问题映射到D-Wave和基于门的(例如Rigetti和IBM)设备。在超大规模加速器编程(XACC)模型花费的GPU类似CUDA的路线今天强调了问题的某些片段的卸载模式。它也很像OpenCL模型,它被视为GPU加速的硬件不可知方法。

根据XACC的一位负责人亚历山大•麦卡斯基(Alexander McCaskey)的说法,由于没有人知道未来几年哪种设备或量子方法会获胜,所以唯一明智的做法是为未来构建硬件和硬件。考虑到将问题映射到必须抽象的设备的量子物理和深层领域专业知识的许多方面,然而,这说起来容易做起来难。

更轻松地实现量子编程-量子客
“XACC框架提供了一个高级API,使应用程序能够卸载计算工作,以量子内核的形式在附加的量子加速器上执行。这种方法对量子编程语言和量子处理器硬件是不可知的,这使量子程序能够移植到多个处理器。XACC模型及其参考实现可能成为未来使用传统量子混合计算的HPC就绪应用,数据结构和库的基础。”

在处理橡树岭的XACC和其他与量子有关的问题之前,McCaskey是2011年为洛克希德马丁的D-Wave量子计算机编程模型和开发环境的早期团队的一员。他继续与其他编程工具一起工作器件以及两种不同的量子计算方法–D-Wave基于量子位/退火的芯片和基于门的系统之间寻找类似的元素。

更具体地说,McCaskey和团队将重点关注这些设备在未来几年可能作为传统基于CPU的系统的加速器的作用。他表示,量子化学应用的早期进展突出了一个现实的机会,可以加速后级时代的经典HPC问题。

当涉及到为量子系统创建编程抽象时,即使模型创建为硬件不可知,也存在双向分化。D-Wave和量子退火方法与基于门的量子计算的IBM或Google方式相比较。

“我们必须以不同于以往所见的方式思考整个堆栈。使用D-Wave方法,您可以为机器硬件值指定一个数字列表,设置磁场和量子位耦合器值 – 您需要的是这些抽象。对于门,你正在描述一个算法,它由一组量子位上的门操作组成,并且需要在那里进行抽象化,并且可以从库中提取数据结构,然后执行该算法来运行问题算法,而不用担心底层门,“McCaskey解释说。“您希望提供高水平的数据结构以及XACC所熟悉的熟悉的编程模型。”


“我们在C ++语言中设计和演示了XACC编程模型,方法是遵循与OpenCL或GPU的CUDA设计类似的协处理器机器模型。但是,我们考虑到传统和量子处理硬件之间相互影响的微妙和复杂性。“


“XACC在概念上类似于我们对GPU进行编程以减轻工作负担。我们想要量子类似的东西。这是以XACC为基础的全新的编程思维方式。从那里开始,就有可能在此基础上构建库和应用程序。“

这是一个很大的主张:创建一个更高层次的抽象来隐藏两个完全不同类型的量子加速器的物理复杂性,使用相同的整体API。此外,与其他高级编程工具一样,OpenCL等加速器的级别越高,泛化能力越强,性能越高。简而言之,编程到金属时没有什么与性能接近的。McCaskey说,在量子游戏中,尽早推广一个编程框架比听起来更可行。

“对于量子产品,我们真的不知道哪个供应商或量子模型将在20年内成为最好的。在这一点上,我们必须以一种与硬件无关的方式来定义我们的编程模型。我们是否因为不了解底层架构而失去性能?不适用于这些噪声量子数较少的QPU。保持我们的模型QPU不可知论为转换和优化编译的内核提供了抽象 – 这是一个很好的起点。“

“我希望人们能够说他们想要运行量子化学的变分量子Eigen求解器。他们有一个描述目标分子的输入文件,剩下的就是XACC; 量子编译生成门序列,并将其卸载到芯片。这是复杂性和抽象性的目标,“McCaskey说。然而,正如人们可以想象的那样,这不是任何程序员可以在复杂应用程序的生产环境中使用和运行的东西。

在高层次上,可以通过软件来玩游戏,但为了解决真正的问题,应用领域的深层领域专业知识非常关键,通过课程了解量子计算机也很重要,McCaskey说。“对于基于门的芯片,即使使用XACC,您也需要了解一些量子物理学,以了解这些门在做什么,但是如果您只是想尝试使用那些专业知识较少的框架的例子。”

McCaskey认为超级计算的未来是异质的,除了卸载GPU加速器之外,某些应用程序是在QPU上处理的。橡树岭国家实验室一直在探索超异构机器(包括使用神经形态,量子和超级计算混合机器进行深度学习)。“我们可以利用许多不同类型的加速技术,并考虑全新的混合经典量子算法集,这些算法可以克服当前存在的棘手问题的瓶颈。”