Гауссово исключение вперед и назад - распараллеливание? - PullRequest
1 голос
/ 31 марта 2011

есть ли способ сделать отсчет гауссов назад?Я имею в виду, что я решил с помощью прямой матрицы исключения Гаусса (под матрицей есть нули под диагональю), а затем я сделал обратную подстановку.Но для будущего распараллеливания MPI я не вижу большой перспективы, поэтому я думаю, что было бы лучше распараллелить прямое и обратное исключение Гаусса.Как вы думаете?

Спасибо

1 Ответ

1 голос
/ 31 марта 2011

Как вы распараллеливали первый шаг элиминации?

Я имею в виду, что обратное распараллеливание - это в основном тот же алгоритм, только что сделанный снизу вверх.Так почему бы не использовать ваш алгоритм еще раз?

Мне нужно было бы легко реализовать только один алгоритм, который мне пришел в голову:

Предположим матрицу размера [kxk], где A_x_y - это у-йэлемент в х-й строке.Так что теперь просто вернемся назад, как это:

 i = k
 while(i > 1)
      broadcast A_i_i
      if(line < i)
           do Gaussion elimination step
      i--

Важная часть в основном заключается в том, что вам нужно транслировать только один элемент (или два, если у вас есть LSE), потому что все остальные части строки уже равны нулю.Я предположил, что вы поделили несколько строк на каждый процессор, что кажется мне наиболее разумным разделением данных MPI.

...