🗊Презентация Основы MPI

Нажмите для полного просмотра!
Основы MPI, слайд №1Основы MPI, слайд №2Основы MPI, слайд №3Основы MPI, слайд №4Основы MPI, слайд №5Основы MPI, слайд №6Основы MPI, слайд №7Основы MPI, слайд №8Основы MPI, слайд №9Основы MPI, слайд №10Основы MPI, слайд №11Основы MPI, слайд №12Основы MPI, слайд №13Основы MPI, слайд №14Основы MPI, слайд №15Основы MPI, слайд №16Основы MPI, слайд №17Основы MPI, слайд №18Основы MPI, слайд №19Основы MPI, слайд №20Основы MPI, слайд №21Основы MPI, слайд №22Основы MPI, слайд №23Основы MPI, слайд №24Основы MPI, слайд №25Основы MPI, слайд №26Основы MPI, слайд №27Основы MPI, слайд №28Основы MPI, слайд №29Основы MPI, слайд №30Основы MPI, слайд №31Основы MPI, слайд №32Основы MPI, слайд №33Основы MPI, слайд №34Основы MPI, слайд №35Основы MPI, слайд №36Основы MPI, слайд №37Основы MPI, слайд №38Основы MPI, слайд №39Основы MPI, слайд №40Основы MPI, слайд №41Основы MPI, слайд №42Основы MPI, слайд №43Основы MPI, слайд №44Основы MPI, слайд №45Основы MPI, слайд №46Основы MPI, слайд №47Основы MPI, слайд №48Основы MPI, слайд №49Основы MPI, слайд №50Основы MPI, слайд №51

Содержание

Вы можете ознакомиться и скачать презентацию на тему Основы MPI. Доклад-сообщение содержит 51 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1


Основы MPI, слайд №1
Описание слайда:

Слайд 2





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

Слайд 3





ВВЕДЕНИЕ
Описание слайда:
ВВЕДЕНИЕ

Слайд 4





Введение…
В вычислительных системах 
с распределенной памятью 
выслительные узлы работают 
независимо
Необходимо иметь возможность:
распределять вычислительную нагрузку
организовывать информационное взаимодействие (передачу данных) между вычислительными узлами (далее узлы)
Решение всех указанных вопросов обеспечивает MPI (message passing interface, интерфейс передачи сообщений)
Описание слайда:
Введение… В вычислительных системах с распределенной памятью выслительные узлы работают независимо Необходимо иметь возможность: распределять вычислительную нагрузку организовывать информационное взаимодействие (передачу данных) между вычислительными узлами (далее узлы) Решение всех указанных вопросов обеспечивает MPI (message passing interface, интерфейс передачи сообщений)

Слайд 5





Введение…
При использовании MPI для решения задачи разрабатывается одна программа, которая запускается на выполнение одновременно на всех указанных узлах
Эта модель реализации параллельных вычислений называется “одна программа множество процессов” или SPMP
Описание слайда:
Введение… При использовании MPI для решения задачи разрабатывается одна программа, которая запускается на выполнение одновременно на всех указанных узлах Эта модель реализации параллельных вычислений называется “одна программа множество процессов” или SPMP

Слайд 6





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

Слайд 7





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

Слайд 8





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

Слайд 9





Введение
История MPI (разработка стандарта MPI ведется международным консорциумом MPI Forum)
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
21 сентября 2012 Опубликован стандарт MPI-3
4 июня 2015 Новая версия стандарта – MPI-3.1
Описание слайда:
Введение История MPI (разработка стандарта MPI ведется международным консорциумом MPI Forum) 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 21 сентября 2012 Опубликован стандарт MPI-3 4 июня 2015 Новая версия стандарта – MPI-3.1

Слайд 10





MPI: ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ
Описание слайда:
MPI: ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ

Слайд 11





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

Слайд 12





MPI: основные понятия и определения ...
В основе MPI лежат четыре основные концепции:
Тип операций передачи данных
Тип данных, пересылаемых в сообщении
Концепция коммуникатора
Концепция виртуальной топологии
Описание слайда:
MPI: основные понятия и определения ... В основе MPI лежат четыре основные концепции: Тип операций передачи данных Тип данных, пересылаемых в сообщении Концепция коммуникатора Концепция виртуальной топологии

