Презентация Параллельное программирование на основе MPI. (Раздел 4. 1) онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Параллельное программирование на основе MPI. (Раздел 4. 1) абсолютно бесплатно. Урок-презентация на эту тему содержит всего 56 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Параллельное программирование на основе MPI. (Раздел 4. 1)



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    56 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    819.50 kB
  • Просмотров:
    97
  • Скачиваний:
    0
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Раздел . Параллельное
Содержание слайда: Раздел 4_1. Параллельное программирование на основе MPI Образовательный комплекс Введение в методы параллельного программирования

№2 слайд
Содержание MPI основные
Содержание слайда: Содержание MPI: основные понятия и определения Введение в MPI Инициализация и завершение MPI программ Определение количества и ранга процессов Прием и передача сообщений Определение времени выполнение MPI программы Коллективные операции передачи данных Пример: программа вычисления числа  Заключение

№3 слайд
Введение распределять
Содержание слайда: Введение… распределять вычислительную нагрузку, организовать информационное взаимодействие (передачу данных) между процессорами.

№4 слайд
Введение В рамках MPI для
Содержание слайда: Введение… В рамках MPI для решения задачи разрабатывается одна программа, она запускается на выполнение одновременно на всех имеющихся процессорах Для организации различных вычислений на разных процессорах: Есть возможность подставлять разные данные для программы на разных процессорах, Имеются средства для идентификации процессора, на котором выполняется программа Такой способ организации параллельных вычислений обычно именуется как модель "одна программа множество процессов" (single program multiple processes or SPMP)

№5 слайд
Введение В MPI существует
Содержание слайда: Введение… В MPI существует множество операций передачи данных: Обеспечиваются разные способы пересылки данных, Реализованы практически все основные коммуникационные операции. Эти возможности являются наиболее сильной стороной MPI (об этом, в частности, свидетельствует и само название MPI)

№6 слайд
Введение Что означает MPI?
Содержание слайда: Введение… Что означает MPI? MPI - это стандарт, которому должны удовлетворять средства организации передачи сообщений. MPI – это программные средства, которые обеспечивают возможность передачи сообщений и при этом соответствуют всем требованиям стандарта MPI: программные средства должны быть организованы в виде библиотек программных модулей (библиотеки MPI), должны быть доступны для наиболее широко используемых алгоритмических языков C и Fortran.

№7 слайд
Введение Достоинства MPI MPI
Содержание слайда: Введение… Достоинства MPI MPI позволяет существенно снизить остроту проблемы переносимости параллельных программ между разными компьютерными системами. MPI содействует повышению эффективности параллельных вычислений - практически для каждого типа вычислительных систем существуют реализации библиотек MPI. MPI уменьшает сложность разработки параллельных программ: большая часть основных операций передачи данных предусматривается стандартом MPI, имеется большое количество библиотек параллельных методов, созданных с использованием MPI.

№8 слайд
Введение История разработки
Содержание слайда: Введение История разработки MPI 1992 г. Начало работ над стандартом библиотеки передачи сообщений (Oak Ridge National Laboratory, Rice University). Ноябрь 1992 г. Объявление рабочего варианта стандарта MPI 1. Ноябрь 1993 г. Обсуждение стандарта на конференции Supercomputing'93. 5 мая 1994 г. Окончательный вариант стандарта MPI 1.0. 12 Июня 1995 г. Новая версия стандарта - MPI 1.1. 18 Июля 1997 г. Опубликован стандарт MPI-2: Extensions to the Message-Passing Interface.

№9 слайд
MPI основные понятия и
Содержание слайда: MPI: основные понятия и определения… Понятие параллельной программы Под параллельной программой в рамках MPI понимается множество одновременно выполняемых процессов: Процессы могут выполняться на разных процессорах; вместе с этим, на одном процессоре могут располагаться несколько процессов, Каждый процесс параллельной программы порождается на основе копии одного и того же программного кода (модель SPMP). Исходный программный код разрабатывается на алгоритмических языках C или Fortran с использованием библиотеки MPI. Количество процессов и число используемых процессоров определяется в момент запуска параллельной программы средствами среды исполнения MPI программ. Все процессы программы последовательно перенумерованы. Номер процесса именуется рангом процесса.

