Controle e economia de custos - Amazon Braket

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Controle e economia de custos

dica

Aprenda os fundamentos da computação quântica com AWS! Inscreva-se no Amazon Braket Digital Learning Plan e ganhe seu próprio selo digital após concluir uma série de cursos de aprendizado e uma avaliação digital.

Com o Amazon Braket, você tem acesso a recursos de computação quântica sob demanda, sem compromisso prévio. Você paga somente pelo que usar. Para saber mais sobre precificação, consulte página de precificação.

Definindo limites de gastos para o Amazon Braket QPUs

Os limites de gastos do Amazon Braket fornecem controles opcionais de custo por dispositivo para unidades de processamento quântico (). QPUs

Como os limites de gastos funcionam: o Amazon Braket monitora seus gastos cumulativos e valida cada solicitação de criação de tarefas em relação ao seu limite configurado. Se o custo estimado de uma tarefa exceder seu limite de gastos restante, o Amazon Braket rejeitará a tarefa imediatamente com um erro de validação. Opcionalmente, você pode configurar um período de tempo para seu limite de gastos. Ao configurar um período de tempo, você pode garantir que as tarefas só possam ser enviadas nesse período especificado. As tarefas enviadas fora do período de tempo serão rejeitadas.

Design opcional: os fluxos de trabalho existentes permanecerão inalterados, a menos que você habilite explicitamente os controles. Você pode remover todas as restrições excluindo o limite de gastos.

nota

Os limites de gastos se aplicam somente às tarefas de QPU de trabalho híbrido e sob demanda. Eles excluem simuladores, notebooks gerenciados, custos de instância do Hybrid Job EC2 e reservas do Braket Direct. Para um gerenciamento abrangente de custos em todos os serviços da AWS, continue usando AWS Budgets.

Lista de ações de limite de gastos

Pesquisar

Com o seguinte comando da AWS CLI, você pode pesquisar e listar os limites de gastos em uma região específica da AWS e para um dispositivo Braket específico.

aws --region {device_region} braket search-spending-limits --filters name=deviceArn,operator=EQUAL,values={device_arn}
Criar

Com o seguinte comando da AWS CLI, você pode criar um novo limite de gastos para um dispositivo quântico específico em uma região específica. A solicitação será rejeitada se já existir um limite de gastos para o dispositivo.

aws --region {device_region} braket create-spending-limit --device-arn {device_arn} --spending-limit {max_spend}
Atualizar

Com o seguinte comando da AWS CLI, você pode atualizar um limite de gastos existente para um novo valor máximo de gastos. A solicitação será rejeitada se a soma do gasto atual e do gasto em fila já for maior do que o novo gasto máximo solicitado.

aws --region {device_region} braket update-spending-limit --spending-limit-arn {spending_limit_arn} --spending-limit {new_max_spend}

Você pode fornecer um período de tempo em vez ou além do novo gasto máximo, como no exemplo acima.

Excluir

Com o seguinte comando da AWS CLI, você pode excluir um limite de gastos existente.

aws --region {device_region} braket delete-spending-limit --spending-limit-arn {spending_limit_arn}

Você pode fornecer um período de tempo em vez ou além do novo gasto máximo, como no exemplo acima.

Embora opcional, sempre especifique o parâmetro da região como uma prática recomendada. Os comandos executados em uma região diferente da do dispositivo falharão ou, no caso deSearchSpendingLimits, retornarão resultados incorretos.

Para obter mais exemplos sobre como usar limites de gastos, consulte o exemplo de caderno.

Como funciona a validação de tarefas

Quando a conta da AWS envia uma CreateQuantumTask solicitação válida, ela está sujeita ao seguinte comportamento de bloqueio. Observação: o orçamento restante é a diferença entre o limite de gastos e a soma dos gastos atuais e em fila. (Veja a próxima seção)

  • Caso 1: Não há limite de gastos para o dispositivo de tarefas: a tarefa foi criada.

  • Caso 2: Há um limite de gastos para o dispositivo de destino e o horário atual está dentro do período de tempo do limite de gastos:

    • Se o custo estimado da tarefa for menor ou igual ao orçamento restante: CreateQuantumTask for bem-sucedido, a tarefa será criada.

    • Se o custo estimado for maior que o orçamento restante: CreateQuantumTask falha e nenhuma tarefa será criada.

  • Caso 3: Há um limite de gastos para o dispositivo de destino e o horário atual está fora do período do limite de gastos: CreateQuantumTask falha e nenhuma tarefa é criada.

