- •Распараллеливание некоторых численных методов
- •План
- •Сумма последовательности значений
- •Походы к распараллеливанию суммирования
- •Разбиение цикла на блоки
- •Оценка количества операций
- •Эффективность
- •Конвейер
- •Графическая иллюстрация
- •Умножение матриц
- •Алгоритм Фокса
- •Алгоритм Фокса (продолжение)
- •Оценка времени Алгоритма Фокса
- •Характеристики
- •Решение систем линейных уравнений
- •Методы последовательного исключения неизвестных
- •Последовательная
- •Распараллеливание прямого хода
- •Реализация
- •Другие алгоритмы передачи
- •Оценка времени передачи
- •Иллюстрация
- •Сравнение разных методов передачи
- •Итеративные методы
- •Последовательный вариант
- •Распараллеливание
- •Параллельная реализация
- •Оценка времени
- •Иллюстрация
- •Сравнение различных матричных методов
- •Решение дифференциальных уравнений в частных
- •Дискретизация задачи
- •Пример – уравнение Лапласа
- •Решение уравнения
- •Распараллеливание
- •Реализация
- •Оценка эффективности
- •Вопросы
Решение дифференциальных уравнений в частных
производныхВозникают в различных физических задачах
Расчет прогноза погоды
Расчет тепловых свойств
Электричество
Расчет прочности конструкция
Аэродинамика
Дискретизация задачи
|
h i |
|
На область накладывается |
h |
|
j |
||
сетка с шагом h |
||
|
Производные заменяются разностными аппроксимациями
Аналогично вторые производные
Уравнение
Пример – уравнение Лапласа
Возникает в электротехнических задачах
Уравнение Лапласа
Граничные условия
Найти потенциал электрического поля в области с цилиндрической симметрией
На границе области потенциал равен f(x,y)
F(x,y)
U(x,y)
Решение уравнения
Метод Якоби |
|
(I-1,j) |
|
|
|
Выражаем значение в узле |
|
|
сетки через 4 соседних |
u i, j 1 |
u i 1, j u i |
значения |
4 |
|
|
|
Выбираем начальное приближение в узле
Интеративно повторяем до сходимости
(I,j+1)
(I,j) (I+1,j)
(I,j-1)
1, j u i, j 1 u i, j 1
Распараллеливание
На сетку накладывается процессорная сетка
Каждому узлу процессорной сетки соответствует n/p узлов сетки дискретизации
Для каждого узла процессорной сетки итерации можно проводить параллельно
После итерации необходим обмен на границе сетки
Узел
процессорной
сетки
2
43
Узел сетки дискретизации
Реализация
//px, py – координати процесора в процесорній сітці
//u – старі наближення функції у вузлах сітки
//unew – нові наближення функції у вузлах сітки for(;;){
if(px!=0) for(j=0;j<n/p;j++) send(px+1,u[n/p-1][j]); if(px!=n-1) for(j=0;j<n/p;j++) send(px-1,u[0][j]); if(py!=0) for(j=0;j<n/p;j++) send(px+1,u[j][n/p-1]); if(py!=n-1) for(j=0;j<n/p;j++) send(px-1,u[j][0]); if(px!=0) for(j=0;j<n/p;j++) recv(px+1,u[n/p][j]); if(px!=n-1) for(j=0;j<n/p;j++) recv(px-1,u[-1][j]); if(py!=0) for(j=0;j<n/p;j++) recv(px+1,u[j][n/p]); if(py!=n-1) for(j=0;j<n/p;j++) recv(px-1,u[j][-1]); for(i=0,i<n/p;i++){
for(j=0;j<n/p;j++){ unew[i][j]=(u[i+1][j]+u[i-1][j]+u[i][j+1]+u[i],[j-1])/4;
}
}
//передати на всі процесори норму нового наближення allreduce(abs(unew));
if(abs(abs(unew)-abs(u))< eps) break; u=unew;
absu=abs(unew);
}
Оценка эффективности
Для сетки n2 время выполнение последовательного алгоритма 4tn2
Для p2 процессоров время состоит из процессорной работы и обмена
ускорение растет с увеличением количества данных задачи и падает с увеличением количества процессоров
k |
|
|
T |
|
|
4tn2 |
|
ï |
|
1 |
|
|
|
||
Tp |
4tn2 |
||||||
|
|
|
|||||
|
|
|
|
|
p2 |
4 to tc log2 p |