Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм циклической редукции, параллельная реализация 
:(
    Опции темы
peretc
Дата 14.1.2012, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 14.1.2012

Репутация: нет
Всего: нет



Доброго времени суток!

Необходимо реализовать решение системы линейных уравнений методом циклической редукции, причем нужны последовательная и параллельная реализации.

С последовательным вариантом я разобрался, а вот с параллельным никак не догоняю. Информации на этот счет достаточно мало, удается найти только то, что отсутствует фаза замещения.

Если кто-то может мне пояснить, как реализовать параллельный вариант или как модифицировать последовательный - буду очень благодарен.

PS Последовательный вариант реализую так:



Код

int tridag_cpu(double *a, double *b, double *c, double *r, double *x, int n, int stride) {
// 1. прямой ход
for(int nn = n, low = 2; nn > 1; nn /= 2, low *= 2, stride *= 2) {
for(int i = low - 1; i < n; i += stride * 2) {
    float alpha = -a[i] / b[i - stride];
    if(alpha!=alpha) { return 1;  }
    float gamma = -c[i] / b[i + stride];
    if(gamma!=gamma) { return 1; }
    a[i] = alpha * a[i - stride];
    b[i] = alpha * c[i - stride] + b[i] + gamma * a[i + stride];
    c[i] = gamma * c[i + stride];
    r[i] = alpha * r[i - stride] + r[i] + gamma * r[i + stride];

 } 
 } 

 // 2. обратный ход
 x[n/2] = r[n/2] / b[n/2];
 for(stride /= 2; stride >= 1; stride /= 2) {
 for(int i = stride - 1; i < n; i += stride * 2) {
 x[i] = (r[i]
 - (i - stride > 0 ? a[i] * x[i - stride] : 0.0)
 - (i + stride < n ? c[i] * x[i + stride] : 0.0)
 ) / b[i];
 }
 }
 return 0;
 }



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1579 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.