paint-brush
量子计算需要更多软件工程师by@ddri
413
413

量子计算需要更多软件工程师

David Ryan11m2024/05/26
Read on Terminal Reader

探索量子计算中的软件堆栈,从高级编程语言到硬件系统(以及......开始您的量子职业生涯)。
featured image - 量子计算需要更多软件工程师
David Ryan HackerNoon profile picture
0-item

本文的灵感来源于量子计算领域对更多软件工程师的需求。更不用说其他开发人员、用户体验设计师、质量保证测试人员、产品经理以及所有其他能够将真实产品交付给真实客户的人才。尤其是像量子计算这样的深度技术和前沿技术的产品。


这些产品和试图创造这些产品的团队要经历从“科学到技术到工程到产品”的漫长而充满挑战的旅程。这一系列阶段的转变更多的是关于组织(和社区)的发展,而不仅仅是技术准备的线性进展。


这种演变并非偶然发生。对于我们这些在这些团队中工作的人来说,我们面临着重塑组织的挑战,因为它从学术转向技术,再转向更广泛地参与市场。这意味着寻找并与不断壮大的人才群体合作,并不断发展和提高我们自己的技能。



这是我在 2022 年 Linux 基金会开源峰会上以“开源开启量子计算职业生涯”为主题的演讲中提到的内容。此后一年多的时间里,这一趋势进一步发展,行业明显转向“量子效用”(我们用这个术语来关注现实世界的实用性,而不是理论上的霸权),一些大型项目也开始启动。例如,澳大利亚政府向PsiQuantum 投资近 10 亿美元,在我的家乡布里斯班建立了一台商用量子计算机(说这话时,我有点想家了,因为我在西雅图)。


所以是的,有很多事情要做。因此,现在正是了解这些量子系统实际上由什么组成以及您的才能和好奇心适合于什么的好时机。我在最后提供了一些关于如何参与的建议。我应该补充一点免责声明,实际上没有一个“量子计算机”范式。出于教育价值,我提取了我们正在研究的各种系统中最常见的元素,但随着这个模型随着时间的推移而发展,欢迎任何挑战或反驳。

量子堆栈一览

量子计算堆栈在很多方面都与现代高性能计算 (HPC) 堆栈的模式相匹配。在较小程度上,云计算领域的所有从业人员都对此非常熟悉。我们从高级用户体验转向某种形式的平台,该平台将我们的工作负载转换为可在硬件上运行的东西。这很简单,我们很容易理解。


细微差别要复杂得多。例如,要理解量子计算机的真正好坏取决于所使用的量子算法。您听到的关于叠加纠缠的所有花哨东西实际上都归结为一种可靠地运行一些有用算法的方法,这些算法在硬件层面上使用相位和干涉来执行“计算”,得出正确答案的概率。经常这样做会增加正确答案的可能性。要做到这一点,需要一个有用的算法和一个可靠的系统实现。


模拟也起着至关重要的作用。你可能会看到有人说这与“节省昂贵的硬件购买费用”有关,但事实并非如此(这通常是某些人只是在使用人工智能编写量子诱饵的线索)。我们依靠模拟不仅可以帮助开发新的和有趣的算法,还可以探索设置工作负载的各种方法。这也是我们许多人正在构建的工作流程的核心部分,真正的混合系统将使用经典计算资源来处理工作负载和调度,以及通过 GPU(或TPULPU等较新的芯片)加速,并有效地将某些工作负载推送到量子处理单元 (QPU),量子算法可能对手头的任务有用。虽然有些人(比如我自己)专注于将量子计算与现有基础设施相结合,但其他人则致力于构建最强大的独立量子系统。因此,业界的探索范围很广。


如果您从中得出的结论是量子计算机是一个专门的系统,除了现有的计算堆栈外,还包含一个 QPU 来运行专门的量子算法,那么这是一个胜利。不需要猫、缝隙或诡异的挥手。



量子堆栈详细信息

以下部分从顶部的用户层向下穿过平台,最终进入硬件层。虽然这些层之间的界限在实践中可能很模糊,但为了清晰(和合理),我们将遵循基于典型工作负载或工作流程的模型。

1. 量子编程语言和开发工具

