Я пытаюсь выполнить алгоритм устранения ошибки в Guassian в https://courses.engr.illinois.edu/cs554/fa2015/notes/06_lu_8up.pdf, чтобы реализовать LU-факторизацию и в конечном итоге распараллелить ее с помощью openmp. Правильно ли выглядит следующий алгоритм, где l
- множитель, а m - матрица?Реализация последовательной LU-декомпозиции в C++
void decompose2(double **m) {
begin =clock();
int i=0, j=0, k=0;
for(k = 1; k < size - 1; k++)
{
for(i = k + 1; i < size; i++)
{
l[i][k] = m[i][k]/m[k][k];
}
for(j = k + 1; j < size; j++)
{
for(i = k + 1; k < size; k++)
{
m[i][j] = m[i][j] - (l[i][k]*m[k][j]);
}
}
}
end = clock();
}
Я не думаю, что это правильно, потому что в соответствии с другой бумагой времен я получаю после распараллеливания на таком же количестве процессоров, совершенно различны.