Policy
La governance delle attività di Amazon SageMaker HyperPod semplifica l’allocazione delle risorse del cluster Amazon EKS e l’assegnazione delle priorità alle attività. Di seguito vengono fornite informazioni sulle policy del cluster HyperPod EKS. Per informazioni su come configurare la governance delle attività, consulta Configurazione della governance delle attività.
Le policy sono suddivise in Priorità delle risorse di calcolo e Allocazione delle risorse di calcolo I concetti delle policy seguenti vengono organizzati nel contesto di tali policy.
La priorità delle risorse di calcolo, o policy del cluster, determina in che modo le risorse di calcolo inattive vengono presa in prestito e in che modo i team assegnano priorità alle attività.
-
Allocazione delle risorse di calcolo inattive definisce in che modo le risorse di calcolo inattive vengono allocate tra i team. In altre parole, definisce in che modo le risorse di calcolo inutilizzate possono essere prese in prestito dai team. Quando selezioni Allocazione delle risorse di calcolo inattive, puoi scegliere tra:
-
Primo arrivato, primo servito: se applicata, questa opzione non assegna priorità ai team e ogni attività in arrivo ha la stessa probabilità di ottenere risorse oltre la quota stabilita. Alle attività viene assegnata una priorità in base all’ordine di invio. Ciò significa che un utente potrebbe utilizzare il 100% delle risorse di calcolo inattive se le richiede per primo.
-
Condivisione equa: quando viene applicata, i team prendono in prestito risorse di calcolo inattive in base al Peso di condivisione equa loro assegnato. Questi pesi sono definiti in Allocazione delle risorse di calcolo. Per ulteriori informazioni su come utilizzare questa opzione, consulta Esempi di condivisione di risorse di calcolo inattive.
-
-
La prioritizzazione delle attività definisce il modo in cui le attività vengono messe in coda non appena il calcolo diventa disponibile. Quando scegli una prioritizzazione delle attività, puoi scegliere tra:
-
Primo arrivato, primo servito: se viene applicata questa opzione, le attività vengono messe in coda nell’ordine in cui sono state richieste.
-
Classificazione delle attività: se viene applicata questa opzione, le attività vengono messe in coda nell’ordine definito dalla loro priorità. Se scegli questa opzione, devi aggiungere le classi di priorità e i pesi in base ai quali viene assegnata la priorità. Le attività della stessa classe di priorità vengono eseguite in base al principio “primo arrivato, primo servito”. Se l’opzione è abilitata in Allocazione delle risorse di calcolo, le attività con priorità più bassa vengono sostituite dalle attività con priorità più alta all’interno del team.
Quando i Data Scientist inviano i processi al cluster, utilizzano il nome della classe di priorità nel file YAML. La classe di priorità è nel formato
. Per vedere un esempio, consulta Invio di un processo alla coda e al namespace gestiti da SageMaker AI.priority-class-name-priority -
Classi di priorità: queste classi stabiliscono una priorità relativa per le attività quando prendono in prestito quote di capacità. Quando un’attività viene eseguita utilizzando una quota presa in prestito, può essere interrotta da un’altra attività con priorità più elevata, se la capacità disponibile per l’attività in entrata è terminata. Se Prelazione è abilitato in Allocazione delle risorse di calcolo, un’attività con priorità più elevata può anche interrompere altre attività all’interno del proprio team.
-
L’Allocazione delle risorse di calcolo, o quota di calcolo, definisce l’allocazione delle risorse di calcolo di un team e il peso (o il livello di priorità) assegnato a un team per un’allocazione equa delle risorse di calcolo inattive.
-
Nome del team: il nome del team. Viene creato un Namespace corrispondente, di tipo
hyperpod-ns-.team-name -
Membri: i membri del namespace del team. Dovrai configurare un controllo degli accessi basato su ruoli (RBAC) Kubernetes per gli utenti Data Scientist che desideri facciano parte del team, per consentire loro di eseguire attività su cluster HyperPod orchestrati con Amazon EKS. Per configurare un RBAC Kubernetes, utilizza le istruzioni in create team role
. -
Peso di condivisione equa: si tratta del livello di priorità assegnato al team quando viene applicata la Condivisione equa per l’opzione Allocazione delle risorse di calcolo inattive. La priorità più alta ha un peso di 100, mentre quella più bassa è 0. Un peso maggiore consente a un team di accedere più rapidamente alle risorse inutilizzate all’interno della capacità condivisa. Un peso zero indica la priorità più bassa, che significa che il team sarà sempre in svantaggio rispetto agli altri team.
Il peso di condivisione equa offre un margine di vantaggio al team quando compete con altri team per le risorse disponibili. L’ammissione dà priorità alla pianificazione delle attività svolte dai team con i pesi più alti e il minor numero di risorse prese in prestito. Ad esempio, se il Team A ha un peso di 10 e il Team B ha un peso di 5, il Team A avrebbe un accesso prioritario alle risorse inutilizzate, perché ha processi pianificati prima del Team B.
-
Prelazione delle attività: le risorse di calcolo vengono prese da un’attività in base alla priorità. Per impostazione predefinita, il team che presta le risorse di calcolo inattive avrà la prelazione rispetto alle attività degli altri team.
-
Prestare e prendere in prestito: definisce in che modo il team presta le risorse di calcolo inattive e specifica se il team può prendere in prestito risorse da altri team.
-
Limite di prestito: il limite di risorse di calcolo inattive che un team può prendere in prestito. Un team può prendere in prestito fino al 500% delle risorse di calcolo allocate. Il valore fornito qui viene interpretato come percentuale. Ad esempio, un valore pari a 500 verrà interpretato come 500%.
-
Per informazioni su come vengono utilizzati i concetti come le classi di priorità e i namespace, consulta Esempi di comandi della AWS CLI per la governance delle attività di HyperPod.
Esempi di condivisione di risorse di calcolo inattive
La quota totale riservata non deve superare la capacità disponibile del cluster per quella risorsa, al fine di garantire una corretta gestione delle quote. Ad esempio, se un cluster comprende 20 istanze ml.c5.2xlarge, la quota cumulativa assegnata ai team dovrebbe rimanere inferiore a 20.
Se le policy Allocazione delle risorse di calcolo per i team consentono Presta e prendi in prestito o Presta, la capacità inattiva viene condivisa tra questi team. Ad esempio, il Team A e il Team B hanno abilitato Presta e prendi in prestito. Il Team A ha una quota pari a 6, ma utilizza solo 2 risorse per i processi, mentre il Team B ha una quota pari a 5 e utilizza 4 risorse. Un processo inviato al Team B richiede 4 risorse, quindi il Team B prenderà in prestito 3 risorse dal Team A.
Se la policy Allocazione delle risorse di calcolo di un team è impostata su Non prestare, il team non potrà prendere in prestito alcuna capacità aggiuntiva oltre alle proprie allocazioni.
Per mantenere un pool o un set di risorse da cui tutti i team possono prendere in prestito risorse, puoi creare un team dedicato con una quantità di risorse che colma il divario tra le allocazioni degli altri team e la capacità totale del cluster. Verifica che questa allocazione cumulativa delle risorse includa i tipi di istanze appropriati e non superi la capacità totale del cluster. Per garantire che queste risorse possano essere condivise tra i team, consenti ai team partecipanti di impostare le proprie allocazioni delle risorse di calcolo su Presta e prendi in prestito o Presta per questo pool di risorse comune. Ogni volta che vengono introdotti nuovi team o vengono modificate le allocazioni delle quote o la capacità del cluster, rivedi le allocazioni delle quote di tutti i team e assicurati che la quota cumulativa rimanga pari o inferiore alla capacità del cluster.