Azure Quantum クォータ

Azure Quantum クォータは、QPU の使用に対するプロバイダー定義の制限です targets。 クォータは、プロバイダーのシステムの整合性を維持しながら、ユーザーの偶発的なコスト超過を防ぐのに役立ちます。 クォータはプロバイダー プランの選択に基づいており、通常はサポート チケットを使用して増やすことができます。
クォータによって追跡される使用量は、必ずしもコストまたはクレジットに関連付けられているわけではありませんが、関連付けられていることもあります。

ヒント

初めて使用するユーザーは、参加している各量子ハードウェア プロバイダーで使用するための無料の $500 (USD)Azure Quantum クレジットを自動的に取得します。 クレジットをすべて消費し、不足した場合は、Azure Quantum クレジット プログラムにお申し込みいただけます。

クォータの計算方法

Azure Quantum では、ハードウェアおよびソフトウェア プロバイダーが自社のオファリングのクォータを決定し、管理します。 クォータの詳細については、各プロバイダーのリファレンス ページを参照してください。 プロバイダーが次の一覧に表示されない場合、そのプロバイダーはクォータを定義しません。

クォータの残りの確認

Azure Quantum の使用量とクォータは、各プロバイダーの使用量単位に応じて測定されます。 一部のプロバイダーはクォータを定義せず、表示する使用状況情報を持っていません。

注意

課金プランではなく Azure Quantum クレジット プランを使用している場合、クォータ情報は割り当てられたクレジットに対応付けられています。 その場合、クォータでは受け取ったクレジットの合計数が一覧表示されます。

Azure portalを使用してクォータを追跡する

  1. ご利用の Azure サブスクリプションの資格情報を使って、Azure portal にサインインします。
  2. ご利用の Azure Quantum ワークスペースを選択します。
  3. 左側パネルにある [操作][Credits and quotas](クレジットとクォータ) ブレードに移動し、[クォータ] タブを選択します。
  4. 選択した各プロバイダーの消費済みクォータと残りのクォータを確認します。 クォータ情報が 3 つの列に表示されていることに注意してください。
  • Workspace usage (ワークスペース使用量): 現在のワークスペースの使用制限です。 各 Azure Quantum ワークスペースには、使用制限があります。
  • Azure subscription usage (Azure サブスクリプションの使用量): 現在のリージョンとサブスクリプション内のすべてのワークスペースの使用量です。 すべてのクォータがこのレベルで追跡されるわけではありません。
  • Cadence (更新頻度): クォータが更新される期間。 月単位の場合は、毎月 1 日に使用量がリセットされます。 1 回限りの場合、使用量はリセットされません。

Azure portal の [クォータ] ブレード

このビューには、Azure Quantum クレジットがクォータとして含まれています。 これによりユーザーは、プロバイダーが追跡する単位と、関連付けられている間隔に応じて表示されるクレジット情報を確認できます。

Azure CLI を使用してクォータを追跡する

クォータは、Azure コマンドライン インターフェイス (Azure CLI) を使用して確認できます。 詳細については、「Azure CLI を使用して Quantum ワークスペースを管理する」を参照してください。

  1. Azure CLI quantum 拡張機能をインストールします。 コマンド プロンプトを開き、次のコマンドを実行します。以前のバージョンが既にインストールされている場合は、これにより拡張機能のアップグレードも実行されます。

    az extension add --upgrade -n quantum
    
  2. 自分の資格情報を使用して Azure にログインします。 ご自分のアカウントに関連付けられているサブスクリプションの一覧が表示されます。

    az login
    
  3. 使用するサブスクリプションを指定します。

    az account set -s <Your subscription ID>
    
  4. 使用するワークスペースを選択します。 リソース グループと場所も指定する必要があることに注意してください。

    az quantum workspace set \
        -g MyResourceGroup \
        -w MyWorkspace \
        -l MyLocation \
        -o table
    
  5. 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 の制限は 800 HQC で、そのうち 0 が使用されています。

"Scope" 列は、クォータが現在のワークスペースとサブスクリプションのどちらを参照しているかを示しています。

  • Workspace (ワークスペース): クォータは個々のワークスペースに対して追跡されます。
  • Subscription (サブスクリプション): クォータは、同じサブスクリプション/リージョン内のすべてのワークスペースについてまとめて追跡されます。

"Period" 列は、クォータが更新される期間を示しています。

  • Monthly (月単位): 毎月 1 日に使用量がリセットされます。
  • 無限: 使用状況はリセットされません (Azure portal ビューでは 1 回限りとも呼ばれます)。

Python SDK を使用してクォータを追跡する

  1. 最新バージョンの azure-quantum Python パッケージをインストールします。

  2. 新しい 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") 
    )
    
  3. 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 、クォータが現在のワークスペースまたはサブスクリプションを参照しているかどうかを示します。

  • Workspace (ワークスペース): クォータは個々のワークスペースに対して追跡されます。
  • Subscription (サブスクリプション): クォータは、同じサブスクリプション/リージョン内のすべてのワークスペースについてまとめて追跡されます。

このアイテムは period 、クォータが更新された期間を示します。

  • Monthly (月単位): 毎月 1 日に使用量がリセットされます。
  • 無限: 使用状況はリセットされません (Azure portal ビューでは 1 回限りとも呼ばれます)。

ヒント

メソッドは 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 mutiple 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 クレジット プランを使用していない場合は、サポート チケットを作成することでクォータの増加をリクエストできます。

  1. ご利用の Azure サブスクリプションの資格情報を使って、Azure portal にサインインします。

  2. ご利用の Azure Quantum ワークスペースを選択します。

  3. 左側パネルにある [操作][Credits and quotas](クレジットとクォータ) ブレードに移動し、[クォータ] タブを選択します。

  4. [クォータ] ページの [Increase](増加) ボタンを押すか、ポータルのサイド パネルで [New support request](新しいサポート リクエスト) ボタンを選択します。

  5. サポート チケットが開きます。 次の手順に従ってリクエストに記入します。

    1. イシューには、「Azure Quantum クォータのオーバーライド リクエスト」と記入します
    2. [Isuue Type] (イシューの種類) で、[技術] を選択します
    3. ワークスペースが存在するサブスクリプションを選択します
    4. [すべてのサービス] を選択します
    5. [サービスの種類] として [Azure Quantum – Preview](Azure Quantum – プレビュー) を選択します
    6. [リソース] で、クォータを変更したいワークスペースを選択します
    7. 問題の種類として [その他] を選択します
    8. [ソリューション]に進み、さらに [詳細] に進みます
    9. すべてのフィールドに入力します [Description](説明) に、次の情報を含めます。
    • クォータを変更するプロバイダーの名前
    • クォータを変更するのは、サブスクリプション スコープとワークスペース スコープのどちらか
    • 変更するクォータと、変更するクォータの量
    • クォータを増やす理由を記入すると、Microsoft が決定を下す際に役立つ場合があります。

次の手順