Слайд 13





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

Слайд 14





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

Слайд 15





MPI: основные понятия и определения ...
Коммуникаторы
Во время вычислений могут быть созданы новые коммуникаторы, а уже существующие могут быть удалены
Один и тот же процесс может принадлежать разным коммуникаторам
Все процессы, доступные в параллельной программе, принадлежат коммуникатору с идентификатором MPI_COMM_WORLD, который создается по умолчанию
Если необходимо передать данные между процессами, принадлежащими разным группам, необходимо создать intercommunicator.
Описание слайда:
MPI: основные понятия и определения ... Коммуникаторы Во время вычислений могут быть созданы новые коммуникаторы, а уже существующие могут быть удалены Один и тот же процесс может принадлежать разным коммуникаторам Все процессы, доступные в параллельной программе, принадлежат коммуникатору с идентификатором MPI_COMM_WORLD, который создается по умолчанию Если необходимо передать данные между процессами, принадлежащими разным группам, необходимо создать intercommunicator.

Слайд 16





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

Слайд 17





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

Слайд 18





ОСНОВЫ MPI
Описание слайда:
ОСНОВЫ MPI

Слайд 19





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

Слайд 20





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

Слайд 21





Основы MPI…
Определение числа и ранга процессов
Количество процессов в выполняемой параллельной программе может быть получено с помощью следующей функции:



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

Слайд 22





Основы MPI… 
Определение числа и ранга процессов
Как правило, функции MPI_Comm_size() и MPI_Comm_rank() вызываются сразу после MPI_Init()
Описание слайда:
Основы MPI… Определение числа и ранга процессов Как правило, функции MPI_Comm_size() и MPI_Comm_rank() вызываются сразу после MPI_Init()

Слайд 23





Основы MPI… 
Определение числа и ранга процессов
Коммуникатор MPI_COMM_WORLD создается по умолчанию и представляет все процессы параллельной программой, созданные при ее запуске
Ранг, полученный с помощью функции MPI_Comm_rank(), представляет собой ранг процесса, который вызвал эту функцию, то есть переменная ProcRank будет принимать разные значения в разных процессах
Описание слайда:
Основы MPI… Определение числа и ранга процессов Коммуникатор MPI_COMM_WORLD создается по умолчанию и представляет все процессы параллельной программой, созданные при ее запуске Ранг, полученный с помощью функции MPI_Comm_rank(), представляет собой ранг процесса, который вызвал эту функцию, то есть переменная ProcRank будет принимать разные значения в разных процессах

Слайд 24





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

Слайд 25





Основы MPI… 
Передача сообщений
Типы данных MPI для алгоритмического языка C
Описание слайда:
Основы MPI… Передача сообщений Типы данных MPI для алгоритмического языка C

Слайд 26





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

Слайд 27





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

Слайд 28





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

Слайд 29





Основы MPI… 
Получение сообщений
Параметр status позволяет определить ряд характеристик полученного сообщения


Функция

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

Слайд 30





Основы MPI… 
Получение сообщений
Функция  MPI_Recv() является блокирующей для процесса-получателя
Выполнение процесса приостанавливается до тех пор, пока функция не завершит свою работу
Если по какой-либо причине ожидаемое сообщение отсутствует, выполнение процесса будет блокировано
Описание слайда:
Основы MPI… Получение сообщений Функция MPI_Recv() является блокирующей для процесса-получателя Выполнение процесса приостанавливается до тех пор, пока функция не завершит свою работу Если по какой-либо причине ожидаемое сообщение отсутствует, выполнение процесса будет блокировано

Слайд 31





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

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

Слайд 32





ПЕРВАЯ ПРОГРАММА НА MPI
Описание слайда:
ПЕРВАЯ ПРОГРАММА НА MPI

Слайд 33





Первая параллельная MPI программа…
Описание слайда:
Первая параллельная MPI программа…

Слайд 34





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

Слайд 35





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

Слайд 36





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

Слайд 37





ВВЕДЕНИЕ В КОЛЛЕКТИВНУЮ ПЕРЕДАЧУ ДАННЫХ
Описание слайда:
ВВЕДЕНИЕ В КОЛЛЕКТИВНУЮ ПЕРЕДАЧУ ДАННЫХ

