Herramientas de usuario

Herramientas del sitio


hpc:inicio_rapido

Guía de Inicio Rápido en HPC

Inicio de Sesión

Todos los usuarios pueden acceder mediante SSH al Clúster HPC, utilizando el puerto 2022:

$ ssh <nombre_de_usuario>@login.uclv.hpc.cu -p 2022

Contraseña

Es posible cambiar la contraseña incial desde el nodo login, una vez iniciada la sesión en el nodo de login, ejecutar:

 passwd <nombre_de_usuario>

La nueva contraseña debe cumplir los siguientes requerimientos:

  • Contener al menos 10 caracteres,
  • Mezclar mayúsculas y minúsculas, así como caracteres numéricos y especiales,
  • No emplear palabras comunes,
  • No emplear nombres de familiares, identificadores de usuarios, etc.,
  • No emplear una contraseña de otro sistema.

Puede generar contraseñas fuertes en passwordsgenerator.net

El uso de una contraseña débil puede comprometer el acceso a nuestro clúster por lo que se recomienda encaracidamente emplear contraseñas generadas aleatoriamente y que cumplan los requerimientos anteriores.

Sistema de Archivos

Contamos con un sistema de archivos con las siguientes características:

DirectorioFunciónCuotaEliminado de archivos
/home/CLUSTER/nombre_usuarioDirectorio principal del usuario*SI
200 GB
NO

*Este directorio es compartido a todos los nodos a través de NFS. Los archivos creados en este directorio son inmediatamente visibles en todos los nodos.

Cuotas

Cada usuario tiene un límite de 200 GB de cuota en su directorio de trabajo. Cuando se excede dicha capacidad debe ser liberado espacio para poder continuar trabajando.

Copias de seguridad

Nuestro sistema de archivos se encuentra en un SAN que cuenta con un arreglo de discos del tipo RAID5, lo que da cierto nivel de seguridad a la información, pero se considera una copia de seguridad. Por esta razón los usuarios deben tener siempre una copia de la información que suben al clúster.

El directorio /opt

El directorio /opt contiene todas las aplicaciones instaladas en el clúster. En esta dirección las aplicaciones son instaladas principalmente en el directorio del preyecto EasyBuild (/opt/easybuild/software), organizados por el nombre del software y la versión. Este directorio es compartido a todos los nodos por NFS.

El directorio /home/CLUSTER/_ejemplos

En este directorio se encuentran algunos ejemplos de scripts para la ejecución de programas en el clúster. Estos scripts se han ido creando con la ayuda de los usuarios y si usted quiere colaborar puede contactarnos a través de la dirección: suporteuclv@listas.hpc.cu.

Módulos

Para el soporte de entorno de módulos nuestro clúster emplea Lmod. Un módulo puede ser asociado con una versión particular de un compilador o de diferentes librerías MPI. Al cargar un módulo se establecen las variables de entorno requeridas para los binarios y archivos de librerías necesarios a la hora de compilar y ejecutar trabajos.

Para listar los módulos disponibles en el clúster:

$ module avail

Por defecto no es cargado ningún módulo. Para cargar por ejemplo el módulo ABAQUS:

$ module load ABAQUS

Si deseas hacer permanente la carga del módulo anterior cada vez que inicias sesión, edita el archivo ~/.bashrc y al final agrega:

$ module load ABAQUS 

Es posible listar cada uno de los módulos cargados:

$ module list

Currently Loaded Modules:
  1) ABAQUS/2016HF3-x86_64

Comandos útiles

$ module unload <module>     -> desactiva un módulo previamente cargados.
$ module purge               -> desactiva todos los módulos.
$ module whatis <module>     -> muestra una pequeña descripción del módulo especificado.
$ module show   <module>     -> muestra el contenido del módulo. 

Para más información sobre module:

$ module help

.bashrc

El entorno predeterminado debe ser establecido automáticamente mediante Lmod y los scripts de inicialización. Por ejemplo, los programas esenciales para compilar, administración de cuotas, ejecución y programación de trabajos, etc., son definidos como se mencionó anteriormente. Esto funciona a través de las variables de entorno PATH y LD_LIBRARY_PATH, así como otras variables con valores particulares.

Por favor, tenga cuidado al editar su archivo ~/.bashrc. Cualquier modificación errónea en el mismo puede hacer que su entorno deje de funcionar correctamente. Si necesitas modificar las variables PATH y LD_LIBRARY_PATH, por favor aségurate de conservar los valores previos de las mismas, por ejemplo:

export PATH=/tu/ruta/personalizada/elemento:$PATH
export LD_LIBRARY_PATH=/tu/rutalibreria/personalizada/element:$LD_LIBRARY_PATH

Compilando

En el mundo Linux, generalmente los programas son distribuidos con su código fuente, por lo que se hace necesario compilarlos para luego instalarlos. Este procedimiento puede variar en dependencia de la forma en que fue creado, aunque existen fundamentalmente dos formas de hacerlo:

  1. Utilizando el comando configure / make.
  2. Utilizando el comando cmake.

