Кафедра ЮНЕСКО по НИТ1 Параллельное программирование MPI – massage passing interface.

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



Advertisements
Похожие презентации
Кафедра ЮНЕСКО по НИТ1 Параллельное программирование MPI – message passing interface Власенко Андрей Юрьевич.
Advertisements

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

кафедра ЮНЕСКО по НИТ1 Параллельное программирование MPI – massage passing interface

кафедра ЮНЕСКО по НИТ2 Содержание 1. Учебный кластер 2. ОС Red Hat Linux MPI (Message Passing Interface) – Интерфейс Передачи Сообщений 4. Установка MPIch для Windows 5. Компиляция и запуск 6. Обрамляющие функции MPI 7. Пример параллельной программы

кафедра ЮНЕСКО по НИТ3 Кластер ЮНЕСКО Состоит из 9 однородных ПК PIII – 966 MHz RAM – 64/128 Mb HDD – 20 Gb Сетевая среда – 100 Mb/s ОС – Linux Red Hat 9.0 Компилятор – GNU g77 Коммуникационная библиотека - MPI

кафедра ЮНЕСКО по НИТ4 Кластер ЮНЕСКО

кафедра ЮНЕСКО по НИТ5 Окно Linux Red Hat 9.0 Red Hat Linux release 9.0 (Strike) Kernel on an i586 Login: stud Password: stud1234 Last login: Fri Sep 3 10:46:00 from unesco1.kemsu.ru stud]$ mc -c

кафедра ЮНЕСКО по НИТ6 Окно Linux Red Hat 9.0 Red Hat Linux release 9.0 (Strike) Kernel on an i586 Login: stud Password: Last login: Fri Sep 3 10:46:00 from unesco1.kemsu.ru stud]$ telnet unesco9 или stud]$ telnet Red Hat Linux release 9.0 (Strike) Kernel on an i586 Login:

кафедра ЮНЕСКО по НИТ7 Окно Linux Red Hat 9.0 – запуск компилятора Си++ stud]$ g++ –o test.exe test.cpp stud]$./test.exe stud]$ g++ test.cpp first.cpp stud]$ g++ *.cpp

кафедра ЮНЕСКО по НИТ8 История создания MPI MPI: A Message-Passing Interface Standard (1.1, June 12, 1995) MPI-2: Extensions to the Message-Passing Interface (July18,1997) Marc Snir and William Gropp et al.: MPI: The Complete Reference. (2-volume set).The MIT Press, (excellent catching up of the standard MPI-1.2 and MPI-2 in a readable form) William Gropp, Ewing Lusk and Rajeev Thakur: Using MPI: Portable Parallel Programming With the Message-Passing Interface. MIT Press, Nov And Using MPI-2: Advanced Features of the Message-Passing Interface. MIT Press, Aug (or both in one volume, 725 pages, ISBN X)

кафедра ЮНЕСКО по НИТ9 MPI – интерфейс передачи сообщений MPI – стандарт на программный инструментарий для обеспечения связи между ветвями параллельного приложения MPI – это библиотека функций, обеспечивающая взаимодействие параллельных процессов с помощью механизма передачи сообщений Специфика MPI – осуществляет связь между процессорами, передавая необходимые данные между ветвями параллельного алгоритма

кафедра ЮНЕСКО по НИТ10 MPI для MPI принято писать программу, содержащую код всех ветвей сразу каждый экземпляр определяет свой порядковый номер в запущенном коллективе и в зависимости от этого номера и размера коллектива выполняет ту или иную ветвь алгоритма данная модель параллелизма называется SPMD (simple program/multiple data)

кафедра ЮНЕСКО по НИТ11 Парадигма параллельного программирования Парадигма последовательного программирования data pro- gram память процессор Парадигма параллельного программирования data sub- program data sub- program data sub- program data sub- program communication network распределенная память параллельные процессора

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

кафедра ЮНЕСКО по НИТ13 Характеристики функций Локальная функция Нелокальная функция Глобальная функция Блокирующая функция Неблокирующая функция

кафедра ЮНЕСКО по НИТ14 Запуск и компиляция ОС Red Hat Linux stud]$ mpiCC test.cpp stud]$ mpirun –np 1 a.out stud]$ mpiCC test.cpp -mpilog stud]$ mpiCC second.f -mpitrace

