View a markdown version of this page

Configurazione della topologia hardware in AWS 2 PEZZI - AWS PEZZI

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à.

Configurazione della topologia hardware in AWS 2 PEZZI

Slurm prende decisioni di posizionamento migliori quando conosce il layout hardware interno di un nodo di calcolo: come i core si raggruppano in socket e domini di accesso alla Non-Uniform memoria (NUMA), come le cache L3 si associano ai core e a quali core è collegata ciascuna GPU. Questo argomento descrive come Slurm modella tale layout e come PCS lo configura su ciascuna versione di Slurm supportata. AWS

Topologia della CPU

I core di un nodo di calcolo non sono intercambiabili. Sono raggruppati in pacchetti fisici (socket) e domini NUMA e ogni gruppo condivide risorse come controller di memoria e cache L3. Due attività inserite nello stesso gruppo comunicano più velocemente e condividono la cache; le attività collocate tra gruppi competono meno per le risorse condivise.

Slurm descrive questo raggruppamento per nodo con le impostazioniSockets,CoresPerSocket, e ThreadsPerCore in. slurm.conf Ciò che Slurm considera un socket è configurabile con l'impostazione per nodo: Parameters

  • numa_node_as_socket— ogni dominio NUMA è un socket.

  • l3cache_as_socket— ogni dominio di cache L3 è un socket. Ciò può essere utile su alcuni processori in cui il livello del socket è troppo approssimativo e la cache L3 può fornire una migliore distribuzione delle attività.

Con la topologia della CPU configurata, le opzioni di pianificazione basate sui socket funzionano come previsto: opzioni di lavoro come --ntasks-per-socket and e allocazione basata sui socket con i --sockets-per-node valori or dell'impostazione a livello di cluster. CR_Socket CR_Socket_Memory SelectTypeParameters Per ulteriori informazioni su come Slurm alloca socket, core e thread, vedi Support for Architectures nella documentazione di Slurm. Multi-core/Multi-thread

AWS PCS non configura la topologia della CPU sulle versioni di Slurm precedenti alla 25.11, quindi i nodi di quelle versioni pubblicizzano un core per socket e queste opzioni non hanno alcun effetto.

Affinità GPU

Ogni GPU in un nodo è la più vicina a un dominio NUMA, quindi un sottoinsieme dei core del nodo è locale ad esso. Un'attività eseguita su core locali alla GPU trasferisce i dati su un percorso più breve rispetto a un'attività sull'altro socket. Slurm registra questa GPU-to-core affinità per dispositivo (l'Coresattributo di un gres.conf record), insieme al layout di interconnessione (). GPU-to-GPU Links

Sui nodi di calcolo AWS PCS queste informazioni non possono essere configurate staticamente in anticipo, poiché l'enumerazione dei dispositivi dipende dalla singola istanza e i dispositivi diventano visibili solo all'avvio del nodo. Il AutoDetect meccanismo di Slurm risolve questo problema: all'avvio di un nodo, slurmd interroga la NVIDIA Management Library (NVML) e segnala l'affinità rilevata con il controller al momento della registrazione.

Nota

Mentre un nodo è spento, Slurm non ne conosce l'affinità. GPU-to-CPU L'affinità diventa disponibile solo quando il nodo si avvia e si registra, quindi le decisioni di pianificazione per i nodi spenti vengono prese senza di essa.

L'affinità GPU rilevata automaticamente è espressa in termini di socket, quindi richiede una corretta topologia della CPU. Se un nodo registra un'affinità GPU che non rientra nei limiti dei socket configurati del nodo, Slurm imposta il nodo su e lo scarica. INVALID_REG Per ulteriori informazioni, consulta Risolvi i problemi relativi alle registrazioni di nodi non valide (INVALID_REG) in AWS 2 PEZZI.

Con l'affinità GPU disponibile, Slurm può collocare attività su core locali rispetto alle GPU allocate. L'affinità con le risorse generiche (GRES) viene gestita in base alla granularità del socket. Il posizionamento dipende dalle opzioni lavorative; le combinazioni che utilizzano l'affinità rilevata includono with e with. --ntasks-per-socket --gpus-per-task --gpus --ntasks-per-gpu

Comportamento topologico in base alla versione Slurm

Ciò che AWS PCS configura per te e ciò che puoi configurare tu stesso dipende dalla versione Slurm del cluster.