Sin importar la forma de compilar su programa siempre hay algunos pasos que son comunes a ambos métodos:

  • Cree una carpeta donde desee colocar los fuentes del programa.
  • Localice el programa y copiélo para la carpeta creada.
  • Descomprima el archivo. Por lo general, lo programas en Linux son distribuidos en forma de “tarball” con alguna de las extensiones .tar, .tar.bz2, o .tar.gz. o .zip. Si su programa tiene la extensión .tar.gz o .tgz, por ejemplo, usted puede extraer su contenido de la siguiente forma:
$ tar -xzvf nombre_archivo.tgz
  • El proceso anterior crea una carpeta con el nombre del programa y usted debe dirigirse a ella para comenzar el proceso de compilación/instalación.
  • Busque dentro del directorio del programa un fichero llamado README o INSTALL, en ellos se explica el procedimiento de instalación y los programas que necesita tener instalados para poder completar con éxito el proceso.
  • Antes de comenzar la compilación de su código usted debe cargar los módulos de los programas requeridos utilizando el comando module load nombre_módulo.
  • En el proceso de compilación usted debe especificar el directorio donde quedará instalado el programa. Este paso es importante, debido a que por defecto los programas en Linux se instalan en la carpeta /usr y para poder escribir en dicha dirección el usuario debe tener permisos administrativos. En el caso de utilizar el procedimiento de compilación configure, usted puede utilizar la opción –prefix de la siguiente forma:
$ ./configure --prefix=~/nombre_programa
$ make
$ make install

En el ejemplo anterior, el programa será compilado e instalado en la dirección /home/CLUSTER/nombre_de_usuario/nombre_programa.

Ejecución

Por favor, tenga en cuenta las siguientes limitaciones:

En el clúster existen diferentes particiones (colas) de acceso divididas fundamentalmente, en paralelas y seriales en las que los límites máximos son de 34 núcleos CPU por usuario y un máximo wallclock de 14 días por trabajo.

Para comenzar, vea los scripts de ejemplos que se encuentran en la dirección /home/CLUSTER/_ejemplos, si existe alguno que coincida con el programa que usted necesita ejecutar puede copiarlo para su carpeta de trabajo y modificar los parámetros que necesite para luego lanzarlo a la cola de trabajo del clúster utilizando el comando sbatch.

Por ejemplo, el scripts /home/CLUSTER/_ejemplos/ffmpeg/ffmpeg-cpu.sl se utiliza para ejecutar el codificador ffmpeg en CPU y está dividido en dos partes fundamentales, la primera de ellas está dedicada a definir los recursos que se demandaran del clúster y la segunda parte donde el usuario específica los parámetros necesarios para ejecutar el programa.

El clúster MAMBÍ utiliza el planificador de tareas SLURM:

A continuación algunos comandos de utilidad:

sinfo                       -> Muestra información glonbal sobre el clúster.
scontrol show job job_id    -> Muestra información sobre un trabajo determinado.
scontrol show node nodename -> Muestra información sobre un nodo.
sbatch job_script           -> Envía a la cola del sistema un script creado por el usuario.
srun                        -> Ejecuta  un comando como un nuevo trabajo o dentro de uno existente.
scancel job_id              -> Elimina un trabajo del sistema.

Una vez que usted haya compilado, ejemplo un binario llamando programa, usted puede enviar dicho programa a la cola del sistema de la siguiente forma:

Primeramente, copie la plantilla del script SLURM y edite las opciones necesarias:

cp /home/CLUSTER/_ejemplos/slurm/trabajo_serial.sl slurm_submit 
#!/bin/bash
#SBATCH --job-name=serial_job_test   # Nombre del Trabajo
#SBATCH --mail-type=ALL              # Eventos de notificación vía correo (NONE, BEGIN, END, FAIL, ALL)
#SBATCH --mail-user=<email_address>  # Email donde enviar los eventos de notificación	
#SBATCH --partition=public           # Nombre de la partición donde se ejecutara el trabajo
#SBATCH --ntasks=1                   # Ejecutar una tarea simple	
#SBATCH --mem=600mb                  # Total de memoria limite
#SBATCH --time=00:05:00              # Limite de tiempo  hrs:min:sec
#SBATCH --output=serial_%j.out       # Salida estándar y log de error

# Cargar el o los módulos necesarios
module load OpenMPI

# Establecer el directorio de trabajo. 
# La variable SLURM_SUBMIT_DIR almacena la dirección donde se ejecutó el trabajo 
cd $SLURM_SUBMIT_DIR

# Ejecución del programa, por ejemplo el comando hostname

hostname
sbatch slurm_submit

El estado de los trabajos en la cola pueden ser monitoreados utilizando los comandos qstat o squeue

Cuándo el trabajo termina (correctamente o con errores) normalmente se crea un archivo de logs con el nombre serial-job_id.out y un correo es enviado si usted especificó ese parámetro en la configuración del script.

hpc/inicio_rapido.txt · Última modificación: 2018/10/31 10:46 por jrbosch