次の方法で共有


FAQ: Azure Quantum の制限と割り当て

この記事では、Azure Quantum プロバイダーの使用に関する制限とクォータを理解するためのガイドラインについて説明します。

Azure Quantum のクォータとは何ですか?

クォータは、プロバイダーによって定義 targets QPU の使用に関する制限です。 クォータは、プロバイダーのシステムの整合性を維持しながら、ユーザーの偶発的なコスト超過を防ぐのに役立ちます。

クォータはプロバイダー プランの選択に基づいており、通常はサポート チケットを使用して増やすことができます。 クォータによって追跡される使用量は、必ずしもコストやクレジットに関連付けられているわけではありませんが、関連付けられている可能性があります。

Azure Quantum でクォータはどのように定義されますか?

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

ノート

プロバイダーが一覧に表示されない場合、そのプロバイダーはクォータを定義しません。

残りのクォータを表示するにはどうすればよいですか?

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

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

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

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 を含む HQC の制限もあり、そのうちのが使用されます。

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

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

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

  • Monthly (月単位): 毎月 1 日に使用量がリセットされます。
  • 無限: 使用状況はリセットされません (Azure ポータル ビューでは 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 ポータル ビューでは 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 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))

より多くのクォータを要求するにはどうすればよいですか?

サポート チケットを発行することで、クォータの引き上げを要求できます。

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

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

  3. 左側のパネルの操作の下にある、クォータブレードに移動します。

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

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

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