Esercizio OPENMP in C

di il
3 risposte

Esercizio OPENMP in C

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;
}

3 Risposte

  • Re: Esercizio OPENMP in C

    Ragazzi qualcuno può aiutarmi per favore?
    Il mio dubbio e non riesco a trovare pace è:
    "E' giusto mettere sotto pragma parallel dopo aver inserito con il thread master le 2 matrici, il calcolo dell'addizione tra le 2 matrici sotto nessuna direttiva?"
    Vi prego aiutatemi!!
    Grazie mille in anticipo.
  • Re: Esercizio OPENMP in C

    Risoltooooooooooooooooo!!!Ci sono arrivato il codice che ho scritto è errato
    Ho stravolto tutto e ho trovato la giusta quadratura meno male
    Scusate il disturbo ho fatto un casino da solo ciaoooooooo
  • Re: Esercizio OPENMP in C

    Comunque in caso di librerie esterne ti conviene chiedere prima sui forum dedicati, dove sicuramente trovi utenti che le usano.
Devi accedere o registrarti per scrivere nel forum
3 risposte