Arquitecturas paralelas.openmp
Práctica OpenMp
Índice de contenidos
1. Introducción 1
2. Ejercicio 1.A pi.c 2
3. Ejercicio 1.B tgrano.c 4
4. Ejercicio 1.C matriz.c 5
5. Ejercicio 2 e2.c 8
5.1. Bucle 1 85.2. Bucle 2 10
5.3. Bucle 3 11
5.4. Bucle 4 13
5.5. Bucle 5 14
5.6. Funciones 16
5.7. Conclusiones 18
Introducción
En esta práctica se ha tenido como objetivo programardistintos programas utilizando OpenMP para procesarlos en paralelo. Por una parte tenemos tres programas 1.A-1.C sencillos de paralelizar, aunque el objetivo es medir la eficiencia de la ejecuciónparalela en la máquina que tenemos disponible. Y por otra parte tenemos un segundo programa que es más complejo; es un conjunto de bucles y funciones que hay que analizar y decidir la manera más convenientede paralelizarlos. El objetivo es conseguir el mayor speed-up posible.
La maquina sobre la que se ha trabajado es un multiprocesador SMP con las siguientes características: un PowerEdge 6850(DELL) con 4 procesadores Intel Xeon 7100 de doble núcleo a 2.6 GHz con una memoria compartida de 1Gb de RAM y con una conexión Gigabit Ethernet.
Para compilar los programas se ha utilizadoel compilador de C/C++ de Intel. Se ha compilado tanto en serie como en paralelo con la optimización –O2 que viene por defecto y utiliza las optimizaciones más habituales: registros, loop unrolling,rutinas in-line...
OpenMp usa threads para ejecutar código en paralelo. Es decir, en un determinado momentos el thread master(principal) genera P threads que se ejecutan en paralelo. Todoslos threads ejecutan la misma copia del código. El número de threads que se van a usar se puede especificar mediante variables de entorno en OpenMP. Puesto que nuestra máquina tiene 8 procesadores elnúmero máximo de threads que especificaremos será 8. Porque aunque pongamos más, el rendimiento no aumentará; incluso podría disminuir.
En los resultados que se muestran en este documento,...
Regístrate para leer el documento completo.