Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка для MPI.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
506.88 Кб
Скачать

Рекомендуемая литература

  1. Немнюгин С.А., Стесик О.Л. Параллельное программирование для многопроцессорных вычислительных систем. – Спю.: БХВ-Петербург, 2002.

2. А. С. Антонов «Введение в параллельные вычисления»

http://parallel.ru/tech/tech_dev/antonov.pdf

3. А. С. Антонов «Практический курс MPI»

http://parallel.ru/tech/tech_dev/MPIcourse/

Русскоязычная страница МРI

http://parallel.ru/tech/tech_dev/mpi.html

Стандарт MPI-1.1 (на английском)

http://parallel.ru/docs/Parallel/mpi1.1/mpi-report.html

4. Воеводин Вл.В. Лекция по MPI

http://parallel.ru/vvv/mpi.html

MPICH official page

http.//www-unix.mcs.anl.gov/mpi/mpich/

MPI:The Complete Reference

http://www.netlib.org/utk/papers/mpi-book/mpi-book/html

Лабораторная работа № 1 Компиляция программ, использующих интерфейс mpi

  1. Подготовка к работе

Необходимо иметь в наличие работающий кластер на базе MPICH. Так же необходимо иметь пакет разработки MS Visual C++ 6.0 или более новую версию.

  1. Контрольные вопросы

  1. Что должно выполняться на компьютере, чтобы он мог быть хостом кластера?

  2. Чем является хост кластера?

  3. Как происходит настрофка хостов кластера?

  4. Поясните назначение каждой MPI функции в программе Hello world.

  5. Поясните ход работы данной программы.

  6. Зачем данной программе требуется библиотека mpich.lib и заголовок mpi.h ?

  7. Объясните, чем технологически отличается данная программа, от любой другой не MPI программы.

  8. Чем отличается Release версия от Debug и зачем нужно такое разделение?

  9. Что предоставляет SDK из поставки MPICH?

3. Задание

Скомпилировать программу "Hello world" с использованием MPI интерфейса

Программа должна Вывести "Hello world" от каждого процесса. Так же надо будет вывести номер процесса и имя компьютера, на котором этот процесс запущен.

Для этого требуется написать программу с использованием следующих функций MPI:

MPI_Init

Для запуска MPI интерфейса

MPI_Comm_size

Для получения количества процессов в кластере

MPI_Comm_rank

Для получения номера процесса в кластере

MPI_Get_processor_name

Для получения имени компьютера, на котором находится процесс

MPI_Finalize

Для завершения работы с MPI

Для этого необходимо скомпилировать ниже приведенный листинг программы в пакете MS Visual C++

4. Методические указания

Для компиляции данной программы, мы будем использовать Microsoft Visual С++ 6.0.

Для начала следует создать новый проект.

FileNew… Во вкладке Projects выбирается Win32 console application. После чего пишется название проекта (hello), и путь к файлам.

Выбирается Empty Project.

В проект требуется добавить пустой файл. Нажмите FileNew… выбираем C++ Source File и даем ему имя “hello”.

После этого – переписываем листинг программы в данный файл.

Теперь следует установить пути до файлов mpi.h и до mpich.lib

Заходим в свойства проекта (Alt+F7), выбираем вкладку C/C++, категорию Preprocessor, и в строку Additionals include directories, вводим путь до include файлов. Обычно путь выглядит как %PROGRAMFILES%\mpich\sdk\include\.

Переходим во вкладку Link, в строке Object/library modules необходимо ввести имя библиотеки mpich.lib. В этой библиотеке хранятся все функции вызовов MPI интерфейса.

После, в этом же окне, переходим к вкладке Input. В строке Additional library path: вводим путь к директории с файлами *.lib библиотеки MPICH. Они находятся по тому же пути что и заголовки: %PROGRAMFILES%\mpich\sdk\lib

Далее – запускаем компиляцию проекта. Для этого нажимаем F7. В результате, в окошке Build должно быть примерно следующее:

--------------------Configuration: hello - Win32 Debug--------------------

Compiling...

hello.cpp

Linking...

hello.exe - 0 error(s), 0 warning(s)

Если у вас то же самое – значит программа скомпилирована успешно.

Скопируем файл hello.exe из папки Debug в папке вашего проекта, и скопируем его в общую папку для параллельных программ.

Запускаем данную программу – согласно с указаниями, данными в первой л/р.

Настройте и скомпилируйте Release вариант программы. Данный релиз не должен содержать никакой отладочной информации, а так же должен быть максимально оптимизирован