Ragazzi se qualcuno potesse aiutarmi mi servirebbe un consiglio.
Su questa traccia, ho sviluppato un mio semplice codice, va bene?
Vi scrivo tutto.
"Scrivere un programma parallelo per l'ambiente MULTI-CORE con p=9 core, che impieghi il linguaggio C ed utilizzi la libreria
OpenMp. Nel programma il core master deve leggere due differenti matrici di reali di dimensione 3x3.
I core devono collaborare per calcolare la somma tra le due matrici."
#include<stdio.h>
#include<stdlib.h>
#include<omp.h>
#include<time.h>
int main()
{
float a[3][3], b[3][3], c[3][3];
int i, j;
double time, t1, t0;
t0=omp_get_wtime();
omp_set_num_threads(9);
#pragma omp parallel private(i,j)
{
#pragma omp master
/*Inserisco dati in matrici a e b*/
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("ID: %d - INSERISCI NUMERO in matrice: a[%d][%d]: ", omp_get_thread_num(),i,j);
scanf("%f", &a[i][j]);
}
}
#pragma omp master
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("ID: %d - INSERISCI NUMERO in matrice: b[%d][%d]: ", omp_get_thread_num(),i,j);
scanf("%f", &b[i][j]);
}
}
#pragma omp barrier
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
c[i][j]=a[i][j]+b[i][j];
}
}
}
t1=omp_get_wtime();
time=t1-t0;
printf("Time parallel: %lf .\n\n", time);
printf("Matrice c:\n");
for(i=0; i<3; i++)
{
for(j=0; j<3; j++)
{
printf("%f ", c[i][j]);
}printf("\n");
}
return 0;
}