
- •Лабораторная работа №1 Принципы работы mpi в операционной системе Windows
- •Краткая теория
- •Принципы работы mpich
- •Запуск mpi-программ
- •Вопросы для самоконтроля
- •Индивидуальные задания
- •Лабораторная работа №2 Пример работы mpi-программы
- •Краткая теория
- •Создание mpi-программы в Visual Studio
- •Исходный код примера 2.1
- •Вопросы для самоконтроля
- •Виртуальные топологии
- •Функции создания декартовых топологий
- •Вопросы
- •Индивидуальные задания
- •Лабораторная работа №4 Основные функции mpi (продолжение)
- •Теория.
- •Вопросы для самоконтроля.
- •Индивидуальные задания
- •Лабораторная работа №5 Написание mpi-программы
- •Индивидуальные задания
Вопросы для самоконтроля
1 – Что из себя представляет MPI-программа?
2 – В чем особенности программы MPICH2?
3 – Принципы работы MPICH2.
4 – Компоненты программы MPICH2.
5 – Запуск MPI-программы.
6 – Запуск MPI-программы с использованием Wmpiexec.exe.
7 – перечислите поля, используемые в интерфейсе программы
Wmpiexec.exe, и выполняемые в них команды.
Индивидуальные задания
Для вариантов 1-5:
Протестировать MPI-приложение по адресу C:\Program Files\MPICH2\examples\cpi.exe.
В программе Wmpiexec указать число процессов i (номер варианта), и задать число интервалов 1350*i.
Для вариантов 6-10:
Протестировать MPI-приложение по адресу C:\Program Files\MPICH2\examples\vittua.exe.
В программе Wmpiexec указать число процессов i (номер варианта), и задать число интервалов 750*i.
Для вариантов 11-15:
Протестировать MPI-приложение по адресу C:\Program Files\MPICH2\examples\muna.exe.
В программе Wmpiexec указать число процессов i (номер варианта), и задать число интервалов 1700*i.
Лабораторная работа №2 Пример работы mpi-программы
Цель работы: Изучить принципы работы программы MPICH2. Сконфигурировать Microsoft Visual Studio для работы MPICH2. Протестировать MPI-приложение.
Краткая теория
К пакету MPICH2 прилагается образец MPI-программы: C:\Program Files\MPICH2\examples\cpi.exe (исходный код см. ниже). Это простая программа, приближённо вычисляющая значение числа Пи путём численного вычисления следующего интеграла:
|
Вначале запустим один, два, и четыре процесса на «головном» компьютере. Чтобы MPICH2 не распределял запускаемые процессы между имеющимися узлами, отключим работу с сетью; для этого существует ключ командной строки -localonly. При его добавлении менеджер процессов не используется. Это очень полезно, если по каким-либо причинам MPICH2 не удаётся настроить. Введите этот ключ в поле «extra mpiexec options».
В поле «Application» введите путь к программе cpi.exe. Так как программа запускается на одном компьютере, путь можно вводить локальный.
«Number of processes» введите равным 1, и нажмите кнопку «Execute». Программа запустится и спросит число интервалов для численного интегрирования. Введите 100000000, и нажмите Ctrl+Enter. Программа посчитает число Пи, и выведет время, затраченное на вычисление. Проведите вычисления со 100 миллионами интервалов ещё несколько раз, чтобы определить минимальное время. После этого введите 0, и нажмите Ctrl+Enter. Программа завершится.
Получено следующее время вычисления на одном компьютере: 1 процесс — 1.424 секунды, 2 процесса — 0.7801 секунды, 4 процесса — 0.7766 секунды. Видно, что два процесса выполнили вычисления почти в 2 раза быстрее, чем один процесс, в то время как использование 4-х процессов не дало дальнейшего выигрыша в скорости.
Теперь запустим MPI-программу на двух компьютерах. Для этого скопируйте программу cpi.exe на общий сетевой диск (например \\192.168.1.4\MPI\). Убедитесь, что программа видна со всех компьютеров по одному и тому же сетевом адресу.
Теперь самое главное. Так как экземпляры MPI-программы работают и обмениваются данными по сети независимо от менеджера процессов, их тоже нужно внести в список исключений брандмауэра Microsoft Windows. Добавьте cpi.exe (с сетевого ресурса) в список исключений брандмауэра на всех компьютерах сети.
Укажите сетевой адрес программы cpi.exe (например \\192.168.1.4\MPI\cpi.exe) в поле «Application» программы Wmpiexec. Выберите число процессов и нажмите кнопку Execute.
Получено следующее время вычисления на двух компьютерах: 1 процесс — 1.424 секунды, 2 процесса — 1.023 секунды, 4 процесса — 0.5714 секунды. На этот раз 4 процесса дали выигрыш в скорости по сравнению с двумя процессами.