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

什么是 Q# Azure Quantum Development Kit?

Azure Quantum Development Kit (新式 QDK) 是与 Azure Quantum 服务进行交互所需的 SDK。 Quantum Development Kit使用 ,可以生成在 Azure Quantum 中的量子硬件上运行的量子程序。

注意

2024 年 6 月 30 日之后将不再支持 Microsoft Quantum Development Kit (经典 QDK) 。 如果你是现有的 QDK 开发人员,我们建议你过渡到新的 Azure Quantum Development Kit (新式 QDK) ,以继续开发量子解决方案。 有关详细信息,请参阅 将 Q# 代码迁移到新式 QDK

新式 QDK 是唯一可用于 Fault-Tolerant 量子计算 (FTQC) 的开发工具包。 使用新式 QDK,可以:

  • 调试代码: 它提供了一个量子计算调试器,可以单步执行经典代码和量子代码。 它与稀疏的内存中模拟器配对,可提供多达数千个逻辑量子比特的快速模拟。

  • 选择平台: 新式 QDK 在 Web 浏览器中运行,无需安装,并在电脑、Mac 或 Linux 计算机上运行其 VS Code 扩展。

  • 更快地编写代码: 使用 IntelliSense 突出显示和智能代码完成语法,并编写由 Copilot 辅助的整个代码块。

  • 在所选硬件上运行: QDK 与 Azure Quantum 无缝集成,可在各种量子计算机和模拟器上运行算法。

  • FTQC 设计: 它与最先进的 Azure Quantum 资源估算器配对,提供了一种专为量子计算设计的语言, Q#使你无需考虑量子比特体系结构、抽象化硬件,并允许混合经典计算和量子计算,所有这些都由你 target正在处理的量子计算机执行。

提示

若要加速量子计算之旅,检查 Azure Quantum 代码,这是 Azure Quantum网站的独特功能。 在这里,可以运行内置 Q# 示例或自己的 Q# 程序,从提示生成新 Q# 代码,单击一下即可在 VS Code for the Web 中打开并运行代码,并询问 Copilot 有关量子计算的任何问题。

量子编程语言 Q#

新式 QDK 包括量子编程语言 Q#,这是一种高级 开源 编程语言,可用于将工作重点放在算法级别以创建量子程序。

Q# 是一种 开源的高级编程语言,用于开发和运行量子算法。 它是 QDK) (的一部分 Quantum Development Kit ,旨在与硬件无关,可扩展到各种量子应用程序,并优化执行。

作为一种编程语言,Q# 从 Python、C# 和 F# 中汲取了熟悉的元素,并支持使用循环、if/then 语句和常用数据类型编写程序的基本过程模型。 它还引入了新的特定于量子的数据结构和操作,例如 重复-直到成功,这允许量子计算和经典计算的集成。 例如,经典程序的流控制可以基于量子测量的结果。

编写算法时,量子编程语言应满足语言、编译器和运行时的以下要求:

  • 抽象量子比特。 量子算法使用不绑定到特定硬件或布局的量子比特。 编译器和运行时处理从程序量子比特到物理量子位的映射。
  • 量子计算和经典计算。 在通用量子计算机中,执行经典计算和量子计算的能力至关重要。
  • 尊重物理定律。 量子算法遵循量子物理规则。 例如,它们无法直接复制或访问量子比特状态。

有关详细信息,请参阅Q#量子编程语言用户指南

Azure 入门 Quantum Development Kit

有多种方法可以开始使用量子编程。 可以选择最符合需求的选项。

提示

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

Azure Quantum 网站

Azure Quantum 网站是开始使用量子编程的最简单方法。 使用 Azure Quantum 网站中的 联机代码编辑器 ,无需设置即可在浏览器中运行 Q# 代码,并请求 Copilot 寻求帮助。 只需在联机代码编辑器中单击一下,即可在 WEB 上的 VS Code 中打开代码,并继续在预配置的量子环境中免费工作。

注意

Azure Quantum 网站是免费的,不需要 Azure 帐户。

Azure Quantum 门户中的示例

如果想要开始练习和编写 Q# 程序而不想安装其他软件,可使用 Azure 门户的 Azure Quantum 工作区中提供的托管 Jupyter Notebook。 示例库包含许多带批注的笔记本示例,你可选择想要了解的示例,然后在基于云的模拟器或真实的量子计算机上运行它。

注意

若要使用托管的 Jupyter Notebook,需要一个 Azure 帐户。 如果没有 Azure 帐户,可以 免费创建一个帐户

本地开发环境

如果更喜欢本地开发环境,可以安装适用于Visual Studio Code的新式 QDK 扩展。 新式 QDK 扩展为 Q#提供功能齐全的开发环境,包括语法突出显示、实时编码反馈和调试。

若要开始使用新式 QDK 扩展,请参阅以下 教程

提示

新式 QDK 包含一组内置 Q# 示例,可用于详细了解 Q# 和 量子计算。 若要查看示例,请打开一个新 Q# 文件并键入 sample,然后从选项列表中选择要查看的示例。

量子开发工作流

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

显示量子编程开发工作流的示意图。

选择开发环境

在首选的开发环境中运行量子程序。 可以使用 Azure Quantum 网站中的联机代码编辑器、Azure 门户的 Azure Quantum 工作区中提供的托管 Jupyter Notebook,或者使用自己的本地开发环境。

编写量子程序

QDK 提供对 Q#、、 QiskitCirq 语言的支持,用于量子计算。

若要开始,可以遵循 Q# 教程并探索量子概念,例如 叠加纠缠Grover 的量子算法和其他量子现象。

与 Python 集成

QDK 允许将程序与 Python 集成 Q# 。 可以使用 Python 程序 调用 Q# 操作。

估计资源

运行量子硬件之前,需要确定程序是否可以在现有硬件上运行,以及将会消耗多少资源。

使用 Azure Quantum 资源估算器,可以评估体系结构决策、比较量子比特技术并确定执行给定量子算法所需的资源。 可以从预定义的容错协议中进行选择,并指定基础物理量子比特模型的假设。

有关详细信息,请参阅 运行第一个资源估算

注意

Azure Quantum 资源估算器是免费的,不需要 Azure 帐户。

在模拟器中运行程序

编译和运行量子程序时,QDK 会创建量子模拟器的实例,并将 Q# 代码传递给它。 该模拟器使用 Q# 代码创建量子比特(量子粒子的模拟)并应用转换来修改其状态。 然后将模拟器中的量子操作结果返回到程序。 在模拟器中隔离 Q# 代码可确保算法遵循量子物理学定律,还确保这些算法可在量子计算机上正确运行。

将作业提交到 Azure Quantum 服务

可以通过首选的开发环境(本地和联机)将程序 (也称为作业) 提交 Q# 到 Azure Quantum。 有关详细信息,请参阅如何提交 Q# 作业。 还可以运行并提交以 Qiskit 和 Cirq 语言编写的量子线路。

Azure Quantum 提供当今行业领导者提供的一些最引人注目和最多样化的量子硬件。 有关受支持的硬件提供程序的当前列表,请参阅量子计算提供程序

注意

基于云的 Quantinuum H 系列模拟器target 无需 Azure 帐户即可使用。 若要将作业提交到其余 Azure Quantum 提供商,需要一个 Azure 帐户和量子工作区。 如果没有量子工作区,请参阅 创建 Azure Quantum 工作区

下图显示提交作业后的基本工作流:

显示将作业提交到 Azure Quantum 后工作流的示意图。

如果想要了解详细信息,Quantum Katas 详细地介绍了有关量子计算概念(例如常见的量子操作)和量子比特操作方法的信息。