你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是 Azure Quantum?

Azure Quantum 是一项 Azure 云量子计算服务,其中包含一组不同的量子解决方案和技术。 Azure Quantum 确保提供一条开放、灵活且面向未来的量子计算路径,该路径可适应你的工作方式、加速进度并保护技术投入。

Azure Quantum 提供了最佳的开发环境,可以同时为多个平台创建量子算法,同时保留为特定系统优化相同算法的灵活性。 可以编写代码一次,然后针对同一系列的多个目标运行它(无需更改或仅需少量更改),从而让你可以专注于算法级别的编程。

  • 一种开放生态系统,使你能够从 Microsoft 及其合作伙伴处获得各种量子软件、硬件和解决方案。 可以从 Qiskit、Cirq 和 Q# 等量子编程语言中进行选择,并在多个量子系统上运行算法。
  • 当前,借助量子的影响力,可以同时探索当今的量子系统并为未来的规模量子系统做好准备,以及使用在经典和加速计算资源上运行的预构建解决方案(也称为优化解决方案)。

提示

如果没有 Azure 帐户,请 免费 注册并注册 即用即付订阅。 如果你是学生,则可以利用 面向学生的免费 Azure 帐户

Azure Quantum 的部件

借助 Azure Quantum,你可以利用目前在全堆栈开放云生态系统中利用量子计算的优势,该生态系统可以访问软件、硬件和预构建的解决方案。 Azure Quantum 提供两种类型的量子解决方案:量子计算和优化。

量子计算

如果打算模拟量子力学问题,例如化学反应、生物反应或材料结构,则量子计算机的效果非常好,因为它们在计算中使用量子现象。 量子计算机还可以帮助加快金融服务、机器学习和非结构化数据搜索等不同领域的进展,这些领域需要大量的计算。

借助 Azure Quantum,研究人员和企业可以使用量子计算对风险管理、网络安全、网络分析、数据搜索、疫苗研制或材料科学中的复杂场景进行建模。 若要详细了解如何使用量子计算和量子算法,请参阅了解量子计算

优化

数十年来对经典计算机量子效应的模拟导致了名为量子 衍生优化的新型量子解决方案的开发。 优化是在给定问题的预期结果和约束条件的情况下,找到问题最优解的过程。 每个行业都存在复杂的优化问题:车辆路线、供应链管理、行程安排、项目组合优化、电网管理等等。 解决这些现实问题会带来可观的好处,例如降低成本、加速流程或降低风险。

量子衍生优化算法利用传统硬件上的量子计算的一些优势,从而比传统方法加快速度。

使用 Azure Quantum,你可以访问由 Microsoft 及其合作伙伴开发的各种先进的量子衍生优化算法。 若要详细了解 Azure Quantum 中的优化解决方案,请参阅什么是优化?

如何开始使用 Azure Quantum?

提示

首次使用的用户自动获得 500 美元 (美元的免费) Azure Quantum 额度 ,供每个参与的量子硬件提供商使用。 如果你已用完所有额度,且需要更多额度,可以申请 Azure Quantum 额度计划

开始使用 Azure Quantum 对于新用户来说非常简单,而且免费。 要将量子程序和优化解决方案提交到 Azure Quantum,只需拥有以下两项:

  1. Azure 帐户:如果没有 Azure 帐户,请免费注册并注册 即用即付订阅
  2. Azure Quantum 工作区:Azure Quantum 工作区是与运行量子或优化应用程序相关联的资产集合。 要创建 Azure Quantum 工作区,请转到 Azure 门户,然后选择“快速创建”,系统会自动创建工作区并添加默认提供程序。 或选择“高级创建”,然后输入工作区的详细信息并选择提供程序。

有关详细信息,请参阅创建 Azure Quantum 工作区

量子计算中的资源估算

在量子计算中,资源估计是理解资源的能力,即给定算法所需的量子比特数、量子门数、处理时间等,假设 (或采用作为参数) 某些硬件特征。 了解量子解决方案所需的量子比特数以及量子比特技术之间的差异,创新者可以准备和优化其量子解决方案,以便在将来缩放的量子计算机上运行,并最终加速其量子影响。

