Se recomienda la lectura la guía de usuario del Cluster SMG antes de la realización de las prácticas.
El objetivo de esta práctica es tomar contacto con el uso del cluster, así como del sistema de PBS/TORQUE instalado en él:
[user@ui ~]$ ssh user@ui.macc.unican.es
Plantilla:
#!/bin/bash echo "Nodo: $HOSTNAME" echo "Hora de inicio `date`" sleep 30 echo "Hora de fin `date`"
[user@ui ~]$ qsub -q course sleep_template
Una vez enviado nuestro primer job, ejecutaremos un job de tipo openMP usando el código del programa ?HelloWorldOpenMP.
[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_JOB_NUM_NODES}" echo "Numero de procesos por nodo: ${SLURM_JOB_CPUS_PER_NODE}" echo "Nodos: ${SLURM_JOB_NODELIST}" ./HelloWorldOpenMPMás información sobre las variables de entorno (${SLRUM_*}) en el ?link.
$ 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 la variable total_tasks. Para ello, utilice la variable de entorno OMP_NUM_THREADS.
#!/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_JOB_NUM_NODES}" echo "Numero de procesos por nodo: ${SLURM_JOB_CPUS_PER_NODE}" echo "Nodos: ${SLURM_JOB_NODELIST}" ./HelloWorldOpenMPDonde XX es el número de threads a ejecutar.