кафедра ЮНЕСКО по НИТ15 MPIch для Windows Инсталляционный пакет mpich.nt exe Версия MPICH 2 mpich p1-win-ia32.msi

кафедра ЮНЕСКО по НИТ16 Установка MPIch для Windows

кафедра ЮНЕСКО по НИТ17 Проверка установки MPIch для запуска на исполнение параллельных программ необходимо проверить запущен ли сервис smpd

кафедра ЮНЕСКО по НИТ18 Создание MPI проекта в MS Visual Studio 2008

кафедра ЮНЕСКО по НИТ19 Подключение библиотеки MPI

кафедра ЮНЕСКО по НИТ20 Библиотечные файлы MPI В проекте должны быть прописаны пути до библиотеки MPI и подключаемых (include) файлов путь к библиотечным файлам С:\Program Files\MPICH2\lib путь к подключаемым файлам С:\Program Files\MPICH2\include

кафедра ЮНЕСКО по НИТ21 MPI программа

кафедра ЮНЕСКО по НИТ22 Компиляция MPI

кафедра ЮНЕСКО по НИТ23 Копирование MPI программ

кафедра ЮНЕСКО по НИТ24 Копирование MPI библиотеки

кафедра ЮНЕСКО по НИТ25 Запуск MPI программ mpirun.exe -np 2 -localonly project_MPI.exe

кафедра ЮНЕСКО по НИТ26 Параметры MPI программы size – количество процессоров rank – номер процессора comm – коммуникатор

кафедра ЮНЕСКО по НИТ27 Соответствие типов тип MPIтип языка Си MPI_CHARsinged char MPI_SHORTsinged short int MPI_INTsinged int MPI_LONGsinged long int MPI_UNSIGNED_CHARunsinged char MPI_UNSIGNED_SHORTunsinged short int MPI_UNSIGNEDunsinged int MPI_UNSIGNED_LONGunsinged long int MPI_FLOATfloat MPI_DOUBLEdouble MPI_LONG_DOUBLElong double MPI_BYTE MPI_PACKED

кафедра ЮНЕСКО по НИТ28 Обрамляющие функции: Integer ierror call MPI_Init (ierror) Integer ierror call MPI_Finalize (ierror) Функция завершения MPI программ MPI_Finalize Функция инициализации MPI программ MPI_Init

кафедра ЮНЕСКО по НИТ29 Обрамляющие функции: Integer comm, size, ierror call MPI_Comm_size (comm, size, ierror) Integer comm, rank, ierror call MPI_Comm_rank (comm, rank, ierror) Функция определения номера процессора MPI_Comm_rank Функция определения числа процессоров в области связи MPI_Comm_size

кафедра ЮНЕСКО по НИТ30 Обрамляющие функции: Пример программы #include int main( int argc, char *argv[ ] ){ int rank, size; MPI_Init( &argc, &argv ); MPI_Comm_rank( MPI_COMM_WORLD, &rank ); MPI_Comm_size( MPI_COMM_WORLD, &size ); printf( "Process %d of %d is alive! \n",rank,size ); MPI_Finalize(); return(0); }

кафедра ЮНЕСКО по НИТ31 Функции для передачи и приема данных: int MPI_Send (void* buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) int MPI_Recv (void* buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) Функция приема сообщений MPI_Recv Функция передачи сообщений MPI_Send

кафедра ЮНЕСКО по НИТ32 Функция передачи сообщений MPI_Send Входные параметры: int MPI_Send( void *sbuf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm ) sbuf адрес начала расположения пересылаемых данных count число пересылаемых элементов datatype тип посылаемых элементов dest номер процесса-получателя в группе, связанной с коммуникатором comm tag идентификатор сообщения comm коммуникатор области связи

кафедра ЮНЕСКО по НИТ33 Функция приема сообщений MPI_Recv Входные параметры: int MPI_Recv( void *rbuf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status ) count число пересылаемых элементов datatyp e тип посылаемых элементов source номер процесса-отправителя tag идентификатор сообщения comm коммуникатор области связи Выходные параметры: rbuf адрес начала расположения принимаемого сообщения status атрибуты принятого сообщений

кафедра ЮНЕСКО по НИТ34 Обрамляющие функции: Функция отсчета времени MPI_Wtime double MPI_Wtime (void) Функция отсчета времени MPI_Wtime

кафедра ЮНЕСКО по НИТ35 Задание Отладить программу, выдающую сообщение о номере процессора