Esta traducción es más antigua que la página original y podría estar obsoleta. Ver lo que ha cambiado.
Estás aquí: start » es » centro » servizos » hpc

Cluster de Computación de Altas Prestacións (HPC) ctcomp3

¡Esta es una revisión vieja del documento!


Computación de Altas Prestaciones (HPC)

Instrucciones rápidas de uso del cluster

Introducción

Funcionamiento básico de un clúster de computación

El Cluster de Computación de Altas Prestaciones (HPC, High Performance Computing) proporciona a los investigadores una una infraestructura compartida que sirve como plataforma adecuada a la ejecución de procesos computacionalmente costosos.

Un cluster de computación se compone de un conjunto de nodos interconectados mediante una red dedicada que puede actuar como un único elemento computacional. Esto proporciona una gran potencia, permitiendo la ejecución de trabajos paralelos muy grandes o muchas ejecuciones pequeñas de forma concurrente.

Un sistema de gestión de colas (SGC) es un software que planifica la ejecución de los trabajos que se encuentra habitualmente en los sistemas de este tipo, ya que permite una gestión eficiente de los recursos con múltiples usuarios. En este clúster está instalado el sistema PBS/TORQUE.

La dinámica de funcionamiento de un sistema de este tipo es la siguiente:

  1. El usuario solicita la ejecución de una tarea1) con unos recursos determinados.
  2. El sistema registra la solicitud en una de sus colas de entrada2) y, según la cantidad de recursos solicitados, la deriva a una cola de sistema determinada 3).
  3. En función de la prioridad de la cola de sistema (a menores recursos necesarios, mayor prioridad) y de la disponibilidad de los recursos en el sistema, la tarea se enviará a uno o varios de los nodos computacionales. Al terminar la ejecución, se devolverá la salida generada.

Lo habitual es que la ejecución tenga que esperar en la cola hasta que los recursos estén disponibles y preparados. Además, resulta imposible realizar así ejecuciones de manera interactiva4).

Descripción del hardware

El clúster ctcomp2 es un clúster heterogéneo, formado por 8 nodos computacionales HP Proliant BL685c G7, 5 nodos Dell PowerEdge M910 y 5 nodos Dell PowerEdge M620.

Nombre del nodo Modelo Núcleos por nodo (NUMAs, Sockets, Cores/socket, Threads/core) Memoria RAM
node1-7 HP Proliant BL685c G7 64 (8, 4, 8, 2) 128GB
inode11-15 Dell PowerEdge M910 64 (4, 4, 8, 1) 64GB
inode16-20 Dell PowerEdge M620 32 (2, 2, 8, 2) 64GB

Internamente los nodos computacionales están conectados entre sí a través de varias redes 10 GbE dedicadas. La conexión desde el exterior es de 1Gb.

Casi todos los nodos, a excepción de node1 e inode20 se apagan cuando no se están utilizando durante un rato, lo que podría causar retrasos de varios minutos en la cola aunque el cluster aparentemente esté desocupado.

Información técnica de los procesadores y opciones de BIOS

Descripción del software

El sistema operativo es Debian GNU/Linux 8.6 (jessie).

El sistema de colas que gestiona los trabajos es PBS/Torque, apoyado por CLUES para mejorar la gestión de energía.

El sistema permite compilar y ejecutar código en C++, Java, Python, R, Octave… Puedes consultar el catálogo completo de software disponible en el siguiente enlace: Información del software disponible

Colas de usuario


El sistema PBS del clúster ctcomp2 tiene cuatro colas de usuario y ocho colas de sistema. Las colas de usuario son en realidad colas routing que determinan, en función del número de núcleos computacionales solicitados, la cola de sistema en la que debe ejecutarse cada trabajo. Los usuarios deben enviar sus trabajos a las colas de usuario, ya que no pueden enviar trabajos directamente a las colas de sistema.

Independientemente del tipo de cola que se utilice para el envío de trabajos, los únicos parámetros que puede solicitar el usuario son el número de nodos, el número de núcleos (procesos) por nodo y el tiempo de ejecución. La memoria asignada y el tiempo máximo de ejecución de un trabajo están determinados por la cola de sistema en la que se ejecute el trabajo. Los trabajos que superen estos límites durante su ejecución serán cancelados. Por lo tanto, aquellos trabajos en los que tanto la memoria como el tiempo de ejecución son críticos, se recomienda a los usuarios modificar el número de procesos solicitados (aunque realmente no se utilicen todos durante su ejecución) para que se garanticen los requisitos del trabajo. El límite máximo de trabajos por usuario y la prioridad de los trabajos es también dependiente de la cola de sistema. Se permite que los usuarios determinen el tiempo de ejecución de los trabajos ya que una estimación precisa de los tiempos de ejecución permite al sistema de colas hacer un uso eficiente de los recursos sin perturbar las prioridades establecidas. En cualquier caso, es recomendable establecer un margen de tiempo suficiente para garantizar la correcta ejecución del trabajo y evitar la cancelación del mismo. Para ejecutar trabajos que no se ajusten a los parámetros de las colas PBS será necesario ponerse en contacto con el responsable del clúster.