№10 слайд
MPI основные понятия и
Содержание слайда: MPI: основные понятия и определения… В основу MPI положены четыре основные концепции: Тип операции передачи сообщения Тип данных, пересылаемых в сообщении Понятие коммуникатора (группы процессов) Понятие виртуальной топологии

№11 слайд
MPI основные понятия и
Содержание слайда: MPI: основные понятия и определения… Операции передачи данных Основу MPI составляют операции передачи сообщений. Среди предусмотренных в составе MPI функций различаются: парные (point-to-point) операции между двумя процессами, коллективные (collective) коммуникационные действия для одновременного взаимодействия нескольких процессов.

№12 слайд
MPI основные понятия и
Содержание слайда: MPI: основные понятия и определения… Понятие коммуникаторов… Коммуникатор в MPI - специально создаваемый служебный объект, объединяющий в своем составе группу процессов и ряд дополнительных параметров (контекст): парные операции передачи данных выполняются для процессов, принадлежащих одному и тому же коммуникатору, Коллективные операции применяются одновременно для всех процессов коммуникатора. Указание используемого коммуникатора является обязательным для операций передачи данных в MPI.

№13 слайд
MPI основные понятия и
Содержание слайда: MPI: основные понятия и определения… Понятие коммуникаторов В ходе вычислений могут создаваться новые и удаляться существующие коммуникаторы. Один и тот же процесс может принадлежать разным коммуникаторам. Все имеющиеся в параллельной программе процессы входят в состав создаваемого по умолчанию коммуникатора с идентификатором MPI_COMM_WORLD. При необходимости передачи данных между процессами из разных групп необходимо создавать глобальный коммуникатор (intercommunicator).

№14 слайд
MPI основные понятия и
Содержание слайда: MPI: основные понятия и определения… Типы данных При выполнении операций передачи сообщений для указания передаваемых или получаемых данных в функциях MPI необходимо указывать тип пересылаемых данных. MPI содержит большой набор базовых типов данных, во многом совпадающих с типами данных в алгоритмических языках C и Fortran. В MPI имеются возможности для создания новых производных типов данных для более точного и краткого описания содержимого пересылаемых сообщений.

№15 слайд
MPI основные понятия и
Содержание слайда: MPI: основные понятия и определения Виртуальные топологии Логическая топология линий связи между процессами имеет структуру полного графа (независимо от наличия реальных физических каналов связи между процессорами). В MPI имеется возможность представления множества процессов в виде решетки произвольной размерности При этом, граничные процессы решеток могут быть объявлены соседними и, тем самым, на основе решеток могут быть определены структуры типа тор. В MPI имеются средства и для формирования логических (виртуальных) топологий любого требуемого типа.

№16 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Инициализация и завершение MPI программ Первой вызываемой функцией MPI должна быть функция: (служит для инициализации среды выполнения MPI программы; параметрами функции являются количество аргументов в командной строке и текст самой командной строки.) Последней вызываемой функцией MPI обязательно должна являться функция:

№17 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Инициализация и завершение MPI программ структура параллельной программы, разработанная с использованием MPI, должна иметь следующий вид:

№18 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Определение количества и ранга процессов… Определение количества процессов в выполняемой параллельной программе осуществляется при помощи функции: Для определения ранга процесса используется функция:

№19 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Определение количества и ранга процессов… Как правило, вызов функций MPI_Comm_size и MPI_Comm_rank выполняется сразу после MPI_Init:

№20 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Определение количества и ранга процессов… Коммуникатор MPI_COMM_WORLD создается по умолчанию и представляет все процессы выполняемой параллельной программы; Ранг, получаемый при помощи функции MPI_Comm_rank, является рангом процесса, выполнившего вызов этой функции, и, тем самым, переменная ProcRank будет принимать различные значения в разных процессах.

№21 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Передача сообщений… Для передачи сообщения процесс-отправитель должен выполнить функцию:

№22 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Передача сообщений…

№23 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Передача сообщений Отправляемое сообщение определяется через указание блока памяти (буфера), в котором это сообщение располагается. Используемая для указания буфера триада (buf, count, type) входит в состав параметров практически всех функций передачи данных, Процессы, между которыми выполняется передача данных, обязательно должны принадлежать коммуникатору, указываемому в функции MPI_Send, Параметр tag используется только при необходимости различения передаваемых сообщений, в противном случае в качестве значения параметра может быть использовано произвольное целое число.

№24 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Прием сообщений… Для приема сообщения процесс-получатель должен выполнить функцию:

№25 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Прием сообщений… Буфер памяти должен быть достаточным для приема сообщения, а тип элементов передаваемого и принимаемого сообщения должны совпадать; при нехватке памяти часть сообщения будет потеряна и в коде завершения функции будет зафиксирована ошибка переполнения, При необходимости приема сообщения от любого процесса-отправителя для параметра source может быть указано значение MPI_ANY_SOURCE, При необходимости приема сообщения с любым тегом для параметра tag может быть указано значение MPI_ANY_TAG,

№26 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Прием сообщений… Параметр status позволяет определить ряд характеристик принятого сообщения: Функция возвращает в переменной count количество элементов типа type в принятом сообщении.

№27 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Прием сообщений Функция MPI_Recv является блокирующей для процесса-получателя, т.е. его выполнение приостанавливается до завершения работы функции. Таким образом, если по каким-то причинам ожидаемое для приема сообщение будет отсутствовать, выполнение параллельной программы будет блокировано.

№28 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Первая параллельная программа с использованием MPI… Каждый процесс определяет свой ранг, после чего действия в программе разделяются (разные процессы выполняют различные действия), Все процессы, кроме процесса с рангом 0, передают значение своего ранга нулевому процессу, Процесс с рангом 0 сначала печатает значение своего ранга, а далее последовательно принимает сообщения с рангами процессов и также печатает их значения, Возможный вариант результатов печати процесса 0:

№29 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Первая параллельная программа с использованием MPI (замечания)… Порядок приема сообщений заранее не определен и зависит от условий выполнения параллельной программы (более того, этот порядок может изменяться от запуска к запуску). Если это не приводит к потере эффективности, следует обеспечивать однозначность расчетов и при использовании параллельных вычислений: Указание ранга процесса-отправителя регламентирует порядок приема сообщений.

№30 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI… Первая параллельная программа с использованием MPI (замечания)… Можно рекомендовать при увеличении объема разрабатываемых программ выносить программный код разных процессов в отдельные программные модули (функции). Общая схема MPI программы в этом случае будет иметь вид:

№31 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Основы MPI Первая параллельная программа с использованием MPI (замечания) Для контроля правильности выполнения все функции MPI возвращают в качестве своего значения код завершения. При успешном выполнении функции возвращаемый код равен MPI_SUCCESS. Другие значения кода завершения свидетельствуют об обнаружении тех или иных ошибочных ситуаций в ходе выполнения функций:

№32 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Определение времени выполнение MPI программы Необходимо определять время выполнения вычислений для оценки достигаемого ускорения за счет использования параллелизма, Получение времени текущего момента выполнения программы обеспечивается при помощи функции: Точность измерения времени может зависеть от среды выполнения параллельной программы. Для определения текущего значения точности может быть использована функция: (время в секундах между двумя последовательными показателями времени аппаратного таймера используемой системы)

№33 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Будем использовать учебную задачу суммирования элементов вектора x: Для решения необходимо разделить данные на равные блоки, передать эти блоки процессам, выполнить в процессах суммирование полученных данных, собрать значения вычисленных частных сумм на одном из процессов и сложить значения частичных сумм для получения общего результата решаемой задачи, Для более простого изложения примера процессам программы будут передаваться весь суммируемый вектор, а не отдельные блоки этого вектора.

№34 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от одного процесса всем процессам программы… Необходимо передать значения вектора x всем процессам параллельной программы, Можно воспользоваться рассмотренными ранее функциями парных операций передачи данных: Повторение операций передачи приводит к суммированию затрат (латентностей) на подготовку передаваемых сообщений, Данная операция может быть выполнена за меньшее число операций передачи данных.

№35 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от одного процесса всем процессам программы… Широковещательная рассылка данных может быть обеспечена при помощи функции MPI:

