你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
如何在 Azure Quantum 中管理配额
Azure Quantum 配额是提供程序定义的 QCPU targets使用情况限制。 配额有助于防止用户的意外成本超额,同时保留提供程序系统的完整性。 配额基于提供商计划选择,通常可以通过支持票证增加。
配额跟踪的使用量不一定与成本或额度相关,但有可能是关联的。
提示
首次用户会自动获得 500 美元的免费 Azure Quantum 信用额度 ,以便与每个参与的量子硬件提供商一起使用。
配额是如何计算的
在 Azure Quantum 中,硬件和软件提供商会定义并控制其产品/服务的配额。 有关详细的配额信息,请参阅每个提供程序参考页。 如果提供程序未显示在以下列表中,则该提供程序不定义任何配额。
查看剩余配额
Azure Quantum 使用量和配额是根据每家提供商的使用单位来度量的。 某些提供程序未定义任何配额,并且不会显示使用情况信息。
注意
如果使用的是 Azure Quantum 额度计划而不是计费计划,则配额信息将映射到分配的额度。 在这种情况下,配额会列出你已收到的额度总数。
使用 Azure 门户 跟踪配额
- 使用 Azure 订阅的凭据登录到 Azure 门户。
- 选择你的 Azure Quantum 工作区。
- 在左侧面板中的“操作”下,转到“额度和配额”选项卡,然后选择“配额”边栏选项卡。
- 请参阅每个所选提供程序的已使用配额和剩余配额。 请注意,配额信息显示在三列中。
- 工作区使用量:当前工作区的使用量限制。 每个 Azure Quantum 工作区都有使用限制。
- Azure 订阅使用量:当前区域和订阅中所有工作区的使用量。 并非所有配额都在此级别进行跟踪。
- 间隔:续订配额的周期。 如果间隔为按月,则在每月 1 日重置使用量。 如果间隔为一次性,则永远不会重置使用量。
在此视图中,Azure Quantum 额度是作为配额包含的。 这样,用户就可以查看以提供商跟踪的单位和关联的间隔表示的额度信息。
使用 Azure CLI 跟踪配额
可以使用 Azure 命令行接口 (Azure CLI) 查看配额。 有关详细信息,请参阅如何使用 Azure CLI 管理量子工作区。
安装 Azure CLI
quantum
扩展。 打开一个命令提示符并运行以下命令,如果已经安装了旧版本,这也会升级该扩展。az extension add --upgrade -n quantum
使用凭据登录到 Azure。 你将看到与你帐户关联的订阅列表。
az login
指定要使用的订阅。
az account set -s <Your subscription ID>
选择要使用的工作区。 请注意,还需要指定资源组和位置。
az quantum workspace set \ -g MyResourceGroup \ -w MyWorkspace \ -l MyLocation \ -o table
使用
az quantum workspace quotas
命令显示所选工作区的配额信息。az quantum workspace quotas -o table
|Dimension | Holds | Limit | Period | ProviderId | Scope | Utilization| |--------- | ----- | --------- | -------- | ----------| ------------ | -----------| |qgs | 0.0 | 8333334.0 | Infinite | ionq | Subscription | 33334.0| |hqc | 0.0 | 800.0 | Infinite | quantinuum | Subscription | 0.0|
请参阅上面的示例输出。 在本例中,qgs
行显示该帐户的 IonQ 限制为 8333334 qgs
个,已使用 33334 qgs
个。 此外,该帐户的 Quantinuum HQC 数限制为 800
个,已使用 0
个。
“范围”列表明了配额指的是当前工作区还是订阅。
- 工作区:跟踪单个工作区的配额。
- 订阅:跟踪同一订阅/区域中所有工作区的总配额。
“周期”列指示续订配额的周期。
- 按月:在每月 1 日重置使用量。
- 无限:使用永远不会重置(也称为Azure 门户视图中的一次性)。
使用 Python SDK 跟踪配额
安装最新版本的
azure-quantum
Python 包。打开新的 Python 文件。 实例化一个
Workspace
对象,通过该对象可连接到之前在 Azure 中部署的工作区。from azure.quantum import Workspace # Copy the following settings for your workspace workspace = Workspace ( resource_id = "", # Add your resource_id location = "" # Add your workspace location (for example, "westus") )
使用
get_quotas
方法显示所选工作区的配额信息。quotas = workspace.get_quotas()
[{'dimension': 'qgs', 'scope': 'Subscription', 'provider_id': 'ionq', 'utilization': 33334.0, 'holds': 0.0, 'limit': 16666667.0, 'period': 'Infinite'}, {'dimension': 'hqc', 'scope': 'Subscription', 'provider_id': 'quantinuum', 'utilization': 0.0, 'holds': 0.0, 'limit': 40.0, 'period': 'Infinite'}, {'dimension': 'ehqc', 'scope': 'Subscription', 'provider_id': 'quantinuum', 'utilization': 0.0, 'holds': 0.0, 'limit': 160.0, 'period': 'Infinite'}, {'dimension': 'combined_job_hours', 'scope': 'Workspace', 'provider_id': 'Microsoft', 'utilization': 0.0, 'holds': 0.0, 'limit': 20.0, 'period': 'Monthly'}, {'dimension': 'combined_job_hours', 'scope': 'Subscription', 'provider_id': 'Microsoft', 'utilization': 0.011701412083333333, 'holds': 0.0, 'limit': 1000.0, 'period': 'Monthly'}]
请参阅上面的示例输出。 在本例中,qgs
行显示该帐户的 IonQ 限制为 8333334 qgs
个,已使用 33334 qgs
个。 并发作业数是每次可为每个工作区排队的作业数。
该项 scope
指示配额是引用当前工作区还是订阅。
- 工作区:跟踪单个工作区的配额。
- 订阅:跟踪同一订阅/区域中所有工作区的总配额。
该项 period
指示续订配额的时间段。
- 按月:在每月 1 日重置使用量。
- 无限:使用永远不会重置(也称为Azure 门户视图中的一次性)。
提示
该方法 get_quotas
以 Python 字典的形式返回结果。 对于更易于阅读的格式,请使用以下代码示例打印订阅和工作区级别的剩余配额摘要 > 。
复制以下代码以跟踪订阅级别的配额。
# This gathers usage against quota for the various providers (quota is set at the subscription level).
# Note that a provider may have multiple quotas, such as Quantinuum that limits usage of their Emulator.
rigetti_quota = 0
ionq_quota = 0
quantinuum_hqc_quota = 0
quantinuum_ehqc_quota = 0
rigetti_quota_utilization = 0
ionq_quota_utilization = 0
quantinuum_hqc_quota_utilization = 0
quantinuum_ehqc_quota_utilization = 0
for quota in workspace.get_quotas():
if (quota['provider_id'] == 'rigetti'):
rigetti_quota = quota['limit']
rigetti_quota_utilization = quota['utilization']
if (quota['provider_id'] == 'ionq'):
ionq_quota = quota['limit']
ionq_quota_utilization = quota['utilization']
if (quota['dimension'] == 'hqc'):
quantinuum_hqc_quota = quota['limit']
quantinuum_hqc_quota_utilization = quota['utilization']
if (quota['dimension'] == 'ehqc'):
quantinuum_ehqc_quota = quota['limit']
quantinuum_ehqc_quota_utilization = quota['utilization']
print('Rigetti quota use: ', "{:,}".format(rigetti_quota_utilization), '/', "{:,}".format(rigetti_quota))
print('IonQ quota use:', "{:,}".format(ionq_quota_utilization), '/', "{:,}".format(ionq_quota))
print('Quantinuum HQC quota use:', "{:,}".format(quantinuum_hqc_quota_utilization), '/', "{:,}".format(quantinuum_hqc_quota))
print('Quantinuum eHQC quota use:', "{:,}".format(quantinuum_ehqc_quota_utilization), '/', "{:,}".format(quantinuum_ehqc_quota))
复制以下代码以跟踪工作区级别的配额。
# This gathers usage against quota for the various providers for the current workspace
# As there can be multiple workspaces in a subscription, the quota usage for the workspace is less or equal to usage against quota at the subscription level
amount_utilized_rigetti = 0
amount_utilized_ionq = 0
amount_utilized_quantinuum_hqc = 0
amount_utilized_quantinuum_ehqc = 0
for job in workspace.list_jobs():
if (job.details.cost_estimate != None):
for event in job.details.cost_estimate.events:
if (event.amount_consumed > 0):
#print(event.amount_consumed, event.dimension_name, 'on', job.details.provider_id)
if (job.details.provider_id == 'rigetti'):
amount_utilized_rigetti += event.amount_consumed
if (job.details.provider_id == 'ionq'):
amount_utilized_ionq += event.amount_consumed
if (job.details.provider_id == 'quantinuum'):
#print(event.amount_consumed, event.dimension_name, 'on', job.details.provider_id)
#print(event)
if (event.dimension_id == 'hqc'):
amount_utilized_quantinuum_hqc += event.amount_consumed
else:
amount_utilized_quantinuum_ehqc += event.amount_consumed
print(job.id, event)
print('Rigetti quota use in current workspace: ', "{:,}".format(amount_utilized_rigetti), '/', "{:,}".format(rigetti_quota))
print('IonQ quota use in current workspace:', "{:,}".format(amount_utilized_ionq), '/', "{:,}".format(ionq_quota))
print('Quantinuum HQC quota use in current workspace:', "{:,}".format(amount_utilized_quantinuum_hqc), '/', "{:,}".format(quantinuum_hqc_quota))
print('Quantinuum eHQC quota use in current workspace:', "{:,}".format(amount_utilized_quantinuum_ehqc), '/', "{:,}".format(quantinuum_ehqc_quota))
请求额外配额
如果你使用的不是 Azure Quantum 额度计划,则可以通过提交支持票证来请求提高配额。
使用 Azure 订阅的凭据登录到 Azure 门户。
选择你的 Azure Quantum 工作区。
在左侧面板中的“操作”下,转到“额度和配额”边栏选项卡,然后选择“配额”选项卡。
按配额页上的“提高”按钮,或选择门户边侧面板上的“新建支持请求”按钮。
此时会打开支持票证。 按照以下步骤填写请求。
- 将问题描述为“Azure Quantum 配额替代申请”
- 选择“技术”作为“问题类型”
- 选择工作区所在的订阅
- 选择“所有服务”
- 选择“Azure Quantum – 预览”作为“服务类型”
- 在“资源”下,选择要更改其配额的工作区
- 选择“其他”作为问题类型
- 转到“解决方案”,然后再次转到“详细信息”
- 填写所有字段。 在“说明”中包含以下内容:
- 要更改其配额的提供商的名称
- 是要更改订阅范围还是工作区范围的配额
- 要更改哪些配额,要更改多少
- 提供提高配额的理由在某些情况下可帮助我们做出决定。