Changes between Version 3 and Version 4 of openMPIvsMPI


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

--

Legend:

Unmodified
Added
Removed
Modified
  • openMPIvsMPI

    v3 v4  
    66Realizar el cálculo del número Pi mediante openMP y openMPI. El objetivo de esta práctica es comprobar que opción es más eficiente desde el punto de vista del tiempo de ejecución. Para este propósito usaremos los códigos [http://moodle.unican.es/moodle27/pluginfile.php/97690/mod_resource/content/1/PiOpenMP.c PiOpenMP.c] y [http://moodle.unican.es/moodle27/pluginfile.php/97692/mod_resource/content/2/PiMPI.c PiMPI.c].
    77
    8 
     81. Job OpenMP
    99* Haciendo uso del programa '''module''' cargar el compilador ''gcc'':
    1010{{{
     
    1212load gcc/4.6.3 (PATH, MANPATH, LD_LIBRARY_PATH)
    1313}}}
    14 
    1514* Compilar el programa ''PiOpenMP.c'' y generar un ejecutable con el nombre ''PiOpenMP'':
    1615{{{
    1716[user@login1 ~]$ gcc PiOpenMP.c -fopenmp -o PiOpenMP
    1817}}}
    19 
    2018* Plantilla a ejecutar en el supercomputador:
    2119{{{
     
    3533echo "Nodos: ${SLURM_JOB_NODELIST}"
    3634
    37 ./PiOpenMP
     35time ./PiOpenMP
    3836}}}
    39  Más información sobre las variables de entorno (${SLRUM_*}) en el [http://slurm.schedmd.com/sbatch.html#SECTION_OUTPUT%20ENVIRONMENT%20VARIABLES link].
    40 
    4137* Envió del job PiOpenMP:
    4238{{{
     
    4743}}}
    4844
    49 * 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é?.
     452. Job openMPI:
     46* Haciendo uso del programa '''module''' cargar el compilador ''OPENMPI'':
     47{{{
     48[user@login1 ~]$ module load OPENMPI
     49load OPENMPI/1.8.3 (PATH,LD_LIBRARY_PATH,MANPATH)
     50}}}
     51* Compilar el programa ''PiMPI.c'' y generar un ejecutable con el nombre ''PiMPI'':
     52{{{
     53[user@login1 ~]$ mpicc PiMPI.c -o PiMPI
     54}}}
     55* Plantilla a ejecutar en el supercomputador:
     56{{{
     57#!/bin/bash
     58#@ job_name = pi_mpi_%j
     59#@ initialdir = .
     60#@ output = pi_mpi_%j.out
     61#@ error = pi_mpi_%j.err
     62#@ total_tasks = 16
     63#@ wall_clock_limit = 00:02:00
     64 
     65echo "Numero de procesos: ${SLURM_NPROCS}"
     66echo "Numero de nodos: ${SLURM_JOB_NUM_NODES}"
     67echo "Numero de procesos por nodo: ${SLURM_JOB_CPUS_PER_NODE}"
     68echo "Nodos: ${SLURM_JOB_NODELIST}"
     69
     70time mpirun -np 16 ./PiMPI
     71}}}
     72* Envió del job PiMPI:
     73{{{
     74$ module load OPENMPI
     75load OPENMPI/1.8.3 (PATH,LD_LIBRARY_PATH,MANPATH))
     76$ mnsubmit PiMPI_template
     77Submitted batch job 621357
     78}}}
     79
     80* ¿Qué job ha tardado menos? ¿ Qué ocurre CuUna 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é?.
    5081
    5182== Práctica 3 ==
    52 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`.
     83Repita el envío del job de la práctica 3 dificando el número de ''threads'' a ejecutar, pero sin modificar la variable ''total_tasks''. Para ello, utilice la variable de entorno `OMP_NUM_THREADS`.
    5384* La plantilla a utilizar en ese caso será:
    5485{{{