Como o orçamento restante é calculado

O orçamento restante é a diferença entre o limite de gastos e a soma dos gastos atuais e dos gastos em fila.

Quando uma tarefa é criada para um dispositivo com limite de gastos, o gasto na fila é aumentado pelo custo estimado da tarefa. Esse evento está listado na primeira linha da tabela a seguir. A tabela a seguir mostra o que acontece com o gasto na fila e o gasto atual, dependendo da progressão da tarefa.

Antigo estado de tarefa quântica

Novo estado de tarefa quântica

Alterar para gastos em fila

Alteração nos gastos atuais

-

CREATED

Aumentado pelo custo estimado

Nenhuma alteração

CREATED

QUEUED

Nenhuma alteração

Nenhuma alteração

Any

RUNNING (Em execução)

Nenhuma alteração

Nenhuma alteração

Any

CANCELANDO

Nenhuma alteração

Nenhuma alteração

CANCELANDO

CANCELADO

Reduzido pelo custo estimado

Sem alteração

Any

FAILED

Reduzido pelo custo estimado

Nenhuma alteração

RUNNING (Em execução)

CONCLUÍDO

Reduzido pelo custo estimado

Aumentado pelo custo estimado (ajustado adequadamente para tarefas parcialmente concluídas)

Casos Edge

P: Ao criar um limite de gastos, as tarefas que já estão na fila contam para o gasto na fila?

R: Não. Tarefas que já foram criadas, colocadas em fila ou em andamento não contam para os gastos em fila de um limite de gastos recém-criado.

P: Reduzir o limite de gastos, ao atualizá-lo, causa o encerramento antecipado de uma tarefa quântica criada, em fila ou em andamento?

R: Não.

P: Atingir a hora de término do limite de gastos causa o encerramento antecipado de uma tarefa quântica criada, em fila ou em andamento?

R: Não. Tarefas criadas, enfileiradas e em andamento podem ser concluídas independentemente do status do limite de gastos.

P: Como a falta de limite de gastos é diferente de um limite de gastos de zero dólares?

R: Nenhum limite de gastos permite criar tarefas quânticas sem restrições. Um limite de gastos com zero dólares bloqueia todas as tarefas quânticas.

P: Um limite de gastos de zero no passado ou no futuro bloqueia toda a criação de tarefas quânticas?

R: Sim.

P: Ao criar um limite de gastos, o custo estimado das tarefas que já estão na fila será contabilizado para o gasto atual quando essas tarefas forem concluídas?

R: Não. Somente as tarefas enviadas enquanto o limite de gastos estiver ativo contam para o gasto acumulado.

Controle de custos quase em tempo real

O Braket SDK oferece a opção de adicionar um rastreamento de custos quase em tempo real às suas workloads quânticas. Cada um de nossos notebooks de exemplo inclui um código de rastreamento de custos para fornecer uma estimativa máxima de custo nas unidades de processamento quântico (QPUs) e nos simuladores sob demanda da Braket. As estimativas de custo máximo serão mostradas em USD e não incluem créditos ou descontos.

nota

As cobranças mostradas são estimativas com base no uso de tarefas do simulador Amazon Braket e da unidade de processamento quântico (QPU). As cobranças estimadas mostradas podem diferir das cobranças reais. As cobranças estimadas não incluem descontos ou créditos, e você pode receber cobranças adicionais com base no uso de outros serviços, como o Amazon Elastic Compute Cloud (Amazon EC2).

Rastreamento de custos para SV1

Para demonstrar como a função de controle de custos pode ser usada, construiremos um circuito Bell State e o executaremos em nosso SV1 simulador. Comece importando os módulos do SDK do Braket, definindo um estado de sino e adicionando a Tracker() função ao nosso circuito:

#import any required modules from braket.aws import AwsDevice from braket.circuits import Circuit from braket.tracking import Tracker #create our bell circuit circ = Circuit().h(0).cnot(0,1) device = AwsDevice("arn:aws:braket:::device/quantum-simulator/amazon/sv1") with Tracker() as tracker: task = device.run(circ, shots=1000).result() #Your results print(task.measurement_counts)
Counter({'00': 500, '11': 500})