Las colas de usuario son batch, short, bigmem e interactive.

  • batch. Es la cola por defecto.5) Admite hasta 10 trabajos por usuario. Los trabajos enviados a esta cola podrán ejecutarse en cualquier cola de sistema.
  • short. Es una cola diseñada para disminuir el tiempo de espera de trabajos que no sean muy costosos temporalmente (máximo 12 horas) y que no consuman muchos recursos (menos de 16 núcleos computacionales). La cola short tiene una mayor prioridad que la cola batch y admite hasta 40 trabajos por usuario. Los trabajos enviados a esta cola solo pueden ejecutarse en un subconjunto de las colas de sistema: np16, np8, np4, np2 y np1. Para solicitar la ejecución de un trabajo en la cola short es necesario indicarlo explícitamente con la opción -q del comando qsub:
ct$ qsub -q short script.sh 
  • bigmem. Es una cola diseñada para trabajos que consuman mucha memoria. Esta cola reservará un nodo de 64 núcleos completo para el trabajo del usuario, por lo que se deben indicar nodes=1:ppn=64 en la opción -l de qsub. Esta cola tiene una mayor prioriodad que la cola batch y está limitada a dos trabajos por usuario. Para solicitar la ejecución de un trabajo en la cola bigmem es necesario indicarlo explícitamente con la opción -q del comando qsub:
ct$ qsub -q bigmem script.sh 
  • interactive. Esta cola es la única que admite sesiones interactivas en los nodos computacionales. En esta cola solo se admite un trabajo por usuario, con un tiempo máximo de ejecución de 1 hora y se tendrá acceso a un único núcleo de un nodo computacional. La utilización de la cola interactive no requiere un script, pero es necesario indicar la interactividad de nuestro trabajo a través de la opción -I:
ct$ qsub -q interactive -I

Las colas de sistema son np1, np2, np4, np8, np16, np32, np64 y parallel.

  • np1. Trabajos que requieren 1 proceso y 1 nodo. La memoria asociada a los trabajos de esta cola es 1,99 GB y el tiempo máximo de ejecución 672 horas.
  • np2. Trabajos que requieren 2 procesos. La memoria asociada a los trabajos de esta cola es 3,75 GB y el tiempo máximo de ejecución 192 horas.
  • np4. Trabajos que requieren 4 procesos. La memoria asociada a los trabajos de esta cola es 7,5 GB y el tiempo máximo de ejecución 192 horas.
  • np8. Trabajos que requieren 8 procesos y, como máximo, 5 nodos. La memoria asociada a los trabajos de esta cola es 15 GB y el tiempo máximo de ejecución 192 horas.
  • np16. Trabajos que requieren 16 procesos y, como máximo, 5 nodos. La memoria asociada a los trabajos de esta cola es 31 GB y el tiempo máximo de ejecución 192 horas.
  • np32. Trabajos que requieren 32 procesos y, como máximo, 5 nodos. La memoria asociada a los trabajos de esta cola es 63 GB y el tiempo máximo de ejecución 288 horas.
  • np64. Trabajos que requieren 64 procesos y, como máximo, 5 nodos. La memoria asociada a los trabajos de esta cola es 127 GB y el tiempo máximo de ejecución 384 horas.
  • parallel. Trabajos que requieren más de 32 procesos en, al menos, 2 nodos diferentes. La memoria asociada a los trabajos de esta cola es 64 GB y el tiempo máximo de ejecución 192 horas.

La siguiente tabla resume las características de las colas de usuario y de sistema del clúster ctcomp2:

Cola Límites
Procesos Nodos Memoria (GB) Trabajos/usuario Tiempo máximo (horas) Prioridad6)
batch 1-64 - - 256 - 1
short 1-16 - - 256 - 3
bigmem 64 - - 8 - 2
interactive 1 1 2 1 1 7
np1 1 1 1,99 300 672 6
np2 2 2 3,75 150 192 5
np4 4 4 7,5 75 192 4
np8 8 5 15 40 192 4
np16 16 5 31 20 192 3
np32 32 5 63 10 288 2
np64 64 5 127 5 384 1
parallel 32-160 5 64 15 192 3
  • Procesos: Número máximo de procesos por trabajo en esta cola.
  • Nodos: Número máximo de nodos en los que se ejecutará el trabajo en esta cola.
  • Memoria: Cantidad de memoria virtual máxima usada de modo concurrente por todos los procesos del trabajo.
  • Trabajos/usuario: Número máximo de trabajos por usuario en esta cola. Es independiente del estado de dichos trabajos.
  • Tiempo máximo (horas): tiempo real máximo durante el que el trabajo puede estar en ejecución.
  • Prioridad: Prioridad de la cola de ejecución frente a las otras. Un valor más alto expresa una mayor prioridad. Nótese que esto implica que ante la falta de otros criterios, cualquier trabajo enviado con qsub sin definir parámetros se ejecutará en np1 con los límites de dicha cola.
1)
Normalmente un script de bash
2)
Típicamente batch
3)
Llamadas np1, np2, np4
4)
Sin embargo, existe una cola interactiva especial para ejecuciones interactivas, orientada a solucionar problemas en las ejecuciones
5)
Si no se especifica una cola particular, mediante la opción -q del comando qsub, el trabajo se asignará a la cola batch.
6)
Mayor número = mayor prioridad