1
我的矩陣乘法代碼使用openMp進行矩陣乘法時出現分割錯誤?
int matMul(int ld, double** matrix)
{
//local variables initialize
omp_set_num_threads(nthreads);
\#pragma omp parallel private(tid,diag,ld) shared(i,j,k,matrix)
{
/* Obtain and print thread id */
tid = omp_get_thread_num();
for (k=0; k<ld; k++) {
if (matrix[k][k] == 0.0) {
error = 1;
return error;
}
diag = 1.0/matrix[k][k];
\#pragma omp for
for (i=k+1; i < ld; i++) {
matrix[i][k] = diag * matrix[i][k];
}
for (j=k+1; j<ld; j++) {
for (i=k+1; i<ld; i++) {
matrix[i][j] = matrix[i][j] - matrix[i][k] * matrix[k][j];
}
}
}
}
return error;
}
我認爲這是因爲矩陣對象的唯一,但它爲什麼會即使它被作爲參數傳遞空..
告訴我們segv在哪裏。告訴我們你正在使用哪種編譯器。 – bmargulies 2010-03-27 00:28:48