Ao executar seu Notebook, você pode esperar a seguinte saída para sua simulação do Bell State. A função de rastreamento mostrará o número de fotos enviadas, as tarefas quânticas concluídas, a duração da execução, a duração da execução faturada e seu custo máximo em dólares americanos. Seu tempo de execução pode variar para cada simulação.

import datetime tracker.quantum_tasks_statistics() {'arn:aws:braket:::device/quantum-simulator/amazon/sv1': {'shots': 1000, 'tasks': {'COMPLETED': 1}, 'execution_duration': datetime.timedelta(microseconds=4000), 'billed_execution_duration': datetime.timedelta(seconds=3)}} tracker.simulator_tasks_cost()
Decimal('0.0037500000')

Usando o rastreador de custos para definir os custos máximos

Você pode usar o rastreador de custos para definir os custos máximos em um programa. Você pode ter um limite máximo de quanto deseja gastar em um determinado programa. Dessa forma, você pode usar o rastreador de custos para criar uma lógica de controle de custos em seu código de execução. O exemplo a seguir usa o mesmo circuito em uma Rigetti QPU e limita o custo a 1 USD. O custo para executar uma iteração do circuito em nosso código é de 0,30 USD. Definimos a lógica para repetir as iterações até que o custo total exceda 1 USD; portanto, o trecho de código será executado três vezes até que a próxima iteração exceda 1 USD. Geralmente, um programa continuaria a iterar até atingir o custo máximo desejado, neste caso, três iterações.

device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3") with Tracker() as tracker: while tracker.qpu_tasks_cost() < 1: result = device.run(circ, shots=200).result() print(tracker.quantum_tasks_statistics()) print(tracker.qpu_tasks_cost(), "USD")
{'arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3': {'shots': 600, 'tasks': {'COMPLETED': 3}}} 1.4400000000 USD
nota

O rastreador de custos não rastreará a duração de tarefas TN1 quânticas que falharam. Durante uma simulação TN1, se seu ensaio for concluído, mas a etapa de contração falhar, sua taxa de ensaio não será mostrada no rastreador de custos.

Melhores práticas para redução de custos

Considere as práticas recomendadas a seguir para usar o Amazon Braket. Economize tempo, minimize os custos e evite erros comuns.

Verificação com simuladores

  • Verifique seus circuitos usando um simulador antes de executá-lo em uma QPU, para que você possa ajustar seu circuito sem incorrer em cobranças pelo uso da QPU.

  • Embora os resultados da execução do circuito em um simulador possam não ser idênticos aos resultados da execução do circuito em uma QPU, você pode identificar erros de codificação ou problemas de configuração usando um simulador.

Restringir o acesso do usuário a determinados dispositivos

  • Você pode configurar restrições que impeçam usuários não autorizados de enviar tarefas quânticas em determinados dispositivos. O método recomendado para restringir o acesso é com o AWS IAM. Para obter mais informações sobre como fazer isso, consulte Restringir acesso.

  • Não recomendamos que você use sua conta de administrador como forma de conceder ou restringir o acesso do usuário aos dispositivos Amazon Braket.

Configurar alarmes de faturamento

  • Você pode definir um alarme de cobrança para receber uma notificação quando sua fatura atingir um limite predefinido. A forma recomendada de configurar um alarme é por meio de AWS Budgets. Você pode definir orçamentos personalizados e receber alertas quando seus custos ou uso excederem o valor orçado. As informações estão disponíveis no AWS Budgets.

Teste tarefas quânticas TN1 com baixa contagem de disparos

  • Os simuladores custam menos do que QPUs, mas certos simuladores podem ser caros se as tarefas quânticas forem executadas com altas contagens de disparos. Recomendamos que você teste suas tarefas TN1 com uma contagem baixa de shot. A contagem de Shot não afeta o custo do SV1 e as tarefas locais do simulador.

Verifique todas as regiões para tarefas quânticas

  • O console exibe tarefas quânticas somente para a sua atual Região da AWS. Ao procurar tarefas quânticas faturáveis que foram enviadas, certifique-se de verificar todas as regiões.

  • Você pode ver uma lista de dispositivos e suas regiões associadas na página de documentação de dispositivos compatíveis.