Поделиться через


Управление квотами в Azure Quantum

Квоты Azure Quantum — это ограничения, определенные поставщиком для использования ЦП targets. Квоты помогают предотвратить случайное превышение затрат для пользователя, а также сохранение целостности систем поставщика. Квоты основаны на выборе плана поставщика и обычно могут быть увеличены с помощью запроса в службу поддержки.
Использование, отслеживаемое с помощью квот, необязательно должно быть привязано к стоимости или кредиту, но может быть сопоставлено с ними.

Совет

При создании рабочей области Azure Quantum вы автоматически получаете бесплатные кредиты Azure Quantum для каждого поставщика квантового оборудования. Вы можете использовать кредиты Azure Quantum для отправки первых квантовых программ в реальное квантовое оборудование.

Расчет квот

В Azure Quantum поставщики оборудования и программного обеспечения определяют квоты для своих предложений и управляют ими. Подробные сведения о квоте см. на странице справочника по каждому поставщику. Если поставщик не отображается в следующем списке, этот поставщик не определяет квоты.

Просмотр оставшихся квот

Использование и квоты Azure Quantum измеряются в единицах использования каждого поставщика. Некоторые поставщики не определяют квоты и не будут отображать сведения об использовании.

Примечание.

Если вы используете план "Кредиты Azure Quantum", а не план выставления счетов, сведения о квотах сопоставляются с выделенными кредитами. В этом случае в квоте указывается общее количество полученных кредитов.

Отслеживание квоты с помощью портал Azure

  1. Войдите на портал Azure, используя учетные данные вашей подписки Azure.
  2. Выберите рабочую область Azure Quantum.
  3. На левой панели в разделе "Операции" перейдите на вкладку "Кредиты и квоты " и выберите колонку "Квоты ".
  4. Просмотрите используемые и оставшиеся квоты для каждого выбранного поставщика. Обратите внимание, что сведения о квоте отображаются в трех столбцах.
  • Использование рабочей области: ограничение использования для текущей рабочей области. Каждая рабочая область Azure Quantum имеет ограничение на использование.
  • Использование подписки Azure: использование всех рабочих областей в текущем регионе и подписке. На этом уровне отслеживаются не все квоты.
  • Периодичность: период продления квоты. Если задано "Ежемесячно", объем использования сбрасывается 1-го числа каждого месяца. Если задано "Однократно", объем использования никогда не сбрасывается.

Снимок экрана: колонка квот в портал Azure.

В этом представлении в качестве квот включены кредиты Azure Quantum. Это позволяет пользователю просматривать сведения о кредитах, выраженные в единицах, отслеживаемых поставщиком, а также связанный интервал.

Отслеживание квоты с помощью Azure CLI

Квоты можно просмотреть с помощью Azure CLI. Дополнительные сведения см. в статье Управление квантовыми рабочими областями с помощью Azure CLI.

  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 показано, что в учетной записи есть ограничение в 8333334 qgs для IonQ, из которого использовано 33334 qgs. Учетная запись также имеет ограничение в 800 кредитов HQC для Quantinuum, из которых использовано 0.

Значение в столбце Область указывает, относится ли квота к текущей рабочей области или подписке.

  • Рабочая область: отслеживается для отдельной рабочей области.
  • Подписка: отслеживается для всех рабочих областей в одной подписке или регионе.

Значение в столбце Период указывает период продления квоты.

  • Ежемесячно: объем использования сбрасывается 1-го числа каждого месяца.
  • Бесконечно: использование никогда не сбрасывается (также называется однократным в представлении портал Azure).

Отслеживание квоты с помощью пакета SDK для Python

  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 показано, что в учетной записи есть ограничение в 8333334 qgs для IonQ, из которого использовано 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", вы можете запросить увеличение квоты, отправив запрос в службу поддержки.

  1. Войдите на портал Azure, используя учетные данные вашей подписки Azure.

  2. Выберите рабочую область Azure Quantum.

  3. В левой области в разделе Операции перейдите в колонку Кредиты и квоты и откройте вкладку Квоты.

  4. Нажмите кнопку Увеличить на странице квоты или нажмите кнопку Создать запрос на поддержку на боковой панели на портале.

  5. Откроется запрос в службу поддержки. Выполните приведенные ниже действия, чтобы заполнить запрос.

    1. Опишите проблему как Запрос на переопределение квоты Azure Quantum.
    2. В качестве типа проблемы укажите Техническая.
    3. Выберите подписку, в которой находится рабочая область.
    4. Выберите Все службы.
    5. В качестве типа службы выберите Azure Quantum — предварительная версия.
    6. Выберите рабочую область, для которой нужно изменить квоту, в разделе Ресурс.
    7. В качестве типа проблемы укажите Другое.
    8. Выберите Решения, а затем — Сведения.
    9. Заполните все поля. В поле Описание укажите следующие сведения:
    • Имя поставщика, для которого требуется изменить квоты
    • Какие квоты требуется изменить: для области подписки или рабочей области
    • Какие квоты требуется изменить и на сколько
    • Обоснование причины увеличения квоты может помочь нам в некоторых случаях принять правильное решение.