

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Gestione delle quote
<a name="quota-management"></a>

AWS Batch pianifica i lavori in base alle risorse richieste dal lavoro e alla capacità disponibile nel Connected Service Environment (SE), permettendo un elevato utilizzo delle risorse di elaborazione. Con la gestione delle quote, gli amministratori possono anche controllare quante risorse può consumare un team o un progetto tramite allocazioni di risorse più dettagliate.

La gestione delle quote consente agli amministratori di allocare in modo efficiente risorse di elaborazione condivise tra team e progetti definendo quote di condivisione associate, AWS Batch risorse che includono **quote** di elaborazione (limiti di **capacità**) e strategie di condivisione delle risorse per l'elaborazione inattiva. Ogni condivisione di quote funziona come una coda virtuale annidata all'interno di una coda di lavoro associata. Quando si pianificano i lavori per una coda di lavoro, AWS Batch scorrerà tutte le condivisioni di quote allegate.

Gli amministratori possono abilitare la condivisione delle risorse tra le condivisioni di quota in tutta sicurezza, poiché la priorità consentirà **a qualsiasi quota condivisa di recuperare le risorse che ha prestato** ad altri quando necessario. All'interno di una condivisione di quote, è possibile scegliere se i lavori in esecuzione devono essere sostituiti con priorità più elevata o se consentire il completamento dei lavori in esecuzione. Le priorità del Job possono essere impostate al momento della presentazione e aggiornate successivamente; le priorità aggiornate vengono prese in considerazione quando vengono prese le decisioni di prelazione. L'utilizzo della capacità può essere monitorato in coda, la condivisione delle quote e la granularità a livello di processo.

La gestione delle quote è supportata solo per le code di lavoro connesse a un ambiente di servizio. `SAGEMAKER_TRAINING`

**Topics**
+ [Condivisioni di quote](quota-shares.md)
+ [Prelazione](preemption.md)
+ [Crea risorse per la gestione delle quote](create-quota-management-resources.md)
+ [Creazione di quote condivisioni](create-quota-shares.md)
+ [Invio di lavori a una condivisione di quote](submit-job-quota-share.md)

# Condivisioni di quote
<a name="quota-shares"></a>

Le **condivisioni di quota** sono code virtuali annidate in una coda di lavoro. È possibile allegarne un massimo di 20 a qualsiasi coda di lavoro. Le condivisioni di quota consentono di assegnare una quota di elaborazione a un team o a un progetto, tramite l'uso di **limiti di capacità**; una condivisione di quota richiede che venga fornito almeno un limite di capacità e supporta un massimo di 5 limiti di capacità. Ogni limite di capacità deve essere espresso come limiti di istanze per i tipi di istanze di lavoro SageMaker di formazione supportati.

## Strategia di condivisione delle risorse con condivisione delle quote
<a name="quota-share-resource-sharing"></a>

Le condivisioni di quota hanno anche una configurazione esplicita di condivisione delle risorse.
+ Se il calcolo inattivo di una condivisione di quota deve essere riservato solo ai relativi processi, seleziona. `RESERVE`
+ Se il calcolo inattivo di una quota condivisa può essere prestato ad altre condivisioni di quota, seleziona. `LEND`
+ Se il calcolo inattivo di una quota di quota può essere prestato ad altre condivisioni di quota e i lavori derivanti dalla condivisione di quota devono poter prendere in prestito il calcolo inattivo, scegli con un limite di prestito configurato. `LEND_AND_BORROW`

## Ripristino della capacità tramite prelazione
<a name="capacity-limit-restoration"></a>

AWS Batch effettuerà la **prelazione incrociata per riportare la capacità presa in prestito a una quota** di quota all'arrivo dei posti di lavoro. Nella scelta dei lavori da anticipare, AWS Batch considera il numero e il tipo di istanze che la mansione riceve in prestito, le priorità relative delle mansioni e la durata della mansione, e applica un'euristica personalizzata.

Gli amministratori che abbassano i limiti di capacità di una quota condivisa possono inoltre rendere `SCHEDULED` idonei alla priorità i `RUNNING` lavori che rientrano in tale quota anche se `LEND` o sono `RESERVE` stati selezionati come strategia di condivisione delle risorse, se la capacità già consumata da tale quota di quota supera i limiti di capacità ridotti. `STARTING`