Azure Quantum 提供第一方资源估计目标,该目标计算并输出程序的时钟执行时间和物理资源估计值,前提是它在容错错误更正的量子计算机上执行。 Azure Quantum 资源估算器专为扩展量子 (后 NISQ、容错系统) 而设计,可用于评估体系结构决策、比较量子比特技术并确定执行给定量子算法所需的资源。 可以从预定义的容错协议中进行选择,并指定基础物理量子比特模型的假设。

Azure Quantum 资源估算器通过假设量子比特参数、量子纠错 (QEC) 代码以及错误预算来计算布局后的物理资源估计。 它采用 量子中间表示 (QIR) 程序作为输入,因此支持任何翻译为 QIR 的语言,例如,可以将 Azure Quantum 资源估算器与常用的量子 SDK 和语言(如 Q# 和 Qiskit)配合使用。

Azure Quantum 资源估算器采用一组输入,其中包含预定义的值,以便轻松入门:

  • 物理量子比特参数
  • 量子纠错 (QEC) 方案
  • 错误预算

有关详细信息,请参阅 Azure Quantum 资源估算器 参考页。

什么是 Q# 和 Quantum 开发工具包?

Microsoft Quantum 开发工具包 (QDK) 是 Azure Quantum 的开源开发工具包。 它内置于 Azure Quantum 门户,可在其中使用托管的 Jupyter Notebook 开发程序。 还可以将 QDK 安装到自己的本地环境,并使用 Azure Quantum 服务联机和脱机工作。 QDK 包含量子编程语言 Q#,这是一种高级编程语言,可让你将工作重点放在算法和应用程序级别上,以创建量子程序。

Quantum 开发工具包

QDK 提供了一组工具,可在量子软件开发过程中为你提供帮助:

  • 即用型库,有助于保持代码的高水准,其中包括实现许多量子算法通用的模式的“标准”库,以及特定于领域的库,例如化学和机器学习。
  • 本地和基于云的量子计算模拟器用于模拟当前和未来的量子计算机,以便可以运行和调试使用 Q# 编写的量子算法。
  • 噪声模拟器允许在噪声和稳定器表示形式的影响下模拟 Q# 程序的行为。
  • Visual Studio 2022Visual Studio Code 的扩展,以及与 Jupyter Notebook 的集成。
  • Python 和其他 .NET 语言的互操作性,以及与 QiskitCirq 的集成,因此已经使用其他开发语言的量子开发人员也可以在 Azure Quantum 上运行他们的线路。

注意

Azure Quantum 是一个灵活的生态系统。 可以在不显式调用任何 Q# 代码的情况下,在 Azure Quantum 上运行 Python 代码,例如提交 Qiskit 或 Cirq 线路,或提交优化问题。 若要使用这些功能,必须安装 azure-quantum Python 包

量子编程语言 Q#

为何使用量子编程语言? 简而言之,因为你要编写算法,而不是电路。

量子程序可以被视为一组特定的传统子例程,在调用时,可以与量子系统交互来执行计算;用 Q# 编写的程序不会直接对量子状态进行建模,而是描述传统控制计算机如何与量子比特交互。 这使你完全不知道每台目标计算机上的量子状态是什么,这可能会根据不同计算机有不同的解释。 可以编写代码一次,然后针对同一系列的多个目标运行它(无需更改或仅需少量更改),这样你就可以专注于算法级别的编程。

可以使用 Jupyter Notebook 在 Azure Quantum 门户中使用 Q# 或 Python 开发量子程序,也可以使用你喜欢的 IDE 在本地环境中开发。 这两种环境都使你能够通过 Azure Quantum 服务将作业提交到量子硬件,或使用基于云的量子模拟器或本地量子模拟器。 有关详细信息,请参阅 运行 Q# 程序的不同方式

量子软件开发工作流

Azure Quantum 提供了最佳的开发环境,可以同时为多个平台创建量子算法,同时保留为特定系统优化相同算法的灵活性。 可以从 Qiskit、Cirq 和 Q# 等量子编程语言中进行选择,并在多个量子系统上运行算法。 借助 Azure Quantum,可以轻松地同时探索当今的量子系统,并为未来的规模量子系统做好准备。

下图显示了量子程序从构思到在 Azure Quantum 上完成实现的阶段,以及每个阶段 QDK 提供的工具。

qdk 工作流

  1. 编写量子代码。 可以使用 Azure Quantum 工作区中提供的 托管 Jupyter Notebook 编写 Q# 程序。 如果更喜欢本地开发环境,可以使用适用于 Visual Studio、Visual Studio Code 或 Jupyter Notebook 的 QDK 扩展创建 Q# 程序

  2. 使用库来保持代码的精简程度。 量子库可帮助你保持代码的精简程度,在执行中完成大量繁重的工作,使你能够专注于算法的逻辑。

  3. 与传统软件集成。 使用 Quantum 开发工具包,可以将 Q# 程序与 Python 和 .NET 集成,从而使量子软件开发人员能够利用过去 70 年中传统计算的众多进步。 还可以在无需进行任何更改的情况下重用和提交现有的 Qiskit 和 Cirq 源代码。

  4. 在模拟中运行量子代码。 编写程序后,需要使用量子模拟器(用于模拟量子系统行为的传统程序),以便运行程序的一个小实例,并查看它的功能,而无需访问实际的硬件。

  5. 估算资源。 运行量子硬件之前,需要确定程序是否可以在现有硬件上运行。 可以使用 Azure Quantum 资源估算器 来告知所需的物理资源估算以及程序需要多长时间。

  6. 在量子硬件上运行代码。 最后一步是使用 Azure Quantum 在量子硬件上运行你的程序!

注意

可以对工作流的所有步骤使用相同的 Q# 代码。 简而言之,可能必须调整代码的某些部分,以适应当前硬件的限制。 但从长远来看,你将能够在各种模拟器和硬件提供商之间进行切换,而无需修改任何代码。

Azure Quantum 上可用的提供程序

Azure Quantum 提供了业界领先公司当前提供的一些最引人注目、最多样化的量子资源。 Azure Quantum 当前与以下提供商合作,使你能够在真实硬件上运行 Q# 量子程序,并可以选择在模拟的量子计算机上测试代码。

量子计算提供程序

选择最适合你的问题特征和需求的提供程序。

  • Quantinuum:离子阱系统,具有高保真特性、完全连接的量子比特、低错误率、量子比特重用,并且能够执行中间线路测量。
  • IONQ:一种可动态重新配置的离子阱量子计算机,最多支持 11 个完全连接的量子比特,可让你在任何一对量子比特之间运行双量子比特门。
  • Rigetti:基于门的超导处理器,利用 量子中间表示 (QIR) 来实现低延迟和并行执行。
  • Pasqal:基于中性原子的量子处理器在室温下运行,具有长相干时间和令人印象深刻的量子比特连接性。 现可预注册 Azure Quantum 的 Pasqal 个人预览版
  • Quantum Circuits, Inc:全堆栈超导线路,具有可实现纠错、与编码无关的纠缠门的实时反馈。 现可预注册 Azure Quantum 的 QCI 个人预览版

有关每个提供商的规范的详细信息,请参阅完整的量子计算目标列表

优化提供程序

对于优化解决方案,你可以选择以下可用的提供程序:

  • 1QBit:一种迭代启发式算法,使用搜索技术来解决 QUBO 问题。
  • Microsoft QIO:一组重新表述优化问题的目标,其灵感来自数十年的量子研究。
  • Toshiba SQBM+: Toshiba Simulated Quantum Bifurcation Machine 是一款由 GPU 驱动的 ISING 计算机,可快速解决大规模组合优化问题。

有关每个提供商的规范的详细信息,请参阅完整的优化目标列表

后续步骤

开始使用 Azure Quantum: