Алгоритм распараллеливания.
Воспользуемся функциональным и геометрическим видом параллелизма. Пусть последний процесс будет выделен только лишь для анализа достижения точности вычислений. На все остальные процессы наложим исследуемую область. На эти процессы будут наложены полосы исследуемой области. На первой итерации определим значения на границах области и во внутренних точках области. Определим значение искомой функции, используя линейную интерполяцию и учитывая введённые столбцы дополнительных точек. Организуем итерационный процесс на каждом шаге, которого будут выполняться:
Все процессы кроме последнего процесса высчитывают значение искомой функции в своих внутренних точках и сразу же определяют, достигнута ли необходимая точность
do { pr=1;
for (int, j=1; j<m-1;j++)
for (int i=10; i<n-1;i++){
pn =u[i][j];
u[i][j]=0.25*(ω[i][j]+u[i+1][j]+u[i-1][j]+u[i][j-1]+u[i][j+1]);
if (fabs (pn – u[i][j])>ε)
pr=0;
}
Вычисляем новые значения на границах области;
3. Значения в граничных точках своих подобластей процессы получают от соседних процессов, для которых эти точки – внутренние. Передачу осуществляют за четыре такта. В данном случае передаём столбцы значений
4. Сапсапаритмспаимспи
Все процессы проверяют условие окончания итерационного процесса
Все процессы пересылают на последний процесс свой признак. Он анализирует полученные значения и если хотя бы один полученный признак <> 1 пересылает всем процессам значения признака = 0.
if (rank == size -1) {
int ind = 1;
for (i=0; i<size-1; i++) {
MPI_Recv (& ind, 1, MPI_INT,i,msgtag, MPI_COMM_WORLD,& Status);
if (ind ==0) pr=0
}
for (i=0;i<size-1;i++)
MPI_Send (& pr,1, MPI_INT,i, msgtag, MPI_COMM_WORLD);
}
else {
MPI_Send (& pr,1, MPI_INT,size-1, msgtag, MPI_COMM_WORLD);
MPI_Recv (& pr, 1, MPI_INT,size-1,msgtag, MPI_COMM_WORLD,& Status);
}
Все процессы последовательно печатают значения искомой функции , используя сквозную нумерацию элементов массива.
-
Содержание
- Содержание курса
- Общие сведения.
- Топологии Виды топологий
- Программирование «Трубы»
- Программирование «Звезды»
- Программирование «Клика»
- Синхронный обмен данными
- Функции синхронного обмена данными
- Примеры:
- Задание 1:
- Задание 2:
- Задание 3:
- Асинхронный обмен данными
- Функции необходимые для асинхронного обмена данными
- Пример:
- Определение времени вычисления на Parsytec.
- Определение времени в программе
- Структура компьютера
- Константы, типы данных, структуры mpi
- Тип данных mpi_Datatype
- Предопределённые константы
- Сообщения
- Функции mpi
- Функция передачи данных с блокировкой
- Дополнительные функции
- Виды параллелизма Геометрический (распараллеливание по пространству)
- Функциональный (распараллеливание по процессам)
- Конвейерный
- Параллелизм типа принятия коллективного решения
- Ускорение и эффективность вычислений на мвс
- Метод Рунге-Кутта 4
- 2. Расчётные формулы:
- 3. Алгоритм распараллеливания.
- Метод прогноза коррекции
- 2. Расчётные формулы
- 3. Алгоритм распараллеливания.
- 4. Ускорение вычислений.
- 4. Ускорение и точность вычислений.
- Решение уравнений в частных производных
- Колебания мембраны
- 2. Расчетные формулы
- Решение стационарных уравнений на мвс
- 2. Расчётные формулы
- Алгоритм распараллеливания.
- Ускорение вычислений
- Оптимизация на мвс
- Расчётные формулы
- Алгоритм распараллеливания
- Ускорение вычислений.