Esercizio OPENMP in C

di Anonimizzato28823 il
3 risposte
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

  • 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.
  • 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
  • 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