№36 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от одного процесса всем процессам программы… Функция MPI_Bcast осуществляет рассылку данных из буфера buf, содержащего count элементов типа type с процесса, имеющего номер root, всем процессам, входящим в коммуникатор comm

№37 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от одного процесса всем процессам программы Функция MPI_Bcast определяет коллективную операцию, вызов функции MPI_Bcast должен быть осуществлен всеми процессами указываемого коммуникатора, Указываемый в функции MPI_Bcast буфер памяти имеет различное назначение в разных процессах: Для процесса с рангом root, с которого осуществляется рассылка данных, в этом буфере должно находиться рассылаемое сообщение. Для всех остальных процессов указываемый буфер предназначен для приема передаваемых данных.

№38 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от всех процессов одному процессу… Процедура сбора и последующего суммирования данных является примером часто выполняемой коллективной операции передачи данных от всех процессов одному процессу, в которой над собираемыми значениями осуществляется та или иная обработка данных.

№39 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от всех процессов одному процессу…

№40 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Типы операций MPI для функций редукции данных…

№41 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Типы операций MPI для функций редукции данных… MPI_MAX и MPI_MIN ищут поэлементные максимум и минимум; MPI_SUM вычисляет поэлементную сумму векторов; MPI_PROD вычисляет поэлементное произведение векторов; MPI_LAND, MPI_BAND, MPI_LOR, MPI_BOR, MPI_LXOR, MPI_BXOR - логические и двоичные операции И, ИЛИ, исключающее ИЛИ; MPI_MAXLOC, MPI_MINLOC - поиск индексированного минимума/максимума

№42 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от всех процессов одному процессу… Функция MPI_Reduce определяет коллективную операцию и, тем самым, вызов функции должен быть выполнен всеми процессами указываемого коммуникатора, все вызовы функции должны содержать одинаковые значения параметров count, type, op, root, comm, Передача сообщений должна быть выполнена всеми процессами, результат операции будет получен только процессом с рангом root, Выполнение операции редукции осуществляется над отдельными элементами передаваемых сообщений.

№43 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI… Начальное знакомство с коллективными операциями передачи данных… Передача данных от всех процессов одному процессу (пример для операции суммирования)

№44 слайд
Введение в разработку
Содержание слайда: Введение в разработку параллельных программ с использованием MPI Начальное знакомство с коллективными операциями передачи данных Синхронизация вычислений Синхронизация процессов, т.е. одновременное достижение процессами тех или иных точек процесса вычислений, обеспечивается при помощи функции MPI: Функция MPI_Barrier определяет коллективную операцию, при использовании должна вызываться всеми процессами коммуникатора. Продолжение вычислений любого процесса произойдет только после выполнения функции MPI_Barrier всеми процессами коммуникатора.

№45 слайд
Пример Вычисление числа
Содержание слайда: Пример: Вычисление числа …

№46 слайд
Пример Вычисление числа
Содержание слайда: Пример: Вычисление числа …

№47 слайд
Пример Вычисление числа
Содержание слайда: Пример: Вычисление числа …

№48 слайд
Пример Вычисление числа
Содержание слайда: Пример: Вычисление числа 

№49 слайд
Заключение В первой
Содержание слайда: Заключение… В первой презентации раздела рассмотрены понятия и определения, являющиеся основополагающими для стандарта MPI (параллельная программа, операция передачи сообщения, тип данных, коммуникатор, виртуальная топология). Дано быстрое и простое введение в разработку параллельных программ с использованием MPI. Приведен пример параллельной программы с использованием MPI

№50 слайд
Вопросы для обсуждения
Содержание слайда: Вопросы для обсуждения Сложность параллельных программ, разработанных с использованием MPI Проблема отладки параллельных программ

№51 слайд
Темы заданий для
Содержание слайда: Темы заданий для самостоятельной работы Разработайте программу для нахождения минимального (максимального) значения среди элементов вектора. Разработайте программу для вычисления скалярного произведения двух векторов. Разработайте программу, в которой два процесса многократно обмениваются сообщениями длиной n байт. Выполните эксперименты и оцените зависимость времени выполнения операции данных от длины сообщения. Сравните с теоретическими оценками, построенными по модели Хокни.

