View a markdown version of this page

Configuración de la topología de hardware en AWS PC - AWS PIEZAS

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 AutoDetect mecanismo de Slurm resuelve este problema: cuando un nodo arranca, slurmd 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 Sockets el número de dominios que quieres que Slurm trate como sockets. AWS PCS calcula y establece la coincidencia CoresPerSocket por 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-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 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 Sockets la configuración personalizada de Slurm del grupo de nodos de procesamiento, tu valor tiene prioridad y AWS PCS no se suma. Parameters Utilí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