# Prelazione
<a name="preemption"></a>

La gestione delle quote è l'unico algoritmo AWS Batch di pianificazione a incorporare la **prelazione**, in cui AWS Batch si interrompe un lavoro `SCHEDULED``STARTING`, o un processo per creare la capacità necessaria per un `RUNNING` lavoro. `RUNNABLE`

## Prelazione tra condivisioni
<a name="cross-share-preemption"></a>

La gestione delle quote utilizza la priorità **incrociata per riportare la capacità presa in prestito a una quota condivisa** all'arrivo dei posti di lavoro.

Gli amministratori che abbassano i limiti di capacità di una quota condivisa possono inoltre `SCHEDULED` `STARTING` attribuire la priorità ai `RUNNING` lavori rientranti in tale quota se la capacità consumata da tale quota supera i limiti di capacità configurati.

## Prelazione in condivisione
<a name="in-share-preemption"></a>

Le condivisioni di quota possono essere configurate in modo da abilitare la priorità **all'interno della condivisione, che consente ai `RUNNABLE` lavori con priorità più elevata di attivare l'opzione** di priorità per i lavori con priorità inferiore all'interno della stessa quota inserita, oppure `SCHEDULED` `STARTING` `RUNNING`

## Algoritmo di selezione preventiva
<a name="preemption-selection-algorithm"></a>

Nella scelta dei lavori da privilegiare, AWS Batch considera il numero e il tipo di istanze che un lavoro richiede in prestito, le priorità relative dei lavori e la durata dei lavori, e applica un'euristica personalizzata. È possibile utilizzare la chiamata [UpdateServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_UpdateServiceJob.html)API per aggiornare un lavoro dopo l'invio. `schedulingPriority` Ciò può essere utile per ridurre la priorità di un `RUNNING` lavoro (aumentando la probabilità di priorità) o aumentare la priorità di un `RUNNABLE` lavoro in una condivisione di quote con la priorità in-share abilitata, in modo che il lavoro possa anticipare un lavoro già in esecuzione.

## Tentativi di prelazione
<a name="preemption-retries"></a>

L'impostazione predefinita prevede che i lavori con priorità vengano messi nuovamente in coda senza limiti. `RUNNABLE` Per limitare il numero di privilegi sperimentati da un lavoro, imposta l'opzione «Invio del lavoro». `preemptionRetriesBeforeTermination` Se `preemptionRetriesBeforeTermination` è impostato su 0, i lavori passano `FAILED` alla prima priorità.

Una finestra scorrevole con i recenti tentativi di priorità viene memorizzata sul lavoro ed è visibile tramite. [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html)

# Crea risorse per la gestione delle quote
<a name="create-quota-management-resources"></a>

La gestione delle quote richiede impostazioni specifiche quando si creano una politica di pianificazione, un ambiente di servizio e una coda di lavoro associati.

## Prerequisiti
<a name="quota-management-resources-prerequisites"></a>

Prima di creare risorse per la gestione delle quote, assicurati di disporre di:
+ Autorizzazioni **IAM: autorizzazioni** per creare e gestire code di AWS Batch lavoro, politiche di pianificazione e ambienti di servizio. Per ulteriori informazioni, consulta [AWS Batch Politiche, ruoli e autorizzazioni IAM](IAM_policies.md).

------
#### [ Configure quota management resources (AWS Batch console) ]

La AWS Batch console fornisce un flusso di lavoro integrato per la creazione di tutte le risorse necessarie per la gestione delle quote. Il flusso di lavoro per la creazione di code di lavoro per la gestione delle quote crea anche politiche di pianificazione e ambienti di servizio abilitati alla gestione delle quote.

1. Apri la AWS Batch console all'indirizzo. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)

1. Nel riquadro di navigazione, scegli **Job queues** e poi **Crea**.

1. **Per il **tipo di orchestrazione**, scegli Training. SageMaker**

