This translation is older than the original page and might be outdated. See what has changed.
You are here: start » en » centro » servizos » hpc

High Performance Computing (HPC) cluster ctcomp3

This is an old revision of the document!


FIXME This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)

High Performance Computing (HPC)

Quick usage instructions

Introduction


High Performance Computing (HPC from now on) infrastructures offer CITIUS researchers a platform to resolve problems with high computational requirements. A computational cluster is an set of nodes interconnected by a dedicated network that can act as a single computational element. This offers a huge computational power (allowing the execution of a big parallel job or several concurrent small executions) in a shared infrastructure.

A queue management system is a program that plans how and when jobs will execute using the available computational resources. Allows for an efficient use of computational resources in systems with multiple users. In the our cluster we use PBS/TORQUE.

The way these systems work is:

  1. The user requests some resources to the queue manager for a computational task. This task is a set of instructions written in a script.
  2. The queue manager assigns the request to one of its queues.
  3. When the requested resources are available and depending on the priorities established by the system, the queue manager executes the task and stores the output.

It is important to note that the request and the execution of a given task are independent actions that are not resolved atomically. In fact it is usual that the execution of the task has to wait in one of the queues until the requested resources are available. Also, interactive use is impossible.

Hardware description

Ctcomp2 is a heterogeneous cluster, composed of 8 HP Proliant BL685c G7, 5 Dell PowerEdge M910 and 5 Dell PowerEdge M620 nodes.

  • Each HP Proliant node has 4 AMD Opteron 6262 HE (16 cores) processors and 256 GB RAM(except node1 and the master with 128GB).
  • Each Dell PowerEdge M910 node has 2 Intel Xeon L7555 (8 cores, 16 threads) processors and 64 GB RAM.
  • Each Dell PowerEdge M620 node has 2 Intel Xeon E5-2650L (8 cores, 16 threads) processors and 64 GB RAM.
  • Connection with the cluster is made at 1Gb but nodes are connected between them by several 10 GbE networks.

Software description

The job management is done by the queue manager PBS/TORQUE. To improve energetic efficiency an on demand power on and off system called CLUES has been implemented.

User queues


There are four user and eight system queues. The user queues are routing queues that set, depending on the number of computational numbers requested, the system queue in which each job is going to be executed. Users can't send their jobs directly to the system queues, jobs have to be submitted to the user queues.

Independently of the type of queue used for job submissions, an user can only specify the following parameters: node number, process number per node and execution time. Size of memory assigned and maximum execution time of a job are determined by the system queue in which the job gets routed. Jobs that exceed those limits during execution will be canceled. Therefore for jobs in which both memory and execution time are critical it is recommended to modify the number of process requested (even though not all of them get used during the execution) to guarantee that the job needs are fulfilled. The system queue also determines the maximum number of jobs per user and their priority. Users are allowed to specify the job execution time because a precise estimation of execution times allows the queue management system to use resources efficiently without disturbing established priorities. Anyway it is advisable to set an execution time long enough as to guarantee the correct execution of the job and avoid its cancellation. To execute jobs that don't adjust to queue parameters get in touch with the IT department.

User queues are batch, short, bigmem and interactive.

  • batch. It's the default queue.1) Accepts up to 10 jobs per user. Jobs sent to this queue can be executed by any system queue.
  • short. This queue is designed to reduce the waiting time of jobs that don't need much computational time (maximum 12 hours) and that don't use many resources. 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) Prioridad2)
batch 1-64 - - 128 - 1
short 1-16 - - 256 - 3
bigmem 64 - - 8 - 2
interactive 1 1 2 1 1 7
np1 1 1 1,99 120 672 6
np2 2 2 3,75 120 192 5
np4 4 4 7,5 60 192 4
np8 8 5 15 60 192 4
np16 16 5 31 15 192 3
np32 32 5 63 15 288 2
np64 64 5 127 3 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)
If no queue is specified with the -q parameter of the qsub command job will be assigned to the batch queue.
2)
Mayor número = mayor prioridad