1 / 35

Параллельное программирование

Параллельное программирование. MPI – massage passing interface. Содержание. Учебный кластер ОС Red Hat Linux 9.0 MPI (Message Passing Interface) – Интерфейс Передачи Сообщений Установка MPIch для Windows Компиляция и запуск Обрамляющие функции MPI Пример параллельной программы.

zeno
Download Presentation

Параллельное программирование

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  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 2.4.42-6 on an i586 Login: stud stud1234 Password: Last login: Fri Sep 3 10:46:00 from unesco1.kemsu.ru [stud@unesco9 stud]$ mc -c кафедра ЮНЕСКО по НИТ

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

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

  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, 1998. (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. 1999. AndUsing MPI-2:Advanced Features of theMessage-Passing Interface. MIT Press, Aug. 1999. (or both in one volume, 725 pages, ISBN 026257134X) кафедра ЮНЕСКО по НИТ

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

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

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

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

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

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

  15. MPIch для Windows • Инсталляционный пакет mpich.nt.1.2.5.exe • Версия MPICH 2 mpich2-1.1.1p1-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. Соответствие типов кафедра ЮНЕСКО по НИТ

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

  29. Обрамляющие функции: Функция определения числа процессоров в области связи MPI_Comm_size Функция определения номера процессора MPI_Comm_rank кафедра ЮНЕСКО по НИТ

  30. Обрамляющие функции:Пример программы кафедра ЮНЕСКО по НИТ

  31. Функции для передачи и приема данных: Функция передачи сообщений MPI_Send Функция приема сообщений MPI_Recv кафедра ЮНЕСКО по НИТ

  32. Функция передачи сообщений MPI_Send • Входные параметры: кафедра ЮНЕСКО по НИТ

  33. Функция приема сообщений MPI_Recv • Входные параметры: • Выходные параметры: кафедра ЮНЕСКО по НИТ

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

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

More Related