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

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



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

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

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

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

Кафедра ЮНЕСКО по НИТ3 MPI – message passing interface (интерфейс передачи сообщений) MPI – стандарт на программный инструментарий для обеспечения связи между ветвями параллельного приложения. mpich – одна из самых распространённых реализаций стандарта MPI. Это библиотека функций, обеспечивающая взаимодействие параллельных процессов с помощью механизма передачи сообщений. hp?s=downloadshttp:// hp?s=downloads - отсюда можно скачать mpich

Кафедра ЮНЕСКО по НИТ4 История создания MPI MPI: A Message-Passing Interface Standard (1.1, June 12, 1995) MPI-2: Extensions to the Message-Passing Interface (July18,1997) MPI Standard: 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)

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

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

Кафедра ЮНЕСКО по НИТ7 Учебный кластер кафедры ЮНЕСКО по НИТ Состоит из 3 однородных ПК Intel Core 2 Duo E6550 – 2.33 GHz RAM – 2 Gb HDD – 80 Gb Сетевая среда – Ethernet 100 Mb/s ОС – CentOS 5.6 Компилятор – gcc (GNU compiler collection) Коммуникационная библиотека – mpich2

Работа с учебным кластером. Программа Putty Кафедра ЮНЕСКО по НИТ8 hpchead.kemsu.ru

Кафедра ЮНЕСКО по НИТ9 Работа с учебным кластером. Авторизация Login: stud Password: stud1234

Кафедра ЮНЕСКО по НИТ10 Командная строка CentOS. Вызов Midnight Commander

Изменение кодировки на UTF-8 Кафедра ЮНЕСКО по НИТ11

Кафедра ЮНЕСКО по НИТ12 Вид Midnight Commander в кодировке UTF-8 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

Некоторые команды Linux $man touch – справка по команде «touch» $touch newfile - создание пустого файла $mv /home/stud/testfile /tmp/file - перемещение файла testfile и переименование в file $cp /home/stud/testfile /tmp/file - копирование файла testfile и переименование в file Кафедра ЮНЕСКО по НИТ13

Midnight Commander F3 – просмотр файла F4 – редактирование F5 – копирование файла F6 – перемещение файла F7 – создание новой директории Кафедра ЮНЕСКО по НИТ14 stud]$ gcc test.c –o test.out stud]$./test.out Компиляция и запуск C-программ

Кафедра ЮНЕСКО по НИТ15 Обрамляющие функции: int MPI_Init (int *argc, char **argv) int MPI_Finalize (void) Функция завершения MPI программ MPI_Finalize Функция инициализации MPI программ MPI_Init

Кафедра ЮНЕСКО по НИТ16 Обрамляющие функции: int MPI_Comm_size (MPI_Comm comm, int *size) int MPI_Comm_rank (MPI_Comm comm, int *rank) Функция определения номера процессора MPI_Comm_rank Функция определения числа процессоров в области связи MPI_Comm_size Comm – коммуникатор. Идентификатор группы запущенных программой параллельных процессов, которые могут обмениваться между собой сообщениями. Как получатель, так и отправитель должны принадлежать указанной группе. Все запущенные процессы принадлежат группе с коммуникатором MPI_COMM_WORLD.

Кафедра ЮНЕСКО по НИТ17 int MPI_Get_processor_name( char *name, int *resultlen) Функция определения имени вычислительного узла, на котором запущен данный процесс MPI_Get_processor_name out: name – имя узла out: resultlen – длина массива name

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

Кафедра ЮНЕСКО по НИТ19 Запуск и компиляция MPI- программ stud]$ mpicc test.c mpirun –np 5 –f /home/stud/machines a.out mpicxx second.cpp./run.sh 5 a.out mpicc test.c –o test.out

Кафедра ЮНЕСКО по НИТ20 Задание 1 Отладить и запустить MPI-программу, выдающую сообщение: о номере процесса; об имени узла, на котором запущен каждый из процессов; об общем количестве процессов.

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

Кафедра ЮНЕСКО по НИТ22 Задание 2 Создать MPI-программу, которая: 1) подсчитывает для каждого процесса сумму: 0+1+…+rank*10000, где rank – номер MPI-процесса в коммуникаторе MPI_COMM_WORLD 2) для каждого процесса выводит время, которое было затрачено на суммирование.