Changes between Version 1 and Version 2 of openMPIvsMPI


Ignore:
Timestamp:
Jan 10, 2015 7:06:12 PM (7 years ago)
Author:
carlos
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • openMPIvsMPI

    v1 v2  
    44
    55== Práctica 1 ==
    6 El objetivo de esta práctica es tomar contacto con el uso del Supercomputador Altamira, así como del sistema de colas [https://computing.llnl.gov/linux/slurm/ SLURM] instalado en él:
    7 
    8 * Conéctese al frontend de Altamira (altamira1.ifca.es) mediante el comando `ssh` (!Linux/Mac OS) o el programa [http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe PyTTY] (Windows). Para ello, previamente cada alumno ha recibido un correo con una cuenta y una clave de acceso:
    9 {{{
    10 [user@localmachine ~]$ ssh user@altamira1.ifca.es
    11 }}}
    12 
    13 * 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'''.
    14  
    15  Plantilla:
    16 {{{
    17 #!/bin/bash
    18 #@ job_name = sleep_%j
    19 #@ initialdir = .
    20 #@ output = sleep_%j.out
    21 #@ error = sleep_%j.err
    22 #@ total_tasks = 1
    23 #@ wall_clock_limit = 00:02:00
    24  
    25 echo "Nodo: ${SLURM_NODELIST}"
    26 
    27 echo "Hora de inicio `date`"
    28 sleep 30
    29 echo "Hora de fin `date`"
    30 }}}
    31 
    32 * Envío del job:
    33 {{{
    34 [user@login1 ~]$ mnsubmit sleep_template
    35 Submitted batch job 621336
    36 }}}
    37 * Para monitorizar el job use el comando '''mnq''':
    38 {{{
    39 [user@login1 ~]$ mnq
    40   JOBID     NAME     USER    STATE       TIME TIMELIMIT CPUS  NODES NODELIST(REASON)
    41  621336 0.sleep_     user  PENDING       0:00      2:00    1      1 (Priority)
    42 
    43 }}}
    44 * Comprobar el resultado obtenido en los ficheros de '''output'''(sleep_%j.out) y '''error'''(sleep_%j.err).
    45 
    46 == Práctica 2 ==
    47 Una vez enviado nuestro primer job, ejecutaremos un job de tipo openMP usando el código del programa [http://moodle.unican.es/moodle27/pluginfile.php/96708/mod_resource/content/0/HelloWorldOpenMP.c HelloWorldOpenMP].
     6Utilizando Una vez enviado nuestro primer job, ejecutaremos un job de tipo openMP usando el código del programa [http://moodle.unican.es/moodle27/pluginfile.php/96708/mod_resource/content/0/HelloWorldOpenMP.c HelloWorldOpenMP].
    487
    498* Haciendo uso del programa '''module''' cargar el compilador ''gcc'':
     
    5312}}}
    5413
    55 * Compilar el programa ''HelloWorldOpenMP.c'' y generar un ejecutable con el nombre ''HelloWorldOpenMP'':
     14* Compilar el programa ''PiOpenMP.c'' y generar un ejecutable con el nombre ''PiOpenMP'':
    5615{{{
    57 [user@login1 ~]$ gcc HelloWorldOpenMP.c -fopenmp -o HelloWorldOpenMP
     16[user@login1 ~]$ gcc PiOpenMP.c -fopenmp -o PiOpenMP
    5817}}}
    5918
     
    6120{{{
    6221#!/bin/bash
    63 #@ job_name = openmp_%j
     22#@ job_name = pi_openmp_%j
    6423#@ initialdir = .
    65 #@ output = openmp_%j.out
    66 #@ error = openmp_%j.err
    67 #@ total_tasks = 32
     24#@ output = pi_openmp_%j.out
     25#@ error = pi_openmp_%j.err
     26#@ total_tasks = 16
    6827#@ wall_clock_limit = 00:02:00
     28
     29export OMP_NUM_THREADS=16
    6930 
    7031echo "Numero de procesos: ${SLURM_NPROCS}"
     
    7334echo "Nodos: ${SLURM_JOB_NODELIST}"
    7435
    75 ./HelloWorldOpenMP
     36./PiOpenMP
    7637}}}
    7738 Más información sobre las variables de entorno (${SLRUM_*}) en el [http://slurm.schedmd.com/sbatch.html#SECTION_OUTPUT%20ENVIRONMENT%20VARIABLES link].
    7839
    79 * Envió del job openMP:
     40* Envió del job PiOpenMP:
    8041{{{
    8142$ module load gcc
    8243load gcc/4.6.3 (PATH, MANPATH, LD_LIBRARY_PATH)
    83 $ mnsubmit HelloWorldOpenMP_template
    84 Submitted batch job 621342
     44$ mnsubmit PiOpenMP_template
     45Submitted batch job 621356
    8546}}}
    8647