Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Судаков / Лекции / lec17_chmet.ppt
Скачиваний:
30
Добавлен:
20.03.2015
Размер:
653.82 Кб
Скачать

Оценка времени передачи

Последовательный алгоритм – порядка n3 операций

Параллельный алгоритм

Порядка n3/p последовательных операций

Порядка n2 последовательных пересылок данных

Порядка n устанослений связи

Иллюстрация

Эффективность растет при увеличении порядка матрицы

Один из самых эффективных методов

Сравнение разных методов передачи

Итеративные методы

Метод Якоби выражается значение неизвестного через значения других неизвестных

Итеративно находятся все значения

Последовательный вариант

//xnew – наступне наближення //xold – попереднє наближення

//eps – умова завершення ітераційного процесу for(;;){

for(i=0;i<n;i++){ xnew[i]=0; for(j=0; j<i; j++){

xnew[i]+=a[i][j]*xold[j];

}

for(j=i+1; j<n-1; j++){ xnew[i]+=a[i][j]*xold[j]

}

xnew[i]=(b[i]-xnew[i])/a[i][i];

}

if(abs(abs(xnew)-abs(xold))< eps) break; xold=xnew;

}

Распараллеливание

Каждый элемент нового приближения может быть вычислен параллельно с другими элементами этого же приближения

Каждый процессор содержит n/p=q строк матрицы A

Каждый процессор вычисляет свою часть приближения

Каждый процессор передает всем остальным свою часть приближения

Параллельная реализация

for(;;){ for(i=c*n/p;i<(c+1)*n/p;i++){

xnew[i]=0; for(j=0; j<i; j++){

xnew[i]+=a[i][j]*xold[j];

}

for(j=i+1; j<n-1; j++){ xnew[i]+=a[i][j]*xold[j]

}

xnew[i]=(b[i]-xnew[i])a[i][i]; allgather(xnew);

}

if(abs(abs(xnew)-abs(xold))< eps) break; xold=xnew;

}

Оценка времени

Время параллельных вычислений складывается из времени работы процессора и времени выполнения передачи

Иллюстрация

Распараллеливается достаточно эффективно

Требует синхронизации, что снижает эффективность

Сравнение различных матричных методов

Соседние файлы в папке Лекции