Descripción de cómo ejecutar Slurm con Azure CycleCloud
Después de completar esta unidad, debe poder usar Slurm en Azure CycleCloud.
Habilitación de Slurm en CycleCloud
Puede implementar un clúster de Informática de alto rendimiento (HPC) (HPC) mediante Azure CycleCloud mediante los pasos siguientes:
Conéctese a una instancia implementada de Azure CycleCloud y autentíquese.
En la página Crear un nuevo clúster, revise las opciones disponibles y, en la sección Schedulers, seleccione Slurm.
En el pestaña Acerca de en la página Nuevo clúster de Slurm, proporcione un nombre para el clúster de Slurm en el cuadro de texto nombre de clúster .
En la pestaña Configuración necesaria de la página Nuevo clúster de Slurm, configure los siguientes valores en el cuadro de texto nombre de clúster:
- Región: Define qué centro de datos hospedará los nodos del clúster.
- tipo de máquina virtual del programador: Permite especificar la SKU de la máquina virtual que hospedará el programador de trabajos.
- tipo de máquina virtual HPC: Permite especificar la SKU de la máquina virtual que hospedará las cargas de trabajo de partición de HPC.
- tipo de máquina virtual HTC: Permite especificar la SKU de la máquina virtual que hospedará las cargas de trabajo de partición de HTC.
- escalado automático: Permite habilitar o deshabilitar el inicio y la detención de instancias de máquina virtual que hospedan nodos de partición cuando esos nodos son necesarios o ya no son necesarios.
- max HPC Cores: Número máximo de núcleos de CPU que se pueden asignar a las particiones de HPC en el escalado automático.
- max HTC Cores: Número máximo de núcleos de CPU que se pueden asignar a particiones HTC en el escalado automático.
- número máximo de máquinas virtuales por conjunto de escalado: Número máximo de máquinas virtuales que se pueden usar para hospedar cargas de trabajo de partición.
- usar instancias de spot: Determina si desea permitir el uso de instancias de acceso puntual de Azure. Aunque las instancias de spot son considerablemente más baratas para ejecutarse, se pueden quitar sin advertencia, lo que puede afectar a la ejecución del trabajo.
- Identificador de subred: La subred de la red virtual Azure que hospedará las máquinas virtuales del nodo de clúster.
En la página Network Attached Storage, configure si usará las opciones Builtin o External NFS para el montaje de almacenamiento conectado a la red. Al seleccionar Builtin, el nodo programador se configura como un servidor NFS que funciona como punto de montaje para otros nodos. Si especifica NFS externo, puede proporcionar los detalles de un dispositivo de almacenamiento conectado a la red, como Azure NetApp Files, HPC Cache o una máquina virtual especialmente configurada que ejecuta un servidor NFS.
En la página Configuración avanzada, puede especificar la siguiente configuración:
- Versión de Slurm: Elija la versión de Slurm que se va a usar con el clúster.
- Contabilidad de trabajos: Especifique si desea habilitar la contabilidad del trabajo y la configuración que elegirá para almacenar los datos de contabilidad.
- Directiva de apagado: Puede elegir entre terminar la instancia o desasignarla.
- Credenciales: Credenciales para conectarse a la suscripción de Azure asociada.
- sistema operativo scheduler: Elija qué sistema operativo Linux se usa para hospedar el programador.
- SISTEMA OPERATIVO HPC: Especifique qué sistema operativo Linux se usa para hospedar el programador.
- Init del clúster de Scheduler: Aquí se especifican instrucciones personalizadas que se aplicarán a la máquina virtual del programador.
- HTC Cluster Init: Especifique instrucciones personalizadas para aplicar a los nodos HTC.
- Redes avanzadas: Esta opción permite habilitar el proxy de devolución, si se puede acceder al nodo principal desde direcciones de Internet y si se puede acceder a los nodos de ejecución desde Internet.
La página Cloud-init le permite pasar opciones de configuración personalizadas a los nodos de máquina virtual después de implementarlos.
Configuración de memoria
CycleCloud establece automáticamente la cantidad de memoria disponible para Slurm que se utilizará para fines de programación. Dado que la cantidad de memoria disponible puede cambiar ligeramente debido a diferentes opciones del kernel de Linux, y el sistema operativo y la máquina virtual pueden usar una pequeña cantidad de memoria que, de lo contrario, estaría disponible para los trabajos, CycleCloud reduce automáticamente la cantidad de memoria en la configuración de Slurm. De forma predeterminada, CycleCloud conserva el cinco por ciento de la memoria disponible notificada en una máquina virtual, pero puede invalidar este valor en la plantilla de clúster estableciendo slurm.dampen_memory
en el porcentaje de memoria que se va a retener. Por ejemplo, para retener el 20 % de la memoria de una máquina virtual, use:
slurm.dampen_memory=20
Configuración de particiones de Slurm
La plantilla predeterminada que se incluye con Azure CycleCloud tiene dos particiones (HPC y HTC) y puede definir matrices de nodos personalizadas que se asignan directamente a particiones de Slurm. Por ejemplo, para crear una partición de GPU, agregue la siguiente sección a la plantilla de clúster:
[[nodearray gpu]]
MachineType = $GPUMachineType
ImageName = $GPUImageName
MaxCoreCount = $MaxGPUExecuteCoreCount
Interruptible = $GPUUseLowPrio
AdditionalClusterInitSpecs = $ExecuteClusterInitSpecs
[[[configuration]]]
slurm.autoscale = true
# Set to true if nodes are used for tightly-coupled multi-node jobs
slurm.hpc = false
[[[cluster-init cyclecloud/slurm:execute:2.0.1]]]
[[[network-interface eth0]]]
AssociatePublicIpAddress = $ExecuteNodesPublic
Edición de clústeres de Slurm existentes
Si modifica y aplica cambios a un clúster de Slurm existente, debe recompilar el archivo slurm.conf
y actualizar los nodos existentes en el clúster. Puede hacerlo mediante un script presente en clústeres de Slurm implementados en Azure cyclecloud mediante un script especial denominado cyclecloud_slurm.sh
. El script se encuentra en el directorio /opt/cycle/slurm
en el nodo programador de Slurm. Una vez realizados los cambios realizados en el clúster, ejecute el siguiente script como raíz con el parámetro apply_changes
. Por ejemplo, use/opt/cycle/slurm/cyclecloud_slurm.sh apply_changes
si realiza cambios que afectan a los nodos que participan en una partición de interfaz de paso de mensajes (MPI).
Deshabilitación del escalado automático para nodos o particiones
Puede deshabilitar la escalabilidad automática para un clúster de Slurm en ejecución editando el archivo slurm.conf
directamente. Puede excluir nodos individuales o particiones completas de la escalabilidad automática.
Para excluir un nodo o varios nodos del escalado automático, agregue SuspendExcNodes=<listofnodes>
al archivo de configuración de Slurm. Por ejemplo, para excluir los nodos 1 y 2 de la partición HPC, agregue lo siguiente a /sched/slurm.conf
y reinicie el servicio slurmctld:
SuspendExcNodes=hpc-pg0-[1-2]
Para excluir particiones, también modifique el archivo /sched/slurm.conf
. Por ejemplo, para excluir la partición de HPC del escalado automático, agregue la siguiente línea a slurm.conf
y reinicie el servicio slurmctld
:
SuspendExcParts=hpc