Bonjour à tous,
J'ai une routine en C à paralléliser en utilisant OpenMP :
	
	1 2 3 4 5 6 7 8 9 10 11 12 13
   | void spmv(int n, int *rowptr, int *colind, double *val, double alpha, double *x, double beta, double *y){
 
  int i, j;
 
  for(i=0; i<n; i++){
    y[i] = beta*y[i];
    for(j=rowptr[i]; j<rowptr[i+1]; j++){
      y[i] += alpha*val[j]*x[colind[j]];
    }
  }
 
  return;
} | 
 J'ai déjà essayé de placer dans la seconde boucle un 
	
	#pragma omp parallel for reduction(+:y[i])
  mais le langage n'accepte pas le type de y[i].
Au final, il n'y a pas d'interdépendances entre les y[i] dans la boucle principale, serait-il possible d'utiliser une parallélisation classique sur celle ci ?
Merci d'avance
						
					
Partager