новичок в openMP, есть предложения по параллелизации следующего кода с openMP?
Я хочу ускорить код с помощью openMP и попытался добавить #pragma omp для следующих двух разделов "sum -= a [i] [k] * a [k] [j] ", так как анализ горячих точек показывает, что эти два цикла занимают большие доли времени. но похоже, что некоторые условия гонки привели к неправильным результатам. какие-либо предложения?
void ludcmp(float **a, int n, int *indx, float *d)
{
int i,imax,j,k;
float big,dum,sum,temp;
float *vv;
vv=vector(1,n);
*d=1.0;
for (j=1;j<=n;j++) {
for (i=1;i<j;i++) {
sum=a[i][j];
for (k=1;k<i;k++) sum -= a[i][k]*a[k][j]; //here
a[i][j]=sum;
}
big=0.0;
for (i=j;i<=n;i++) {
sum=a[i][j];
for (k=1;k<j;k++)
sum -= a[i][k]*a[k][j]; //here
a[i][j]=sum;
if ( (dum=vv[i]*fabs(sum)) >= big) {
big=dum;
imax=i;
}
}
}