Multiplicación de matrices - RixFlores/Multiprocesadores GitHub Wiki

En este caso vamos a programar una multiplicación de matrices utilizando hilos, y midiendo el tiempo de ejecución que tarda la matriz en ser multiplicada por una constante.

Primero necesitamos incluir nuestras librerías, <stdio.h> y "omp.h" y definir nuestro número de hilos.

Después vamos a declarar todas las matrices y variables que usaremos, así como el documento .Txt en el cual vamos a guardar los resultados de nuestra multiplicación.

Después vamos a llenar las matrices A y B que van a multiplicarse para darnos la matriz C, en este caso las llenaremos con números del 0 al 99.

Una vez hecho esto, crearemos 3 ciclos for anindados en los cuales vamos a ir guardando la matriz C que se conforma de fila x columna de la matriz A y B.

Una vez que hayamos terminado eso, vamos a tomar la primer medición de tiempo, y crearemos nuestro #pragma omp parallel que ejecutara en cada hilo de forma paralela todo lo que contenga esa sección, y en este caso es un #pragma omp for, que va a ejecutar 2 ciclos for anidados, cuyo propósito es multiplicar cada elemento de la matriz C x 65, y del mismo modo irlo almacenando en el archivo.Txt que creamos al inicio de nuestro programa.

Una vez finalizada la ejecución de nuestros ciclos for anidados, vamos a tomar el segundo tiempo, y vamos a restar ambos para obtener el tiempo que le tomó a nuestro procesador generar la multiplicación de la matriz C por la constante 65, y por último cerramos el documento .Txt y obtenemos los resultados.

Resultados:

Tiempo de ejecución:

⚠️ **GitHub.com Fallback** ⚠️