Inserire risultati numero matrice*id in vettore b

di il
3 risposte

Inserire risultati numero matrice*id in vettore b

Salve ragazzi, se qualcuno di buon cuore potesse darmi un aiuto per fare questo semplice programma in c gliene sarei davvero grato.
Ho scritto questo programma di calcolo parallelo in c semplicissimo.
Nel programma mi viene chiesto per ogni numero del vettore a, di fare il prodotto per il relativo id(thread). I thread devono essere 6.
(infatti ho inserito omp_set_num_threads(6)prima della direttiva #pragma)

#include<stdio.h>
#include<stdlib.h>
#include<omp.h>
#include<unistd.h>
int main()
{
	int a[6], b[6];
	int i, j;
	printf("Inserire i numeri:\n");
	for(i=0; i<6; i++)
	{
		scanf("%d", &a[i]);
	}
	printf("\n");
	omp_set_num_threads(6);
	#pragma omp parallel for shared(a,b) private(i) schedule(dynamic)
	for(i=0; i<6; i++)
	{
		b[i]=a[i]*omp_get_thread_num();
		sleep(i);
		printf("ID: %d - NUMERO: %d - PRODOTTO= %d .\n", omp_get_thread_num(), a[i], b[i]);
	}
return 0;
}
Il programma funziona bene.
Ora dovrei fare la stessa cosa però con una matrice a, e inserire i risultati in un vettore b(o matrice b).
Potrei anche inserire il risultato in una variabile prodotto, ma sto impazzendo non ci riesco...
Ho problemi con il ciclo for annidato, ho provato mille volte ma non riesco...
Come posso fare??Vi prego aiutatemiiiiiiiii

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte