Practico2 PIII2023
Practico2 PIII2023
Practico2 PIII2023
Licenciatura en Sistemas
Lectivo
2023
UNJu – Facultad PRÁCTICO 2: OPENMP – Memoria Compartida
de Ingeniería
PRÁCTICA
1. Compile y ejecute el siguiente código fuente y describa su funcionamiento.
#include <omp.h>
#include <stdio.h>
int main() {
int threads;
threads = omp_get_num_threads();
printf("Total %d Threads\n", threads);
#pragma omp parallel
{
threads = omp_get_num_threads();
}
printf("Total %d Threads\n", threads);
}
¿Las cantidades totales de threads que se muestran con printf son iguales?
¿Por qué?
¿Qué ocurre si mueve el código de la linea 11 por debajo de la linea 9?
¿Por qué ocurre esta situación?
Sugerencias:
Para compilar
$gcc -fopenmp codigo.c -o codigo
Para ejecutar
$./codigo
Se pide:
a) Compile en modo secuencial y ejecutarlo.
b) Compile en modo paralelo y ejecutarlo.
c) ¿Cuánto tardo el programa en ejecutarse en modo secuencial?
d) ¿Cuánto tardo el programa en ejecutarse en modo paralelo?
e) Inicialice la variable TAM, del código fuente anterior, en 200 y repita los
items a), b), c), d).
f) Inicialice la variable TAM, del código fuente anterior, en 500 y repita los
items a), b), c), d).
g) Realice una tabla comparativa y comente los resultados.
9. Realice los cambios necesarios al algoritmo de búsqueda de números primos
(Punto 1: Práctico 1) para que el mismo soporte la búsqueda de los mismos
en forma paralela. Realice una tabla comparativa de tiempos (ejecución
secuencial vs ejecución paralela).
10. Realice los cambios necesarios al algoritmo para ordenar un vector de tamaño
n (Punto 2: Práctico 1) para que el mismo soporte la ordenación de los
elementos en forma paralela. Realice una tabla comparativa de tiempos
(ejecución secuencial vs ejecución paralela).
11. Realice los cambios necesarios al algoritmo para aproximar el valor de π
(Punto 4: Práctico 1) para que el mismo aproxime dicho valor en forma
paralela. Realice una tabla comparativa de tiempos (ejecución secuencial
vs ejecución paralela).
Sugerencias:
Para compilar modo paralelo
$gcc -fopenmp codigo.c -o codigoParalelo
Para compilar modo secuencial
$gcc codigo.c -o codigoSecuencial
Para ejecutar
$./codigoParalelo
$./codigoSecuencial