wiki:SMG

Version 11 (modified by carlos, 6 years ago) (diff)

--

SMG

Se recomienda la lectura la guía de usuario del Cluster SMG antes de la realización de las prácticas.

Práctica 1

El objetivo de esta práctica es tomar contacto con el uso del cluster, así como del sistema de PBS/TORQUE instalado en él:

  • Conéctese al frontend de SMG (ui.macc.unican.es) mediante el comando ssh (Linux/Mac OS) o el programa PyTTY (Windows). Para ello, previamente cada alumno ha recibido una cuenta y una clave de acceso que debe cambiar:
    [user@ui ~]$ ssh user@ui.macc.unican.es
    
  • Desde el frontend, utilizando el comando qstat. Compruebe el numero de colas disponibles en cluster y si la cola 'course' se encuentra entre ellas. Si es así, por medio del comando qstat indique las caracteristicas basicas de la cola.
  • Utilizando la plantilla que se adjunta enviar un job de prueba. Para lo cual, será necesario utilizar el comando qsub, así como los editores vi o nano.

Plantilla:

#!/bin/bash
 
echo "Nodo: $HOSTNAME"

echo "Hora de inicio `date`"
sleep 30
echo "Hora de fin `date`"
  • Envío del job:
    [user@ui ~]$ qsub -q course sleep_template
    
  • Comprobar el resultado obtenido en los ficheros de output y error. ¿ Como modificaria la plantilla para que que el fichero output se llamase 'sleep_template_output' y el error 'sleep_template_error' ?
  • ¿ Como se debe configurar la plantilla para recibir un email en la cuenta de alumnos al inicio y final de la execucion del job ?
  • ¿ Qué comando ha de utilizarse para monitorizar solamente mis jobs?
  • ¿ Qué ocurre si se intenta eliminar un job de otro usuario con el comnado qdel ?

Práctica 2

Una vez enviado nuestro primer job, ejecutaremos un job de tipo openMP usando el código del programa HelloWorldOpenMP.

  • Haciendo uso del compilador gcc, compilar el programa HelloWorldOpenMP.c y generar un ejecutable con el nombre HelloWorldOpenMP:
    [user@ui ~]$ gcc HelloWorldOpenMP.c -fopenmp -o HelloWorldOpenMP
    
  • Plantilla a ejecutar en el supercomputador:
    #!/bin/bash 
    #@ job_name = openmp_%j
    #@ initialdir = .
    #@ output = openmp_%j.out
    #@ error = openmp_%j.err
    #@ total_tasks = 32
    #@ wall_clock_limit = 00:02:00
     
    echo "Numero de procesos: ${SLURM_NPROCS}"
    echo "Numero de nodos: ${SLURM_JOB_NUM_NODES}"
    echo "Numero de procesos por nodo: ${SLURM_JOB_CPUS_PER_NODE}"
    echo "Nodos: ${SLURM_JOB_NODELIST}"
    
    ./HelloWorldOpenMP
    

  • Envió del job openMP:
    $ module load gcc
    load gcc/4.6.3 (PATH, MANPATH, LD_LIBRARY_PATH)
    $ mnsubmit HelloWorldOpenMP_template
    Submitted batch job 621342
    
  • Una vez finalizado el job, compruebe el resultado obtenido en los ficheros output (openmp_%j.out) y error (openmp_%j.err). ¿ El resultado obtenido es el esperado? ¿Por qué?.