Слайд 38





Введение в коллективную передачу данных…
Проблема суммирования
Рассмотрим задачу суммирования элементов вектора x
Для разработки параллельной реализации необходимо
разделить данные на «равные» блоки
распределить блоки по процессам
провести в каждом процессе суммирование полученных данных
собрать значения частичных сумм на одном из процессов
Сложить значения частичных сумм, чтобы получить общий результат
Описание слайда:
Введение в коллективную передачу данных… Проблема суммирования Рассмотрим задачу суммирования элементов вектора x Для разработки параллельной реализации необходимо разделить данные на «равные» блоки распределить блоки по процессам провести в каждом процессе суммирование полученных данных собрать значения частичных сумм на одном из процессов Сложить значения частичных сумм, чтобы получить общий результат

Слайд 39





Введение в коллективную передачу данных…
Передача данных
Предположим, что мы имеем p процессов и n % p = 0
В этом случае размер каждого блока будет n / p
Предположим, что только процесс с рангом 0 знает размер n 
и вектор x
Перед распределением вектора x между процессами мы должны передать размер n каждому процессу, кроме нулевого
Мы можем использовать следующий код
Эта версия очень неэффективна! Повторение передачи данных приводит к суммированию латентностей
Описание слайда:
Введение в коллективную передачу данных… Передача данных Предположим, что мы имеем p процессов и n % p = 0 В этом случае размер каждого блока будет n / p Предположим, что только процесс с рангом 0 знает размер n и вектор x Перед распределением вектора x между процессами мы должны передать размер n каждому процессу, кроме нулевого Мы можем использовать следующий код Эта версия очень неэффективна! Повторение передачи данных приводит к суммированию латентностей

Слайд 40





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

Слайд 41





Введение в коллективную передачу данных…
Передача данных
Функция MPI_Bcast() выполняет передачу данных из буффера buf, который содержит элементы типа count, от процесса с рангом root процессам внутри коммуникатора comm
Описание слайда:
Введение в коллективную передачу данных… Передача данных Функция MPI_Bcast() выполняет передачу данных из буффера buf, который содержит элементы типа count, от процесса с рангом root процессам внутри коммуникатора comm

Слайд 42





Введение в коллективную передачу данных…
Передача данных
Функция MPI_Bcast() – это коллективная операция, ее вызов должен выполняться всеми процессами коммуникатора comm
Буфер памяти, указанный в функции MPI_Bcast(), имеет разные назначения в разных процессах:
Для root процесса, из которого выполняется передача данных, этот буфер должен содержать переданное сообщение
Для остальных процессов буфер предназначен для приема данных
Таким образом, мы можем изменить код на
Описание слайда:
Введение в коллективную передачу данных… Передача данных Функция MPI_Bcast() – это коллективная операция, ее вызов должен выполняться всеми процессами коммуникатора comm Буфер памяти, указанный в функции MPI_Bcast(), имеет разные назначения в разных процессах: Для root процесса, из которого выполняется передача данных, этот буфер должен содержать переданное сообщение Для остальных процессов буфер предназначен для приема данных Таким образом, мы можем изменить код на

Слайд 43





Введение в коллективную передачу данных…
Распределение данных и вычислений
Чтобы распределить вектор x среди процессов, мы можем использовать следующий код
Этот код может быть реализован более эффективно (см. Лекцию 02)
Теперь мы можем выполнить суммирование в каждом процессе, используя следующий простой код
Описание слайда:
Введение в коллективную передачу данных… Распределение данных и вычислений Чтобы распределить вектор x среди процессов, мы можем использовать следующий код Этот код может быть реализован более эффективно (см. Лекцию 02) Теперь мы можем выполнить суммирование в каждом процессе, используя следующий простой код

Слайд 44





Введение в коллективную передачу данных…
Редукция данных
Последний этап – собрать значения вычисленных частичных сумм и просуммировать их для получения общего результата
Такая процедура сбора и суммирования данных является примером широко используемой операции редукции данных от всех процессов на выбранном процессе
Описание слайда:
Введение в коллективную передачу данных… Редукция данных Последний этап – собрать значения вычисленных частичных сумм и просуммировать их для получения общего результата Такая процедура сбора и суммирования данных является примером широко используемой операции редукции данных от всех процессов на выбранном процессе