1. Per la **configurazione della coda Job**:

   1. Per **Nome**, inserisci il nome della coda dei lavori.

   1. Per **Priorità**, immettere un valore compreso tra 0 e 1000. A una coda di lavoro con una priorità più alta viene data la preferenza per gli ambienti di servizio.

1. Per la **pianificazione**:

   1. Per l'**algoritmo di pianificazione**, scegli Gestione **delle quote**.

   1. Per la **politica di pianificazione ARN:**
      + Se esiste già una politica di pianificazione che specifica la gestione delle quote, selezionala dal menu a discesa.
      + Altrimenti, scegli **Crea** politica di pianificazione.

        1. Si apre una barra laterale per configurare la politica di pianificazione della gestione delle quote.

        1. Fornisci un **nome** per la politica di pianificazione.

        1. Scegli **Create** (Crea). Il campo **ARN della policy di pianificazione** è ora compilato.

1. Per la configurazione **dell'ambiente di servizio**, in Ambiente di servizio **connesso**:
**Nota**  
Gli ambienti di servizio abilitati alla gestione delle quote possono essere collegati solo a una singola coda di lavori abilitata alla gestione delle quote.

   1. Se è già stato creato un ambiente di servizio compatibile con la gestione delle quote e non è ancora connesso a una coda di lavori abilitata alla gestione delle quote, selezionalo dal menu a discesa.

   1. **Altrimenti, scegli Crea un ambiente di servizio.** Si apre una barra laterale per configurare l'ambiente di servizio.

      1. Fornisci un **nome** per l'ambiente di servizio.

      1. Fornisci almeno un limite di capacità (e al massimo 5). Per ogni limite di capacità, scegli un **tipo di istanza** dal menu a discesa e un **numero massimo di istanze**.

1. (Facoltativo) Per i **limiti dello stato Job**:

   1. Per **Configurazione errata**, scegliete una delle due opzioni `SERVICE_ENVIRONMENT_MAX_RESOURCE` e immettete il **Tempo massimo di esecuzione (**secondi).

   1. Per **Capacità**, scegli `INSUFFICIENT_INSTANCE_CAPACITY` e inserisci il Tempo di **esecuzione massimo (secondi**).

1. Scegli **Crea coda di lavoro.**

------
#### [ Configure quota management resources (AWS CLI) ]

Per configurare la gestione delle quote tramite la AWS CLI, crea una politica di pianificazione, un ambiente di servizio e una coda di lavoro. Sia la politica di pianificazione che l'ambiente di servizio devono essere compatibili con la gestione delle quote e creati prima di creare la coda dei lavori.

**Creare una politica di pianificazione**

Utilizzare il `create-scheduling-policy` comando per creare una politica di pianificazione compatibile con la gestione delle quote. Fornisci una politica di condivisione delle quote durante la creazione:

```
aws batch create-scheduling-policy \
  --name my-qm-sagemaker-scheduling-policy \
  --quota-share-policy idleResourceAssignmentStrategy="FIFO"
```

Verifica che la politica di pianificazione sia stata creata correttamente:

```
aws batch describe-scheduling-policies \
  --arns arn-for-my-qm-sagemaker-scheduling-policy
```

**Creare un ambiente di servizio**

Utilizzate il `create-service-environment` comando per creare un ambiente di servizio abilitato alla gestione delle quote. Assicurati che i limiti di capacità utilizzino tipi di istanze accettati dai job di SageMaker formazione, come `ml.g6.xlarge` o`ml.p4d.24xlarge`.

```
aws batch create-service-environment \
  --service-environment-name my-qm-sagemaker-service-env \
  --service-environment-type SAGEMAKER_TRAINING \
  --capacity-limits capacityUnit=instance_type,maxCapacity=instance_count
```

Verifica che l'ambiente di servizio sia stato creato correttamente:

```
aws batch describe-service-environments \
  --service-environments my-qm-sagemaker-service-env
```

**Crea una coda di lavoro**

