- •Федеральное агенство связи Поволжская государственная академия телекоммуникаций и информатики
- •Введение
- •Реализация и настройка кластера интерфейса mpi в среде ms Windows 9x/nt/xp
- •Рекомендуемая литература
- •Лабораторная работа № 1 Компиляция программ, использующих интерфейс mpi
- •Подготовка к работе
- •Контрольные вопросы
- •3. Задание
- •4. Методические указания
- •4. Листинг программы
- •5. Примечания
- •Лабораторная работа № 2 Использование функции групповой рассылки данных
- •Подготовка к работе
- •Контрольные вопросы
- •3. Задание
- •4. Методические указания
- •5. Примечания
- •Лабораторная работа № 3 Вычисление числа π
- •Подготовка к работе
- •Контрольные вопросы
- •Задание
- •4. Методические указания
- •5. Пример выполнения
- •6. Примечания
- •Лабораторная работа № 4 Передача данных отдельным процессам
- •Задание
- •Методические указания
- •Алгоритм
- •Пример выполнения
- •Лабораторная работа № 5 Матричные вычисления
- •Контрольные вопросы
- •Приложение а
- •Приложение в Краткий справочник функций mpi
- •Сообщения «точка-точка»
- •Групповые сообщения
- •Типы пересылаемых данных
- •Аргументы
5. Пример выполнения
Процесс номер 2 запущен на компьютере: 'prog1.'
Процесс номер 0 запущен на компьютере: 'prog2.'
Процесс номер 3 запущен на компьютере: 'prog3.'
Процесс номер 1 запущен на компьютере: 'prog4.'
Введите количество интервалов (n): (0 для выхода) 1024
резульат: pi=3.1415927330626534, Расхождение с эталоном 0.0000000794728603
время работы 0.157488 секунд
Введите количество интервалов (n): (0 для выхода) 100000
резульат: pi=3.1415926535981167, Расхождение с эталоном 0.0000000000083236
время работы 0.011448 секунд
Введите количество интервалов (n): (0 для выхода) 1000000
резульат: pi=3.1415926535899033, Расхождение с эталоном 0.0000000000001101
время работы 0.100975 секунд
Введите количество интервалов (n): (0 для выхода) 10000000
резульат: pi=3.1415926535896856, Расхождение с эталоном 0.0000000000001075
время работы 1.004657 секунд
Введите количество интервалов (n): (0 для выхода) 100000000
резульат: pi=3.1415926535902168, Расхождение с эталоном 0.0000000000004237
время работы 9.993571 секунд
Введите количество интервалов (n): (0 для выхода) 0
6. Примечания
Для замера скорости расчета, следует завести переменную, со временем начала работы, например startwtime = MPI_Wtime();.Данная функция вернет количество прошедших секунд с 01.01.2971. После окончания расчетов, следует получить переменную endwtime = MPI_Wtime();. Разница endwtime-startwtime и будет временем выполнения расчетов в секундах.
У каждого процесса локальная переменная sum – своя, т.е. в ней разные данные. Поэтому складывать функцией MPI_Reduce() надо в другую переменную, например mypi.
Для того чтобы функция MPI_Reduce() складывала, следует указать в аргументе типа функции MPI_SUM.
С полным форматом данных функций можно ознакомится в приложении к данной методичке или на ресурсах, указанных в приложении.
Для выяснения расхождения можно использовать эталон:
double PI25DT = 3.141592653589793238462643; // эталон
Не забывайте использовать fflush(stdout) после printf().
Стандартная инициализация это:
MPI_Init(&argc,&argv); // инициализация параллельного интерфейса
MPI_Comm_size(MPI_COMM_WORLD,&numprocs); // получение количества процессов
MPI_Comm_rank(MPI_COMM_WORLD,&myid); // получение своего номера
MPI_Get_processor_name(processor_name,&namelen);// имя компьютера
Лабораторная работа № 4 Передача данных отдельным процессам
Подготовка к работе
Необходимо иметь в наличии кластер на базе MPI. Уметь программировать на языке C. Ознакомиться с функциями точечной отправки сообщений, используя интерфейс MPI, указанными в Приложении.
Контрольные вопросы
Может ли параллельная программа работать на гетерогенном кластере?
Что такое гетерогенный кластер?
Чем отличается параллельная программа (с интерфейсом MPI) от обычной программы?
Опишите способ расчета числа π, использованного в данной лабораторной работе.
Назначение функции MPI_ Reduce.
Назначение функции MPI_Wtime.
Почему число прериодов желательно задавать числу процессов?
Поясните ход программы по блок-схеме.
