Распараллеливание Sparsematrix с OpenMP - PullRequest
0 голосов
/ 25 октября 2018

У меня проблема с хранением значений в моем массиве.Я знаю, что проблема исходит от моего счетчика, который не считается, как предполагается в OpenMP.Интересно, есть ли у кого-нибудь советы о том, как хранить мои значения в моих созданных массивах.Моя функция написана на ц.Также мне известно о том, что это умножение может иметь несколько значений для одного и того же Newi_element и Newj_element, которые должны быть добавлены друг к другу.

#define N 1138 //Matrix size

void matrixmultiplication(void){
int *Newi_element = malloc(sizeof(int)*N *N);
int *Newj_element = malloc(sizeof(int)*N *N);
float *Newvalues = malloc(sizeof(float)*N *N);
int Newniterate = 0;
int i,j;    
omp_set_num_threads(4);
#pragma omp parallel 
{
#pragma omp for private(i,j)
for(i=0;i<niterate;i++){
    for(j=0;j<niterate2;j++){
        if((j_element[i] == i_element2[j])){
                *(Newi_element+Newniterate) = i_element[i];
                *(Newj_element+Newniterate) = j_element2[j];
                *(Newvalues+Newniterate) = values[i] * values2[j];
                Newniterate++;
        }
    }
}
}
free(Newi_element);
free(Newj_element);
free(Newvalues);

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...