Se recomienda la lectura la ?guía de usuario del Supercomputador Altamira antes de la realización de la práctica.
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:
[user@localmachine ~]$ ssh user@altamira1.ifca.es
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`"
[user@login1 ~]$ mnsubmit sleep_template Submitted batch job 621336
[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)
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
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.