Preguntas Más Frecuentes

1.- Quiero usar el supercomputador, ¿qué tengo que hacer?

Todos los investigadores de la UCA que lo necesiten pueden solicitar una cuenta en el supercomputador a través del correspondiente CAU
A efectos de uso del supercomputador entendemos como investigador:

  • Miembros del PDI de la UCA
  • Alumnos que estén realizando la tesis doctoral y que estén avalados por su correspondiente tutor.
  • Investigadores externos pero encuadrados en algún proyecto de investigación del que forme parte la UCA, siempre que dichos investigadores estén avalados por el responsable del proyecto dentro de la UCA (miembro del PDI).

2.- ¿Cómo me conecto al cluster cai?

El sistema para conectarse al supercomputador es mediante el protocolo ssh. Para ello, desde Linux, sólo hay que ejecutar el comando:
ssh -X cai3 -l uDNI
Sustituyendo “DNI” por el correspondiente número sin la letra, al igual que se usa en otros servicios de la UCA. De la misma forma, la contraseña correspondiente es la misma que para esos servicios. La opción -X es para ejecutar programas gráficos.
Desde Windows tendrá que instalar un cliente SSH. Uno muy popular es PuTTY. También hay otro en la página de descarga de software de la UCA. Tenga en cuenta que aquí no podrá ejecutar programas gráficos a menos que busque e instale un servidor X-Window para MS-Windows. Se recomienda Xming, que se integra perfectamente con PuTTY.

3.- ¿Cómo paso mis ficheros al supercomputador o desde este a mi PC?

Desde Linux puede usar el comando scp que, desde su pc sería así:
scp fichero.dat uDNI@cai3:~
Este comando dejaría el fichero “fichero.dat” en su directorio de inicio.
Para la transferencia de ficheros en Windows puede usar Filezilla (win64 o win32).

4.- ¿Dónde dejo mis datos?

En CAI tenemos dos lugares donde podemos dejar nuestros datos: el HOME o carpeta de inicio y /scratch. Para evitar que alguien pueda colapsar estos sistemas de ficheros, tenemos establecida una cuotas de disco tal como sigue:

Sistema de ficheros Límite blando Límite duro
/home 8Gb 10Gb
/scratch 100Gb 120Gb

Al alcanzar el límite blando el sistema alertará al usuario, aunque le permitirá seguir añadiendo datos. Sin embargo el límite duro no se puede rebasar. Si es necesario rebasarlo en algún caso puntual y justificado, deberá ponerse en contacto con el administrador del sistema a través del CAU correspondiente e indicarlo.

5.- Después de un rato conectado, el sistema me echa. ¿Estoy haciendo algo mal?

El nodo de acceso le da 10 minutos de tiempo de CPU, suficiente para trabajar interactivamente durante mucho tiempo, pero no para lanzar cálculos en él. Para eso está el clúster de nodos de cómputo, que está gobernado por un sistema de colas llamado SLURM. Tiene documentación sobre este software, así como sobre el curso que se dio en su día para usuarios en este enlace.

6.- Ya tengo mis programas y estoy conectado. ¿Cómo lanzo un trabajo?

El supercomputador se gestiona mediante el software SLURM para gestión de colas de trabajo. La documentación correspondiente se halla en en este enlace y en la web de Slurm.
El comando preferido para el lanzamiento de trabajos es sbatch. Este comando necesita un script para ejecutar los programas que se requieran. A continuación presentamos un esqueleto de dicho script que deberá ser modificado por el investigador para adecuarlo a sus necesidades, cambiando los elementos marcados en rojo.

#!/bin/bash

#------- DIRECTIVAS SBATCH -------

# Datos genericos aplicables a todos los trabajos:

#SBATCH --partition=cn

# - #SBATCH --exclusive

#SBATCH --mail-user=SU.CORREO@uca.es

#SBATCH --mail-type=BEGIN,END,FAIL,TIME_LIMIT_90

#SBATCH --requeue

#SBATCH --share

# Esto para salidas no controladas:

#SBATCH --error=/home/GRUPO/USUARIO/job.%J.err

#SBATCH --output=/home/GRUPO/USUARIO/job.%J.out

# - #SBATCH --workdir="/scratch/USUARIO"

# - #SBATCH --workdir="/scratch_local/USUARIO"

#SBATCH --workdir="/home/GRUPO/USUARIO"

# Descripcion del trabajo:

#SBATCH --job-name="TEST"

#SBATCH --comment="Prueba de SBATCH"

# *** MUY IMPORTANTE ***

# Parametrización del trabajo

