Кафедра ЮНЕСКО по НИТ1 Коллективные коммуникационные операции. Редукционные операции параллельное программирование Часть2.

Презентация:



Advertisements
Похожие презентации
КОЛЛЕКТИВНЫЕ ВЗАИМОДЕЙСТВИЯ ПРОЦЕССОВ Барьерная синхронизация всех процессов группы. Широковещательная передача (broadcast) от одного процесса всем остальным.
Advertisements

Кафедра ЮНЕСКО по НИТ1 Коллективные коммуникационные операции параллельное программирование.
Введение в параллельные вычисления. Технология программирования MPI (день пятый) Антонов Александр Сергеевич, к.ф.-м.н., н.с. лаборатории Параллельных.
Основы параллельного программирования с использованием MPI Лекция 5 Немнюгин Сергей Андреевич Санкт-Петербургский государственный университет физический.
Кафедра ЮНЕСКО по НИТ1 Передача упакованных данных Параллельное программирование.
Параллельное программирование с использованием технологии MPI Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Лекция 8 Томский политехнический университет.
Кафедра ЮНЕСКО по НИТ1 Коммуникационные операции «точка-точка» параллельное программирование.
Кафедра ЮНЕСКО по НИТ1 Производные типы данных Параллельное программирование.
Кафедра ЮНЕСКО по НИТ1 Создание групп и коммуникаторов Параллельное программирование.
Кафедра ЮНЕСКО по НИТ1 Эффективность и ускорение параллельных программ параллельное программирование.
Параллельное программирование с использованием технологии MPI Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Лекция 4 Томский политехнический университет.
Нижегородский государственный университет им. Н.И.Лобачевского Факультет Вычислительной математики и кибернетики Раздел 4_1. Параллельное программирование.
Интерфейс передачи сообщений: MPI. Базовые архитектуры Массивно-параллельные системы (MPP) Симметричные мультипроцессорные системы (SMP) Системы с неоднородным.
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Гергель В.П. Общий курс Теория и практика параллельных вычислений Лекция 4 Методы разработки параллельных программ при использования интерфейса передачи.
Двумерные числовые массивы Урок 2. План урока 1.Инициализация элементов массива. 2.Обработка элементов двумерного массива.
Гергель В.П. Общий курс Теория и практика параллельных вычислений Лекция 9 Методы разработки параллельных программ при использования интерфейса передачи.
Стадник Е. Г. ФПМИ НГТУ Руководитель: Городничев М.А., м.н.с. ИВМ и МГ СО РАН.
Массивы 9 класс. Основные теоретические сведения Примеры решения задач.
Массивы Массив это величины объединенные общим именем и различаемые порядковыми номерами. Номера называются индексами. В зависимости от количества индексов.
Транксрипт:

кафедра ЮНЕСКО по НИТ1 Коллективные коммуникационные операции. Редукционные операции параллельное программирование Часть2

кафедра ЮНЕСКО по НИТ2 MPI – Глобальные вычислительные операции Редукционные операции – математические операции над блоками данных, распределённых по процессам группы Как и коллективные операции, операция редукции вызывается одна на всех процессах группы –данные с процесса с номером скалярная переменная вектор – = ассоциативная операция –Примеры: глобальное суммирование или произведение глобальный минимум или максимум глобальная, определенная пользователем, операция

MPI_Reduce MPI_Reduce - глобальная вычислительная операция с сохранением результата на в адресном пространстве одного процесса

кафедра ЮНЕСКО по НИТ4 sendbuf адрес начала входного буфера count число элементов во входном буфере datatype тип пересылаемых элементов op ассоциативная операция root номер процесса-получателя результата операции comm коммуникатор области связи int MPI_Reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm) Входные параметры: Выходные параметры: recvbuf адрес начала буфера приема MPI_Reduce

кафедра ЮНЕСКО по НИТ5 Глобальные операции НазваниеОперацияРазрешенные типы MPI_MAX MPI_MIN Максимум Минимум integer, floating point MPI_SUM MPI_PROD Сумма Произведение integer, floating point MPI_LAND MPI_LOR MPI_LXOR Логическое AND Логическое OR Логическое исключающее OR integer MPI_BAND MPI_BOR MPI_BXOR Поразрядное AND Поразрядное OR Поразрядное исключающее OR integer, byte MPI_MAXLOC MPI_MINLOC Максимальное значение и его индекс Минимальное значение и его индекс Специальные типы для этих функций integer: MPI_INT, MPI_LONG, MPI_SHORT, MPI_UNSIGNED_SHORT, MPI_UNSIGNED, MPI_UNSIGNED_LONG Floating point:MPI_FLOAT, MPI_DOUBLE, MPI_LONG_DOUBLE byte:MPI_BYTE

кафедра ЮНЕСКО по НИТ6 MPI_Allreduce MPI_Allreduce - глобальная вычислительная операция с сохранением результата на в адресном пространстве всех процессов

кафедра ЮНЕСКО по НИТ7 MPI_Allreduce sendbuf адрес начала входного буфера count число элементов во входном буфере datatype тип пересылаемых элементов op ассоциативная операция comm коммуникатор области связи int MPI_Allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) Входные параметры: Выходные параметры: recvbuf адрес начала буфера приема

кафедра ЮНЕСКО по НИТ8 MPI_Reduce_scatter int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) Функция MPI_Reduce_scatter отличается от MPI_Allreduce тем, что результат операции разрезается на непересекающиеся части по числу процессов в группе, i-ая часть посылается i-ому процессу в его буфер приема. Длины этих частей задает третий параметр, являющийся массивом.

кафедра ЮНЕСКО по НИТ9 MPI_Reduce_scatter sendbuf адрес начала входного буфера recvcount массив, в котором задаются размеры блоков, посылаемых процессам datatype тип пересылаемых элементов op ассоциативная операция comm коммуникатор области связи int MPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcount, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) Входные параметры: Выходные параметры: recvbuf адрес начала буфера приема

кафедра ЮНЕСКО по НИТ10 MPI_Scan int MPI_Scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) MPI_Scan – операция префиксной редукции. Операция пересылает в буфер приёма i-го процесса редукцию значений из входных буферов процессов с номерами 0, …, i включительно.

кафедра ЮНЕСКО по НИТ11 MPI_Scan sendbuf адрес начала входного буфера count число элементов во входном буфере datatype тип пересылаемых элементов op ассоциативная операция comm коммуникатор области связи int MPI_Scan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm) Входные параметры: Выходные параметры: recvbuf адрес начала буфера приема

Задание1 Написать программу суммирования чисел от 0 до N. Требования: Каждый процесс получает свою частичную сумму После суммирования все частичные суммы собираются в единую сумму на 1-ом процессе. Программа должна быть масштабируемой по числу процессоров.

Задание 2. Написать программу, выполняющую умножение матрицы на вектор. Требования: каждый процесс хранит по одной строке матрицы A. Вектор b хранится на всех процессах. Итоговый вектор c собирается на 1-ом процессе.

Задание 3. Написать программу, реализующую алгоритм суммирования ряда N чисел. Требования: Нулевой процесс рассылает исходный массив (ряд чисел) по всем процессам при помощи MPI_Bcast. Все процессы определяют свою порцию массива (индексы начала и конца) и выполняют MPI_Allreduce. Таким образом, результат сохраняется в адресном пространстве всех процессов.