Слайд 45





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

Слайд 46





Введение в коллективную передачу данных…
Редукция данных
Основные типы операций MPI для редукции данных
Описание слайда:
Введение в коллективную передачу данных… Редукция данных Основные типы операций MPI для редукции данных

Слайд 47





Введение в коллективную передачу данных…
Редукция данных
Функция MPI_Reduce() является коллективной операцией, ее вызов должен выполняться всеми процессами коммуникатора comm.
Все вызовы должны содержать одинаковые значения параметров count, type, op, root, comm
Передача данных должна осуществляться всеми процессами.
Результат операции будет получен только root процессом.
Выполнение операции op происходит над отдельными элементами передаваемых сообщений
Описание слайда:
Введение в коллективную передачу данных… Редукция данных Функция MPI_Reduce() является коллективной операцией, ее вызов должен выполняться всеми процессами коммуникатора comm. Все вызовы должны содержать одинаковые значения параметров count, type, op, root, comm Передача данных должна осуществляться всеми процессами. Результат операции будет получен только root процессом. Выполнение операции op происходит над отдельными элементами передаваемых сообщений

Слайд 48





Введение в коллективную передачу данных…
Сжатие данных
Пример вычисления суммы значений
Описание слайда:
Введение в коллективную передачу данных… Сжатие данных Пример вычисления суммы значений

Слайд 49





Итоги
Рассмотрен ряд концепций и определений, которые являются основными для стандарта MPI (параллельная программа, операции передачи сообщений, типы данных, коммуникаторы, виртуальные топологии)
Дано краткое введение в разработку параллельных программ на основе MPI
Представлены примеры параллельных программ на основе MPI
Описание слайда:
Итоги Рассмотрен ряд концепций и определений, которые являются основными для стандарта MPI (параллельная программа, операции передачи сообщений, типы данных, коммуникаторы, виртуальные топологии) Дано краткое введение в разработку параллельных программ на основе MPI Представлены примеры параллельных программ на основе MPI

Слайд 50





Упражнения
Разработать программу для нахождения минимального (максимального) значения среди элементов вектора
Разработать программу вычисления скалярного произведения двух векторов
Описание слайда:
Упражнения Разработать программу для нахождения минимального (максимального) значения среди элементов вектора Разработать программу вычисления скалярного произведения двух векторов

Слайд 51





Ссылки
Описание стандарта MPI: http://www.mpiforum.org
Одна из наиболее широко используемых реализаций MPI, библиотека MPICH http://www.mpich.org 
Quinn, M.J. (2004). Parallel Programming in C with MPI and OpenMP. – New York, NY: McGraw-Hill.
Pacheco, P. (1996). Parallel Programming with MPI. - Morgan Kaufmann.
Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J. (1996). MPI: The Complete Reference. – MIT Press, Boston, 1996.
Group, W., Lusk, E., Skjellum, A. (1999). Using MPI – 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation). – MIT Press.
Group, W., Lusk, E., Thakur, R. (1999). Using MPI-2: Advanced Features of the Message Passing Interface (Scientific and Engineering Computation). – MIT Press.
Описание слайда:
Ссылки Описание стандарта MPI: http://www.mpiforum.org Одна из наиболее широко используемых реализаций MPI, библиотека MPICH http://www.mpich.org Quinn, M.J. (2004). Parallel Programming in C with MPI and OpenMP. – New York, NY: McGraw-Hill. Pacheco, P. (1996). Parallel Programming with MPI. - Morgan Kaufmann. Snir, M., Otto, S., Huss-Lederman, S., Walker, D., Dongarra, J. (1996). MPI: The Complete Reference. – MIT Press, Boston, 1996. Group, W., Lusk, E., Skjellum, A. (1999). Using MPI – 2nd Edition: Portable Parallel Programming with the Message Passing Interface (Scientific and Engineering Computation). – MIT Press. Group, W., Lusk, E., Thakur, R. (1999). Using MPI-2: Advanced Features of the Message Passing Interface (Scientific and Engineering Computation). – MIT Press.



Теги Основы MPI
Похожие презентации
Mypresentation.ru
Загрузить презентацию