量子系统的最高层是人类在键盘上不停敲击。量子编程语言提供了探索量子算法和以可管理的形式创建程序所需的高水平抽象。软件开发工具包 (SDK) 提供了开发量子软件所需的库和工具,扩展了使用这些语言的体验。


SDK 和框架与集成开发环境 (IDE) 之间的区别有些模糊。这是由量子供应商的多样化方法以及针对特定最终用户的平台和垂直产品的集成所决定的。想要完全本地访问和脉冲级控制的研究人员与开发混合工作负载的企业团队不同,后者与在基于云的量子平台上构建的金融科技初创公司不同。这种模式在企业或基于云的项目中很常见,但随着量子系统的商业价值变得更加明显并影响产品设计,它将随着细微差别而发展。同时,最流行的 SDK 及其相关的编程语言如下。


2. 量子算法及应用

沿着堆栈向下移动,我们来到了任何所需量子工作负载的核心算法。随着创建量子计算机的各种竞争方法的改进,现实世界应用的机会也在不断增加。一系列软件库和软件包正在针对特定的功能使用领域进行构建(例如IBM 的 Qiskit Machine Learning用于量子机器学习或Google 的 OpenFermion用于量子化学),研究人员和商业供应商正在扩展和优化已知量子算法的现有库(例如Stephen Jordan 的 Quantum Algorithm ZooClassiq 的库)。


一些量子算法已经获得了近乎名人的地位。其他一些则是经典算法的量子改编,或作为更大工作负载的构建块。甚至有些量子算法在现实世界中功能上毫无用处(如果你敢的话,可以在这里插入一个关于物理学家的笑话),但却是量子优势的重要例子。如需深入了解,请参阅我关于量子算法的专题,但这里有一些值得注意的例子。


  • Shor 算法是一种“加密破解”算法,其提出的目的是为了以比任何已知的经典算法快得多的速度对大数进行分解。
  • Grover 的搜索算法是加速非结构化数据搜索算法的一个有用起点。
  • Deutsch-Jozsa 算法本身在技术上并无用处,但它是显示量子优势优于传统方法的一个早期例子。
  • 量子傅里叶变换 (QFT)是快速傅里叶变换的量子版本,是许多强大算法的核心。
  • 变分量子特征求解器 (VQE)是一种混合算法,目前正在探索用于量子化学、材料模拟和优化问题的近期应用。

3. 量子模拟器和仿真器

量子模拟器是用于在传统计算机上复制量子系统行为的软件工具。它们是我们开发算法和优化潜在工作负载的工作流程的重要组成部分(尤其是具有与特定硬件相同的门组或其他元素的模拟器)。随着行业本身从纯学术研究发展到潜在的商业效用,模拟器的作用也在不断演变。特定量子硬件的模拟精度已提高到可以模拟系统独特的噪声和误差的程度。请注意,随着供应商( 关注 Qiskit 1.0 )随着行业的成熟而迭代或精简其产品系列,以下示例可能会更改或弃用。


4. 量子云平台

在进一步深入讨论之前,我们需要对量子云平台这个话题做一个小小的补充。在当今时代,有少数几家主要供应商在运营一些硬件系统。每个供应商都面临着同样的问题:是否尝试直接销售硬件单元、在自己的校园内托管、通过互联网销售访问权限,还是以上几种方式的组合。然后将私有互连、公共云供应商、主权能力和研究实验室添加到组合中。云平台模型不一定将成为量子计算的决定性经济模型,尽管考虑到之前的云计算模式,它在该领域之外占据了最大的市场份额。


话虽如此,也要注意那些选择不为云平台访问配置系统的公司。在Quantum Brilliance,我的重点是使用钻石 NV 中心方法的高度并行化边缘计算集群,该方法支持小型和室温 QPU(第一个)。在与其他量子初创公司交谈时,所有形式的固定或移动部署的用例似乎都适用,而且有很多有趣的(通常未公开的)工作正在远离网络的地方进行。在那些可以在线访问的项目中,以下是一些值得关注的项目。


5. 量子编译器和电路优化

量子编译器的作用是将高级量子程序转换为要在量子硬件上执行的低级指令。虽然具体细节超出了本文的范围,但该过程涉及门分解(将抽象门与物理量子位匹配)、映射和调度(将算法的逻辑量子位与物理量子位匹配)以及特定于供应商及其特定系统的细节(例如保真度、错误率和连接性)。