# - #SBATCH --account=CUENTA

#SBATCH --tasks=1

# - #SBATCH --cpus-per-task=1

# - #SBATCH --nodes=1

# - #SBATCH --tasks-per-node=1

#SBATCH --time=0-00:05:00

#SBATCH --mem=1GB

# - #SBATCH --gres=gpu:tesla:2

#------- CONFIGURACION ENTORNO -------

# Variables de ambiente exportadas para que estén disponibles en

# todos los procesos hijo

export DATASOURCE=$SLURM_SUBMIT_DIR/input

export DATAEND=$SLURM_SUBMIT_DIR/output

export SCRATCH1=/scratch/$USER

export SCRATCH2=/scratch_local/$USER

# Carga de módulos

#module load matlab

# Configuración del scratch

mkdir -p $SCRATCH1

#------- COPIA DE DATOS AL SCRATCH -------

#sbcast --force --fanout=8 --size=100m $DATASOURCE/$SLURM_JOB_NAME.in 
$SCRATCH2/$SLURM_JOB_NAME.in

#------- EJECUTAMOS EL PROGRAMA -------

srun miprograma < $DATASOURCE/$SLURM_JOB_NAME.in > $SCRATCH1/$SLURM_JOB_NAME.out

#srun miprograma < $SCRATCH2/$SLURM_JOB_NAME.in > $SCRATCH1/$SLURM_JOB_NAME.out

RESULT=$?

#------- SALVAMOS LOS RESULTADOS -------

mv $SCRATCH1 $DATAEND/$SLURM_JOB_ID

#------- ELIMINAMOS FICHEROS TEMPORALES -------

rm -rf $SCRATCH1 $SCRATCH2

#------- FIN -------

exit $RESULT

7.- Mis trabajos se cortan cuando llevan dos días ejecutándose, aunque no han terminado. ¿Qué está pasando?

Slurm es un sistema de gestión de colas inteligente. Según este sistema si un trabajo puede adelantar su ejecución sin perjudicar por ello a los trabajos que están por delante de él en la cola, Slurm lo adelantará.
Para que este sistema funcione correctamente Slurm necesita saber algunos datos, entre ellos el número de CPUs que se requerirán y el tiempo que durará la ejecución.
Aunque usted puede definir una duración arbitraria mediante la opción –time, puede no hacerlo. En ese caso el trabajo tomará la duración por defecto de dos días.

8.- ¿Cómo calculo cuánto tiempo necesito?

Este no es un cálculo fácil y depende de la experiencia que se tenga con el programa en cuestión, pero si es un proceso a muchos datos lo más normal es realizar una prueba con una muestra que nos dirá dos cosas: si el programa funciona y cuánto ha tardado en ejecutar esa muestra. A partir de ahí podemos extrapolar los resultados según el orden del programa (lineal, exponencial, …)
En general se aconseja que, al resultado obtenido, se le sume un 10% más por fiabilidad.
Además es aconsejable anotar los tiempos para mejorar el cálculo en posteriores ejecuciones.

9.- El sistema me avisa que se ha rebasado el 90% del tiempo de ejecución y aún le queda para terminar. ¿Qué puedo hacer?

Pues en este caso, simplemente abre una consulta con nosotros en el CAU indicándonos cuánto tiempo quieres ampliar la ejecución y nosotros lo haremos.

10.- Por qué algunos trabajos se inician antes que otros.

Para proporcionar un reparto equitativo de los recursos del supercomputador, la prioridad de ejecución de trabajos se han fijado los siguientes factores por orden de importancia:
• Reparto justo. Cuanto más se use el supercomputador, menos prioridad tendrán los trabajos. Dando así oportunidad a que otros usuarios puedan usar los recursos.
• Tiempo esperado en la cola. Cuanto más tiempo lleve un trabajo en cola más prioridad tendrá, de modo que los trabajos no se eternicen en ella.
• Tamaño del trabajo. Se da prioridad a los trabajos pequeños, que fácilmente pueden ocupar huecos no usados por los trabajos grandes.
Eso no quiere decir que un trabajo grande de alguien que haya usado mucho el supercomputador no se vaya a ejecutar, sino que puede tardar un poco más en ser ejecutado.

11.- Necesito usar las GPU, ¿Qué tengo que hacer?

Para ello hay que usar la partición gn, en vez de la partición por defecto cn.
El método es sencillo. En el script de ejemplo anterior modifique las líneas
#SBATCH –partition=cn por #SBATCH –partition=gn
# – #SBATCH –gres=gpu:tesla:2 por #SBATCH –gres=gpu:tesla:2