Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configuración de la topología de hardware en AWS PC
Slurm toma mejores decisiones sobre la ubicación cuando conoce la distribución interna del hardware de un nodo de procesamiento: cómo se agrupan los núcleos en sockets y dominios de acceso a la Non-Uniform memoria (NUMA), cómo se asignan las cachés L3 a los núcleos y a qué núcleos está conectada cada GPU. En este tema se describe cómo Slurm modela ese diseño y cómo AWS PCS lo configura en cada versión de Slurm compatible.
Topología de CPU
Los núcleos de un nodo de procesamiento no son intercambiables. Se agrupan en paquetes físicos (sockets) y dominios NUMA, y cada grupo comparte recursos, como los controladores de memoria y la caché L3. Dos tareas ubicadas en el mismo grupo se comunican más rápido y comparten la memoria caché; las tareas distribuidas entre grupos compiten menos por esos recursos compartidos.
Slurm describe esta agrupación por nodo con la configuración SocketsCoresPerSocket, yThreadsPerCore. slurm.conf Lo que Slurm considera un socket se puede configurar con la configuración por nodo: Parameters
-
numa_node_as_socket— cada dominio NUMA es un socket. -
l3cache_as_socket— cada dominio de caché L3 es un socket. Esto puede resultar útil en algunos procesadores en los que el nivel del socket es demasiado bajo y la caché L3 puede proporcionar una mejor distribución de las tareas.
Con la topología de la CPU configurada, las opciones de programación adaptadas a los sockets funcionan según lo previsto: opciones de tareas como --ntasks-per-socket y y --sockets-per-node asignación basada en sockets con los valores o de la configuración a nivel de clúster. CR_Socket CR_Socket_Memory SelectTypeParameters Para obtener más información sobre cómo Slurm asigna los sockets, los núcleos y los subprocesos, consulte el soporte para arquitecturas en la documentación de Slurm. Multi-core/Multi-thread
AWS PCS no configuraba la topología de CPU en las versiones de Slurm anteriores a la 25.11, por lo que los nodos de esas versiones anunciaban un núcleo por socket y estas opciones no surtían efecto.
Afinidad de GPU
Cada GPU de un nodo está más cerca de un dominio NUMA, por lo que un subconjunto de los núcleos del nodo es local para él. Una tarea que se ejecuta en núcleos locales a su GPU transfiere datos por una ruta más corta que una tarea del otro socket. Slurm registra esta GPU-to-core afinidad por dispositivo (el Cores atributo de un gres.conf registro), junto con el diseño de GPU-to-GPU interconexión (). Links
En los nodos de procesamiento de AWS PCS, esta información no se puede configurar de forma estática con antelación, porque la enumeración de los dispositivos depende de la instancia individual y los dispositivos solo están visibles cuando se inicia el nodo. El AutoDetectslurmd consulta la biblioteca de administración de NVIDIA (NVML) e informa al controlador sobre la afinidad detectada en el momento del registro.
nota
Mientras un nodo está apagado, Slurm desconoce su afinidad. GPU-to-CPU La afinidad solo está disponible cuando el nodo arranca y se registra, por lo que las decisiones de programación para los nodos apagados se toman sin ella.
La afinidad de la GPU detectada automáticamente se expresa en términos de sockets, por lo que requiere una topología de CPU correcta. Si un nodo registra una afinidad de GPU que no se ajusta a los límites de socket configurados para el nodo, Slurm configura el nodo como y lo agota. INVALID_REG Para obtener más información, consulte Solucione los problemas de registros de nodos no válidos (INVALID_REG) en AWS PCS.
Con la afinidad de GPU disponible, Slurm puede colocar las tareas en núcleos locales a sus GPU asignadas. La afinidad de los recursos genéricos (GRES) se gestiona según la granularidad de los sockets. La colocación depende de las opciones de trabajo; entre las combinaciones que utilizan la afinidad detectada se incluyen --ntasks-per-socket con --gpus-per-task y --gpus con. --ntasks-per-gpu
Comportamiento de la topología según la versión de Slurm
Lo que AWS PCS configure para usted y lo que usted mismo puede configurar depende de la versión de Slurm del clúster.
A partir de la versión 25.11 de Slurm
Topología de CPU a través de configuraciones personalizadas
Puede configurar la topología de la CPU usted mismo con la Sockets configuración Parameters personalizada de Slurm para un grupo de nodos de procesamiento. Para obtener más información, consulte Configuración personalizada de Slurm para AWS Grupos de nodos de computación PCS.
-
Establece
Socketsel número de dominios que quieres que Slurm trate como sockets. AWS PCS calcula y establece la coincidenciaCoresPerSocketpor ti. El valor debe dividir el recuento de núcleos del nodo de manera uniforme. -
Parametersnuma_node_as_socketl3cache_as_socketEstablézcalo en o para declarar qué son los dominios.
Conl3cache_as_socket, Sockets es obligatorio: AWS PCS no puede determinar el diseño de la caché L3 de un tipo de instancia, por lo que usted indica el número de dominios de caché L3. Esto se aplica a todas las versiones de Slurm, incluidas la 26.05 y posteriores.
ejemplo— Los dominios de caché L3 son como conectores en un hpc7a.96xlarge grupo de nodos de procesamiento (24 dominios de caché L3, de 8 núcleos cada uno)
aws pcs update-compute-node-group \ --cluster-identifiermy-cluster\ --compute-node-group-identifiermy-cng-1\ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=Sockets,parameterValue=24},{parameterName=Parameters,parameterValue=l3cache_as_socket}]'
nota
AWS El PCS valida la estructura de un Sockets valor, no su exactitud en relación con el hardware. Un valor que no coincide con el diseño real del nodo hace que su ubicación no sea óptima o que la detección automática de la GPU INVALID_REG esté activa.
Topología de GPU con (opcional) AutoDetect
En Slurm 25.11, la detección automática de GPU está desactivada de forma predeterminada. Para suscribirte, agrégalo AutoDetect al registro de GPU del grupo de nodos de procesamiento. gresCustomSettings Para obtener más información, consulte Configuración de los ajustes GRES personalizados en AWS PC.
AutoDetect requiere que se configure la topología de CPU del nodo. El 25.11, eso significa configurar el grupo Sockets de nodos de procesamiento como se describe en la sección anterior. Sin él, los nodos registran una afinidad de GPU que no se ajusta al diseño predeterminado de un núcleo por socket, y Slurm lo establece así. INVALID_REG
A partir de Slurm 26.05
Topología de CPU predeterminada
A partir de Slurm 26.05, AWS PCS configura NUMA-based la topología de la CPU de forma predeterminada. AWS El PCS determina el número de dominios NUMA a partir del tipo de instancia del grupo de nodos de procesamiento, los conjuntos Sockets y en cada nodo. CoresPerSocket Parameters=numa_node_as_socket
Se aplican las siguientes reglas:
-
Si un grupo de nodos de procesamiento usa varios tipos de instancias, AWS PCS aplica la topología predeterminada solo cuando todos tienen el mismo número de dominios NUMA. De lo contrario, AWS PCS deja la topología sin definir, de manera que coincide con el comportamiento de las versiones anteriores.
-
Si estableces
Socketsla configuración personalizada de Slurm del grupo de nodos de procesamiento, tu valor tiene prioridad y AWS PCS no se suma.ParametersUtilízala para anular la configuración predeterminada, por ejemplo, para usar los dominios de caché L3 como socketsParameters=l3cache_as_socket, lo que sigue necesitando tu valor.Sockets
nota
La topología automática se aplica a los clústeres creados con Slurm 26.05 o posterior, y a los clústeres cuando los actualizas a la 26.05 o posterior.
Detección automática de GPU de forma predeterminada
A partir del Slurm 26.05, AWS PCS habilita la detección automática de GPU de forma predeterminada. AWS PCS aumenta AutoDetect=full el registro de GPU que genera para un grupo de nodos de procesamiento de GPU cuando se conoce la distribución de los sockets del nodo, ya sea porque AWS PCS configuró la topología de la CPU automáticamente o porque usted mismo la configuró. Sockets Cuando la disposición de los sockets no está disponible, AWS PCS emite su registro de GPU sin ellaAutoDetect, lo que coincide con el comportamiento de las versiones anteriores. Para obtener más información sobre el registro de GPU que genera AWS PCS y sobre cómo concilia ese registro con el suyo, consulte. Cómo AWS PCS aplica sus registros gres.conf