- •Содержание курса
- •Общие сведения.
- •Топологии Виды топологий
- •Программирование «Трубы»
- •Программирование «Звезды»
- •Программирование «Клика»
- •Синхронный обмен данными
- •Функции синхронного обмена данными
- •Примеры:
- •Задание 1:
- •Задание 2:
- •Задание 3:
- •Асинхронный обмен данными
- •Функции необходимые для асинхронного обмена данными
- •Пример:
- •Определение времени вычисления на Parsytec.
- •Определение времени в программе
- •Структура компьютера
- •Константы, типы данных, структуры mpi
- •Тип данных mpi_Datatype
- •Предопределённые константы
- •Сообщения
- •Функции mpi
- •Функция передачи данных с блокировкой
- •Дополнительные функции
- •Виды параллелизма Геометрический (распараллеливание по пространству)
- •Функциональный (распараллеливание по процессам)
- •Конвейерный
- •Параллелизм типа принятия коллективного решения
- •Ускорение и эффективность вычислений на мвс
- •Метод Рунге-Кутта 4
- •2. Расчётные формулы:
- •3. Алгоритм распараллеливания.
- •Метод прогноза коррекции
- •2. Расчётные формулы
- •3. Алгоритм распараллеливания.
- •4. Ускорение вычислений.
- •4. Ускорение и точность вычислений.
- •Решение уравнений в частных производных
- •Колебания мембраны
- •2. Расчетные формулы
- •Решение стационарных уравнений на мвс
- •2. Расчётные формулы
- •Алгоритм распараллеливания.
- •Ускорение вычислений
- •Оптимизация на мвс
- •Расчётные формулы
- •Алгоритм распараллеливания
- •Ускорение вычислений.
Метод Рунге-Кутта 4
1.
2. Расчётные формулы:
i – какого приближения; j – для какого параметра.
3. Алгоритм распараллеливания.
Воспользуемся функциональным видом параллелизма. В начальный момент времени все процессы, число которых size = n+1 знают начальные значения параметров. Организуем цикл по времени от tнач до tмакс с шагом τ. На текущей итерации цикла будет выполняться следующее:
все процессы кроме нулевого вычисляют коэффициенты первого приближения, причём процесс №1 вычисляет , процесс №2 вычисляет , процесс №size-1 вычисляет ;
все процессы пересылают на нулевой процесс вычисленные коэффициенты первого приближения. Он собирает их в массив, который затем рассылает их на все рабочие процессы;
все процессы кроме нулевого, вычисляют коэффициенты второго приближения, причём процесс №1 вычисляет , процесс №2 вычисляет , процесс №size-1 вычисляет ;
рабочие процессы пересылают на нулевой процесс вычисленные значения коэффициентов 2-го приближения. Он собирает их в массив, который рассылает их на рабочие процессы;
все процессы кроме нулевого вычисляют коэффициенты 3-го приближения причём: процесс №1 вычисляет , процесс №2 вычисляет , процесс №size-1 вычисляет ;
рабочие процессы пересылают на нулевой процесс вычисленные значения коэффициентов 3-го приближения. Он собирает их в массив, который рассылает их на рабочие процессы;
все процессы кроме нулевого вычисляют коэффициенты 4-го приближения причём: процесс №1 вычисляет , процесс №2 вычисляет , процесс №size-1 вычисляет ;
все рабочие процессы вычисляют новые значения параметров: процесс №1 вычисляет , процесс №2 вычисляет , процесс №size-1 вычисляет ;
все рабочие процессы переписывают вычисленные значения параметров на нулевой процесс, который собирает их в массив. Затем нулевой процесс рассылает массив на все рабочие процессы;
все процессы делают шаг по времени;
все процессы проверяют условие окончания итерационного процесса tk+1≤tмакс . Если итерационный процесс не закончен то переходим к пункту №1, иначе – пункт №12;
нулевой процесс печатает вычисленные значения параметров.
Метод прогноза коррекции
1.
2. Расчётные формулы
1 этап
2 этап
3. Алгоритм распараллеливания.
Воспользуемся функциональным видом параллелизма. Общее число используемых процессов size n-1, где n – число уравнений в системе. Организуем цикл по времени от tнач до tмакс с шагом τ. В начальный момент времени все процессы знают начальные значения параметров.
На каждой итерации цикла будет выполняться следующее:
все процессы кроме нулевого вычисляют значения правых частей в конкретный момент времени. Причём процесс №1 вычисляет , процесс№2 - , процесс № size-1 - ;
все процессы, кроме нулевого процесса, вычисляют прогнозируемые значения параметров, причём процесс с rank=1 вычисляет , процесс с rank=2 - , процесс с rank=size-1 - ;
рабочие процессы пересылают на нулевой процесс вычисленные прогнозируемые значения параметров. Нулевой процесс собирает их в массив и рассылает их на рабочие процессы;
все процессы, кроме нулевого процесса, вычисляют прогнозируемые значения правых частей, причём процесс с №1 вычисляет , процесс с №2 - , процесс с №size-1 - ;
все процессы, кроме нулевого процесса, вычисляют новые скорректированные значения параметров, причём процесс с №1 вычисляет , процесс с №2 - , процесс с №size-1 - ;
рабочие процессы пересылают на нулевой процесс вычисленные скорректированные значения параметров. Нулевой процесс собирает полученные значения в массив и рассылает его на все рабочие процессы;
все процессы одновременно делают шаг по времени tk+1=tk+τ
все процессы проверяют условие окончания итерационного процесса, если итерационный процесс не закончен, то переходим к пункту №1, иначе – пункт№9
нулевой процесс печатает вычисленные значения параметров
Действие Rank |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
|
|
□□□□ |
|
|
□□□□ |
tk+1=tk+τ |
tk+1≤tmax |
Печать Xk+1
|
1 |
|
|
|
|
|
|
tk+1=tk+τ |
tk+1≤tmax |
|
2 |
|
|
|
|
|
|
tk+1=tk+τ |
tk+1≤tmax |
|
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
Size -1 |
|
|
|
|
|
|
tk+1=tk+τ |
tk+1≤tmax |
|