№52 слайд
Ссылки Информационный ресурс
Содержание слайда: Ссылки Информационный ресурс Интернет с описанием стандарта MPI: http://www.mpiforum.org Одна из наиболее распространенных реализаций MPI библиотека MPICH представлена на http://www-unix.mcs.anl.gov/mpi/mpich Библиотека MPICH2 с реализацией стандарта MPI-2 содержится на http://www-unix.mcs.anl.gov/mpi/mpich2 Русскоязычные материалы о MPI имеются на сайте http://www.parallel.ru

№53 слайд
Литература Воеводин В.В.,
Содержание слайда: Литература… Воеводин В.В., Воеводин Вл.В. (2002). Параллельные вычисления. – СПб.: БХВ-Петербург. Корнеев В.В. (2003) Параллельное программирование в MPI. Москва-Ижевск: Институт компьютерных исследований,2003 Немнюгин С., Стесик О. (2002). Параллельное программирование для многопроцессорных вычислительных систем – СПб.: БХВ-Петербург. Group, W., Lusk, E., Skjellum, A. (1994). Using MPI. Portable Parallel Programming with the Message-Passing Interface. –MIT Press. Group, W., Lusk, E., Skjellum, A. (1999a). Using MPI - 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation). - MIT Press.

№54 слайд
Литература Group, W., Lusk,
Содержание слайда: Литература Group, W., Lusk, E., Thakur, R. (1999b). Using MPI-2: Advanced Features of the Message Passing Interface (Scientific and Engineering Computation). - MIT Press. Pacheco, P. (1996). Parallel Programming with MPI. - Morgan Kaufmann. Quinn, M. J. (2004). Parallel Programming in C with MPI and OpenMP. – New York, NY: McGraw-Hill. Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J. (1996). MPI: The Complete Reference. - MIT Press, Boston, 1996.

№55 слайд
Гергель В.П., профессор,
Содержание слайда: Гергель В.П., профессор, д.т.н., руководитель Гергель В.П., профессор, д.т.н., руководитель Гришагин В.А., доцент, к.ф.м.н. Абросимова О.Н., ассистент (раздел 10) Лабутин Д.Ю., ассистент (система ПараЛаб) Курылев А.Л., ассистент (лабораторные работы 4, 5) Сысоев А.В., ассистент (раздел 1) Гергель А.В., аспирант (раздел 12, лабораторная работа 6) Лабутина А.А., аспирант (разделы 7,8,9, лабораторные работы 1, 2, 3, система ПараЛаб) Сенин А.В., аспирант (раздел 11, лабораторные работы по Microsoft Compute Cluster) Ливерко С.В. (система ПараЛаб)

№56 слайд
Целью проекта является
Содержание слайда: Целью проекта является создание образовательного комплекса "Многопроцессорные вычислительные системы и параллельное программирование", обеспечивающий рассмотрение вопросов параллельных вычислений, предусматриваемых рекомендациями Computing Curricula 2001 Международных организаций IEEE-CS и ACM. Данный образовательный комплекс может быть использован для обучения на начальном этапе подготовки специалистов в области информатики, вычислительной техники и информационных технологий. Целью проекта является создание образовательного комплекса "Многопроцессорные вычислительные системы и параллельное программирование", обеспечивающий рассмотрение вопросов параллельных вычислений, предусматриваемых рекомендациями Computing Curricula 2001 Международных организаций IEEE-CS и ACM. Данный образовательный комплекс может быть использован для обучения на начальном этапе подготовки специалистов в области информатики, вычислительной техники и информационных технологий. Образовательный комплекс включает учебный курс "Введение в методы параллельного программирования" и лабораторный практикум "Методы и технологии разработки параллельных программ", что позволяет органично сочетать фундаментальное образование в области программирования и практическое обучение методам разработки масштабного программного обеспечения для решения сложных вычислительно-трудоемких задач на высокопроизводительных вычислительных системах. Проект выполнялся в Нижегородском государственном университете им. Н.И. Лобачевского на кафедре математического обеспечения ЭВМ факультета вычислительной математики и кибернетики (http://www.software.unn.ac.ru). Выполнение проекта осуществлялось при поддержке компании Microsoft.

Скачать все slide презентации Параллельное программирование на основе MPI. (Раздел 4. 1) одним архивом: