Version 11 (modified by carlos, 8 years ago) (diff) |
---|
ALTAMIRA
Se recomienda la lectura la guía de usuario del Supercomputador Altamira antes de la realización de la práctica.
Práctica 1
El objetivo de esta práctica es tomar contacto con el uso del Supercomputador Altamira, así como del sistema de colas SLURM instalado en él:
- Conéctese al frontend de Altamira (altamira1.ifca.es) mediante el comando ssh (Linux/Mac OS) o el programa PyTTY (Windows). Para ello, previamente cada alumno ha recibido un correo con una cuenta y una clave de acceso:
[user@localmachine ~]$ ssh user@altamira1.ifca.es
- Desde el frontend, utilizando la plantilla que se adjunta enviar un job. Para lo cual, será necesario utilizar el comando mnsubmit, así como los editores vi o nano.
Plantilla:
#!/bin/bash #@ job_name = sleep_%j #@ initialdir = . #@ output = sleep_%j.out #@ error = sleep_%j.err #@ total_tasks = 1 #@ wall_clock_limit = 00:02:00 echo "Nodo: ${SLURM_NODELIST}" echo "Hora de inicio `date`" sleep 30 echo "Hora de fin `date`"
- Envío de jobs:
[user@login1 ~]$ mnsubmit sleep_template Submitted batch job 621336
- Para monitorizar el job use el comando mnq:
[user@login1 ~]$ mnq JOBID NAME USER STATE TIME TIMELIMIT CPUS NODES NODELIST(REASON) 621336 0.sleep_ user PENDING 0:00 2:00 1 1 (Priority)
- Comprobar el resultado obtenido en los ficheros de output(sleep_%j.out) y error(sleep_%j.err).
Práctica 2
Una vez enviado nuestro primer job,
[user@login1 ~]$ module load gcc load gcc/4.6.3 (PATH, MANPATH, LD_LIBRARY_PATH)
[user@login1 ~]$ gcc HelloWorldOpenMP.c -fopenmp -o HelloWorldOpenMP
#!/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_NNODES}" echo "Nodos: ${SLURM_NODELIST}" ./HelloWorldOpenMP
$ module load gcc load gcc/4.6.3 (PATH, MANPATH, LD_LIBRARY_PATH) $ mnsubmit HelloWorldOpenMP_template Submitted batch job 621342
- Compruebe el resultado obtenido en los ficheros output (openmp_%j.out) y error (openmp_%j.err).
Práctica 3
Repita el envío del job de la práctica 3 modificando el número de threads a ejecutar, pero sin modificar el número de nodos. Para ello, utilice la variable de entorno OMP_NUM_THREADS. La platilla a utilizar en ese caso será:
#!/bin/bash #@ job_name = openmp_%j #@ initialdir = . #@ output = openmp_%j.out #@ error = openmp_%j.err #@ total_tasks = 32 #@ wall_clock_limit = 00:02:00 export OMP_NUM_THREADS=XX echo "Numero de procesos: ${SLURM_NPROCS}" echo "Numero de nodos: ${SLURM_NNODES}" echo "Nodos: ${SLURM_NODELIST}" ./HelloWorldOpenMP
Donde XX es el número de threads.