Cálculo del histograma de una imagen utilizando openmp
ARQUITECTURA DE COMPUTADORAS
PRÁCTICA OPENMP (HISTOGRAMA) NOMBRE: José Luis Carrillo M.
En esta tarea debéisparalelizar, usando OpenMP, el cálculo del histograma de una imagen. El histograma debe ser de 256 bins y la imagen debe tener una sola componente de color (imagen en gris) con 8bits dedicados a cada pixel (valores entre 0 y 255). Debéis usar dos métodos de paralelización: 1. Usando acceso exclusivo a un histograma común a todos los threads. 2. Usarhistogramas locales para cada thread y que un thread sume esos histogramas locales una vez calculados. Se debe entregar un fichero en PDF explicando las directivas y cláusulasde OpenMP usadas, los resultados obtenidos y las conclusiones. Además, calcula los tiempos de ejecución en bambu y el speed-up para 1,2,4 y 8 threads y dos tamaños de imagen.Extrae las gráficas de speed-up (una gráfica para cada tamaño de imagen e implementación de la acumulación). Compara los resultados y establece tus conclusiones. Nota: Lasimágenes deben ser de 384x288 píxeles y de 768x576 píxeles. Las imágenes puedes crearlas usando un array en el mismo programa. Cada posición del array (pixel) puedes inicializarlaal valor de que desees, pero comprueba al final que los resultados del histograma son correctos.
A. Método 1: Usando acceso exclusivo a un histograma común a todos losthreads.
1. CODIGO
#include #include #include #include #include #define bins 256 //Número de bins del histograma
int main(){ int imag[800][600]; //Matriz que guarda lasvariaciones de grises entre 0 y 255 long histo[bins]; //vector que guarda las ocurrencias que tienen las variaciones //de grises de la Matriz imag. (Histograma) int k; for(k=0;k
Regístrate para leer el documento completo.