Da Slurm 25.11

Topologia della CPU tramite impostazioni personalizzate

Puoi configurare tu stesso la topologia della CPU con le Sockets impostazioni Parameters personalizzate di Slurm per un gruppo di nodi di calcolo. Per ulteriori informazioni, consulta Impostazioni Slurm personalizzate per AWS Gruppi di nodi di calcolo PCS.

  • Imposta Sockets il numero di domini che desideri che Slurm consideri come socket. AWS PCS calcola e imposta la corrispondenza per te. CoresPerSocket Il valore deve dividere il numero di core del nodo in modo uniforme.

  • Imposta su numa_node_as_socket o Parameters l3cache_as_socket per dichiarare cosa sono i domini.

Conl3cache_as_socket, Sockets è obbligatorio: AWS PCS non è in grado di determinare il layout della cache L3 di un tipo di istanza, quindi è necessario fornire il numero di domini di cache L3. Questo vale per tutte le versioni di Slurm, inclusa la 26.05 e successive.

Esempio— Domini di cache L3 come socket su un hpc7a.96xlarge gruppo di nodi di calcolo (24 domini di cache L3, 8 core ciascuno)
aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng-1 \ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=Sockets,parameterValue=24},{parameterName=Parameters,parameterValue=l3cache_as_socket}]'
Nota

AWS PCS convalida la struttura di un Sockets valore, non la sua correttezza rispetto all'hardware. Un valore che non corrisponde al layout reale del nodo comporta un posizionamento non ottimale o INVALID_REG quando il rilevamento automatico della GPU è attivo.

Topologia GPU con (opt-in) AutoDetect

Su Slurm 25.11, il rilevamento automatico della GPU è disattivato per impostazione predefinita. Puoi attivarlo aggiungendo AutoDetect al record GPU del gruppo di nodi di calcolo in. gresCustomSettings Per ulteriori informazioni, consulta Configurazione delle impostazioni GRES personalizzate in AWS 2 PEZZI.

AutoDetect richiede la configurazione della topologia della CPU del nodo. Il 25.11, ciò significa impostare il gruppo Sockets di nodi di calcolo come descritto nella sezione precedente. Senza di essa, i nodi registrano un'affinità GPU che non corrisponde al layout predefinito di un core per socket e Slurm le imposta su. INVALID_REG

Da Slurm 26.05

Topologia CPU predefinita

A partire da Slurm 26.05, AWS PCS configura NUMA-based la topologia della CPU per impostazione predefinita. AWS PCS determina il numero di domini NUMA in base al tipo di istanza del gruppo e dei set di nodi di calcolo e su ciascun nodo. Sockets CoresPerSocket Parameters=numa_node_as_socket

Si applicano le regole seguenti:

  • Se un gruppo di nodi di calcolo utilizza più tipi di istanza, AWS PCS applica la topologia predefinita solo quando tutti hanno lo stesso numero di domini NUMA. Altrimenti, AWS PCS lascia la topologia non impostata, seguendo il comportamento delle versioni precedenti.

  • Se si Sockets impostano le impostazioni personalizzate di Slurm del gruppo di nodi di calcolo, il valore ha la precedenza e PCS non viene aggiunto. AWS Parameters Usalo per sovrascrivere l'impostazione predefinita, ad esempio per utilizzare i domini di cache L3 come socket con, il che richiede comunque il tuo valore. Parameters=l3cache_as_socket Sockets

Nota

La topologia automatica si applica ai cluster creati con Slurm 26.05 o successivo e ai cluster quando li aggiorni alla versione 26.05 o successiva.

Rilevamento automatico della GPU per impostazione predefinita

A partire da Slurm 26.05, AWS PCS abilita il rilevamento automatico della GPU per impostazione predefinita. AWS PCS aggiunge AutoDetect=full al record GPU generato per un gruppo di nodi di calcolo GPU quando il layout del socket del nodo è noto, o perché AWS PCS ha configurato automaticamente la topologia della CPU o perché l'hai impostata tu stesso. Sockets Quando il layout del socket non è disponibile, AWS PCS emette il record GPU senzaAutoDetect, seguendo il comportamento delle versioni precedenti. Per ulteriori informazioni sul record GPU generato da AWS PCS e su come riconcilia quel record con il tuo, consulta. In che modo AWS PCS applica i tuoi record gres.conf