Utilizzate il `create-job-queue` comando per creare una coda di lavori abilitata alla gestione delle quote. Devono essere soddisfatti i criteri seguenti:
+ È necessario fornire un unico ambiente di `SAGEMAKER_TRAINING` servizio che non sia attualmente connesso a un'altra coda di lavoro.
+ L'ambiente di servizio deve esprimere i limiti di capacità in termini di tipi di istanze, ad esempio`ml.m6i.xlarge`, anziché`NUM_INSTANCES`.
+ È necessario collegare una politica di pianificazione che contenga un`quotaSharePolicy`.
+ `jobQueueType` deve essere `SAGEMAKER_TRAINING`.

```
aws batch create-job-queue \
  --job-queue-name my-qm-sagemaker-jq \
  --job-queue-type SAGEMAKER_TRAINING \
  --priority 1 \
  --service-environment-order order=1,serviceEnvironment=my-qm-sagemaker-service-env \
  --scheduling-policy-arn arn-for-my-qm-sagemaker-scheduling-policy
```

Verifica che la coda dei lavori sia stata creata correttamente:

```
aws batch describe-job-queues \
  --job-queues my-qm-sagemaker-jq
```

Verifica che:
+ La è `state` `ENABLED`
+ La `status` è `VALID`
+ La `statusReason` è `JobQueue Healthy`

------

# Creazione di quote condivisioni
<a name="create-quota-shares"></a>

Le quote share funzionano come code virtuali all'interno della coda di lavoro associata tra le quali lo AWS Batch scheduler esegue le iterazioni durante la pianificazione. Consentono agli amministratori di assegnare una quota di elaborazione a un team o a un progetto tramite ` capacity limits ` una configurazione esplicita per una strategia di condivisione delle risorse. 

## Prerequisiti
<a name="create-quota-shares-prerequisites"></a>

Prima di creare quote condivise, assicurati di avere:
+ **Politica di pianificazione della gestione delle quote, ambiente di servizio e coda di lavoro**: una politica di pianificazione della gestione delle quote, un ambiente di servizio e una coda di lavoro con gestione delle quote abilitata. Per ulteriori informazioni, consulta [Crea risorse per la gestione delle quote](create-quota-management-resources.md).
+ Autorizzazioni **IAM: autorizzazioni** per creare e gestire condivisioni di quote. AWS Batch Per ulteriori informazioni, consulta [AWS Batch Politiche, ruoli e autorizzazioni IAM](IAM_policies.md).

------
#### [ Configure quota shares (AWS Batch console) ]

1. Apri la AWS Batch console all'indirizzo. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/)

1. Nel riquadro di navigazione, scegli **Job queues** e seleziona una coda di lavori abilitata alla gestione delle quote dall'elenco. Scegli il link al nome della coda di lavoro.

1. Nella sezione **Quote condivisioni**, scegli **Crea quota condivisa**.

1. Fornisci un **nome** per la condivisione della quota.

1. Per **Limiti di capacità**, scegli **Aggiungi limiti di capacità**. È necessario specificare almeno un limite di capacità.

   1. Seleziona un **tipo di istanza** dal menu a discesa e imposta il **numero massimo di istanze** che questa quota le ha assegnato.

   1. (Facoltativo) Scegli **Aggiungi limiti di capacità** e ripeti l'operazione per collegare al massimo cinque limiti di capacità.

1. Per la **condivisione della capacità**, scegli in che modo questa condivisione di quota condivide la sua capacità con altre condivisioni di quota nella stessa coda di lavoro:
   + Seleziona **Riserva** se la quota condivisa non deve concedere in prestito o prendere in prestito risorse di calcolo inutilizzate.
   + Seleziona **Prestito se la quota di quota può prestare** il calcolo inattivo ad altre azioni di quota.
   + Seleziona Prestiti **e prendi in prestito se la quota condivisa consente sia di prestare** che di prendere in prestito le risorse di calcolo inutilizzate, mentre le risorse di calcolo prestate possono essere recuperate tramite l'opzione di condivisione incrociata quando arriva il lavoro.

1. **(Facoltativo) Per la priorità in condivisione, scegli se abilitare o disabilitare la priorità in condivisione.** L'attivazione della priorità in condivisione consente ai lavori con priorità più alta di dare priorità ai lavori con priorità inferiore che sono già disponibili o statali. `SCHEDULED` `STARTING` `RUNNING` La disattivazione della priorità all'interno della condivisione significa che i lavori con priorità più alta aspetteranno che la capacità sia disponibile.