为了简化此示例堆栈,我们将在此级别中介绍各种形式的量子电路优化,这些优化应用技术来最小化量子门、深度或其他资源元素的数量,而无需更改底层功能。这可以在编译之前发生,也可以在编译过程中作为编译的一部分发生,或者在之后作为硬件过程微调的一部分发生。为清楚起见,让我们将其分组到我们的工作流程中。以下是一些需要注意的示例。


6. 量子纠错软件

在当今“嘈杂”量子系统的时代,量子纠错的作用尤为重要。甚至有公司专门从事这一层。这些公司和更广泛的纠错工作之所以需要,是因为量子系统的脆弱性。虽然超导量子计算机占据了大众的想象,但纠错对所有方法(离子阱、光子、NV 中心等)都至关重要。


无论采用哪种量子比特生成方法,在准备、工作负载执行和测量方面都会遇到挑战。 退相干会影响所有方法,以及门误差、测量误差和单个量子比特质量。量子纠错显然很复杂,但可以结合系统冗余(将量子信息分散到多个量子比特)、综合征管理(使用辅助量子比特检测错误而不干扰编码信息)以及随时间分析单个或集群量子比特的性能等技术。虽然如果真正实现容错量子计算时代,这些仍然很重要,但在我们目前所处的嘈杂中型量子 (NISQ) 时代,它们是一个令人兴奋的研究课题。主要供应商和示例包括以下内容。


7. 量子控制系统

量子控制系统负责管理和控制量子硬件的操作。它处理硬件级别的任务,例如校准、脉冲整形和量子位控制。鉴于正在开发的量子计算形式不同,以及单片或网络量子系统的实现范围,我们可以认为“量子控制系统”一词是包容性的,而不是具体的。同样,“量子操作系统”也没有严格的定义。


随着开发阶段从“科学到技术”阶段转变为“工程到产品”阶段,这种情况可能会随着时间的推移而改变。尤其是在需要与现有产品模式和用户和/或市场术语更紧密结合的情况下。在大多数情况下,控制系统将是一种内部资源(介于操作系统和固件之间),但以下供应商和产品值得注意。


8. 量子硬件

我们堆栈中的最后一层是量子硬件本身。记住,没有单一或正确的方法来生成和使用量子比特是有用的。也没有明确的市场领先方法。每种方法或方法都有自己的挑战,并且可能存在多种方法,对特定场景都有好处。


许多人在听到“量子计算”一词时想到的是硬件层,这与早期的管道和阀门计算设备通过纯粹的机械相互作用来定义术语和语言的方式非常相似。随着时间的推移,交换机和穿孔卡让位于指令和程序,而指令和程序又通过内存和存储进行扩展,然后通过网络和服务器进行连接。


这些模式在量子设备的研究和开发中都存在,从上文我们可以看出,示例量子堆栈的各层为各层的现有专业知识提供了提供新颖有趣想法的机会。考虑到堆栈中每种底层技术和各层提供的细微差别,希望我们能以从未考虑过的新方式实现这些想法。

TL;DR?

量子物理学家、电气和电子工程师、制造商和各种原子操纵者所做的工作不仅得到了我们这些掌控比特和(泽塔)字节的人的支持,而且还得到了他们的推动。现在是参与其中的好时机。


对于新学习者来说,一个好的开始是Q-CTRL 的 Black Opal代尔夫特大学在 edX 上的高级 MOOC ,以及进入 IBM 的 Qiskit 的必经之路。对于 C# 方面的人来说,这篇 Microsoft 介绍简要介绍了他们对 Q# 的方法以及它如何融入 Azure 生态系统。Classiq算法库值得收藏。


我很快会写一篇关于软件工程师学习量子知识的专门文章,因为自从我在开源峰会上发表演讲(以及此后发生的工程人才的轮番裁员)以来,我几乎每周都会收到有关这个话题的电子邮件。虽然任何行业转变对于受到经济低迷影响的个人和家庭来说都是困难的,但反过来,这可能是一个释放人才(和职业道路)的机会,否则这些人才将被锁在门外。所以,如果你正在考虑进一步探索,请这样做,如果我能提供任何帮助,请给我留言。一定要订阅《产品深度通讯》,我们将在其中深入探讨在深度科技和前沿技术领域推出真实产品的策略和工艺。