1. **Scegli Crea condivisione di quote.**

------
#### [ Configure quota shares (AWS CLI) ]

Usa il `create-quota-share` comando per creare una condivisione di quote. È necessario scegliere una strategia di condivisione delle risorse e se abilitare la priorità all'interno della condivisione.

**Prestate e prendete in prestito esempi**

L'esempio seguente crea una quota condivisa che consente di prestare e prendere in prestito capacità inutilizzata, con un limite di prestito pari al 100% dei limiti di capacità configurati. Consente inoltre la priorità in condivisione, in modo che i lavori con priorità più elevata non debbano attendere il completamento dei lavori con priorità inferiore pianificati all'interno dell'IA. SageMaker 

```
aws batch create-quota-share \
  --quota-share-name lend_and_borrow_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=5,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=LEND_AND_BORROW,borrowLimit=100 \
  --preemption-configuration inSharePreemption=ENABLED
```

**Fornisci solo un esempio**

Le quote azionarie possono essere configurate solo per fornire capacità inutilizzata, ma non per prenderla in prestito autonomamente. L'esempio seguente si associa alla disabilitazione della `LEND` priorità in condivisione.

```
aws batch create-quota-share \
  --quota-share-name lend_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=8,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=LEND \
  --preemption-configuration inSharePreemption=DISABLED
```

**Esempio di prenotazione**

Le condivisioni di quota possono anche essere configurate per riservare capacità inattiva. I lavori appena inviati quando una quota condivisa ha una capacità inattiva possono iniziare prima, ma l'utilizzo complessivo della coda sarà inferiore se una quota condivisa non ha lavori.

```
aws batch create-quota-share \
  --quota-share-name reserved_qs \
  --job-queue my-qm-sagemaker-jq \
  --capacity-limits maxCapacity=2,capacityUnit=ml.m6i.large \
  --resource-sharing-configuration strategy=RESERVE \
  --preemption-configuration inSharePreemption=DISABLED
```

------

# Invio di lavori a una condivisione di quote
<a name="submit-job-quota-share"></a>

Le code di lavoro per la gestione delle quote richiedono che tutti i lavori specifichino una quota al momento dell'invio del lavoro. Per inviare lavori a una condivisione di quote, specifica il `quotaShareName` valore in. [SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html) Facoltativamente, `preemptionConfiguration` può essere fornito un per limitare il numero di tentativi di priorità prima dell'inizio di un tentativo di lavoro. `FAILED` Per limitare il numero di privilegi previsti per un lavoro, `preemptionRetriesBeforeTermination` impostalo al momento dell'invio del lavoro. [ServiceJobPreemptionConfiguration](https://docs.aws.amazon.com/batch/latest/APIReference/API_ServiceJobPreemptionConfiguration.html)

## Invia un lavoro utilizzando il AWS CLI
<a name="submit-job-quota-share-cli"></a>

L'esempio seguente utilizza il **submit-service-job** comando per inviare un lavoro a una condivisione di quote.

```
aws batch submit-service-job \
    --job-name "my-sagemaker-training-job" \
    --job-queue "my-sagemaker-job-queue" \
    --service-job-type "SAGEMAKER_TRAINING" \
    --quota-share-name "my_quota_share" \
    --timeout-config '{"attemptDurationSeconds":3600}' \
    --scheduling-priority 5 \
    --service-request-payload '{\"TrainingJobName\": \"sagemaker-training-job-example\", \"AlgorithmSpecification\": {\"TrainingImage\": \"123456789012.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.8.0-cpu-py3\", \"TrainingInputMode\": \"File\", \"ContainerEntrypoint\":  [\"sleep\", \"1\"]}, \"RoleArn\":\"arn:aws:iam::123456789012:role/SageMakerExecutionRole\", \"OutputDataConfig\": {\"S3OutputPath\": \"s3://example-bucket/model-output/\"}, \"ResourceConfig\": {\"InstanceType\": \"ml.m5.large\", \"InstanceCount\": 1, \"VolumeSizeInGB\": 1}}'"
```