- •Государственное образовательное учреждение
- •1 Параллельная обработка данных в вычислительных системах кластерного типа
- •1.1 Параллельная обработка данных
- •1.1.1 Основные определения
- •1.1.2 Два основных подхода к достижению параллельности
- •1.2 Модели и схемы параллелизма
- •1.2.1 Простейшая модель параллельного программирования (pram)
- •1.2.2 Простейшая классификация схем параллелизма
- •1.3 Существующие параллельные вычислительные средства класса mimd
- •1.4 Архитектура кластерных систем
- •1.5 Сетевое оборудование
- •1.5.1 Коммуникационная технология sci
- •1.5.2 Коммуникационная технология Myrinet
- •1.6 Системы программирования для кластеров
- •1.6.1 СтандартOpenMp
- •1.6.2 Стандарт mpi
- •1.6.3 Реализации mpi
- •1.7 Выводы по главе 1
- •2 Эффективность кластера и алгоритмы, используемые в параллельных и распределенных приложениях
- •2.1 Эффективность
- •2.2 Структура программы с двухточечным обменом данными между процессами
- •2.3 Алгоритмы
- •2.3.1 Вычисление частных сумм последовательности числовых значений
- •2.3.2 Умножение матрицы на вектор
- •2.3.3 Матричное умножение
- •2.3.4 Сортировка
- •2.3.5 Интегрирование
- •2.4 Выводы по главе 2
- •3 Практическая реализация системы кластерного типа
- •3.1 Создание кластера
- •3.2 Тестирование кластерной системы
- •3.3Выводы по главе 3
- •4 Руководство по эксплуатации кластерной системы
- •4.1 Руководство программиста
- •4.1.1 Среда разработки
- •4.1.2 Программный пакет wmpi 1.3
- •4.1.3 Состав пакетаWmpi1.3
- •4.1.4 Основные функцииMpi
- •4.2 Руководство пользователя
- •4.2.1 Построение программы
- •4.2.2 Запуск
- •4.3 Выводы по главе 4
- •Заключение
- •Список использованных источников
4.2 Руководство пользователя
4.2.1 Построение программы
Для создания консольных программ на языке С/С++ с использованием библиотеки WMPI 1.3 в VC++ 6.0 необходимо:
Создать проект Win32 Console Application
Добавить туда файл с программой на языке С/С++;
В главной программе подключить заголовочный файл Mpi.h (добавить строку #include "mpi.h");
В меню Project\Settings:
Выбрать вкладку C/C++, категорию Code generation и установить Use run-time library: Multithreaded DLL (см. рис. 4.1)
Рис. 4.1. Окно конфигурации проектаVC6.0
Выбрать вкладку C/C++, категорию Preprocessor и вписать в поле Additional Include Directories путь к папке с заголовочными файлами. Например D:\WMPI1.3\include (см. рис. 4.2)
Выбрать вкладку Link, категорию Input и вписать в поле Additional Library Path путь к папке с файлами библиотеки. Например D:\WMPI1.3\lib\console. В поле Object/library modules имя подключаемого файла библиотеки cvwmpi.lib . (см. рис. 4.3)
Рис. 4.2. Подключение заголовочных файлов
Рис. 4.3. Подключение библиотек
После этого вы можете cкомпилировать приложение и создать исполняемый файл.
Если все-таки не удается скомпилировать приложение, то обратите внимание – возможно у вас не получилось добавить необходимые библиотеки. Из-за этого, при компиляции будет выдаваться ошибка, что не найдены либо необходимые библиотеки, либо заголовочные файлы. Для устранения этой ошибки попробуйте еще раз добавить необходимые библиотеки или скопируйте библиотеки и заголовочные файлы в папку с вашим проектом.
4.2.2 Запуск
Первое что необходимо это запустить службы удалённого запуска процессов:
Для Windows 95/98 это …\WMPI1.3\system\daemon\verbose daemon.bat .
Для Windows NT/2000/XP следует сначала инсталлировать сервис, запустив файл install_service.bat из папки …\WMPI1.3\system\serviceNT\, а потом запустить start_service.bat для запуска сервиса. После завершения работы следует соответственно запустить stop_service.bat для остановки сервиса, и, если необходимо, remove_service.bat для удаления сервиса.
Перед запуском так же необходимо подготовить файл программной группы. Об этом чуть ниже.
Построенный EXE-файл запускается без каких-либо дополнительных программ.
Он требует для работы динамическую библиотеку CVWMPI.DLL (если программа консольная) или VWMPI.DLL (если она графическая). Соответственно, Вам требуется либо вписать каталог с DLL в переменную окружения PATH, либо скопировать DLL в директорию из которой загружается приложение.
Затем пользователь запускает exe-файл задачи на одном из процессоров кластера. При этом запускается процесс, называемый мастер процессом (big master), а этот процесс запускает с помощью службы удалённого запуска все остальные необходимые для работы программы процессы. Для этого он ищет файл программной группы, который должен находиться в той же директории что и exe-файл мастер процесса, и называться так же, как exe-файл мастер процесса, но с расширением “.pg”. Файл программной группы задаёт:
сетевые имена или IP-адреса машин, участвующих в программной группе;
количество процессов, запускаемых на каждой машине;
имя исполнимого файла, запускаемого на каждой машине.
# комментарий
local Количество_ветвей
Адрес_машины Количество_ветвей Имя_EXE_файла
Когда PG-файл читается, ветвь номер 0 уже создана (в запущенном EXE-файле в этот момент выполняется функция MPI_Init), таким образом, общее количество ветвей на 1 больше указываемого в PG-файле. То есть, чтобы запустить приложение из 4 ветвей на своей машине, надо написать в PG-файле:
local 3
Пример:
local 2
smallcomp 1 \\smallcomp\workdir\pi.exe
201.169.2.21 3 c:\workdir\MPI_pi.exe
Этот пример определяет 7 процессов:
1 – мастер процесс, который запускает пользователь;
ещё 2 процесса запускаются из того же exe-файла на той же машине;
1 процесс – pi.exe на машине smallcomp;
3 процесса – c:\workdir\MPI_pi.exe на машине 201.169.2.21;
Процессы, запускаемые на одной машине, обмениваются сообщениями через общую память, а процессы на разных машинах – по TCP/IP.
Чтобы получить подсказку по ключам запуска WMPI-приложения, запустите его с ключом -p4help.
Для запуска процессов на других компьютерах необходимо:
установить пакет WMPI из дистрибутива (при этом автоматически копируются необходимые библиотеки в системные каталоги);
скопировать исполняемый файл программы на другие компьютеры и библиотеки для него;
иметь полный доступ к папке, в которой находится исполняемый файл программы;
настроить pg файл на другие компьютеры;
Если возникают проблемы при создании процессов на других компьютерах в сети, то:
Проверьте, правильно ли написана программа. Для этого вы можете протестировать ее на одном компьютере с использованием только одного процесса (local 0) и с использованием нескольких процессов (local n), где n > 0.
Проверьте Pg файл на наличие ошибок;
Проверьте сетевое соединение с этими компьютерами;
Закройте все брандмауэры и файерволы на компьютерах;
Скопируйте не только исполняемый файл, а полностью папку с проектом, исполняемым фалом, и остальными файлами проекта в то же место на другом компьютере;
Закройте серверы запущенные на компьютерах (так, в W98 подключение к серверу раздачи имен DNS сильно влияет на скорость соединения при помощи MPI – его рекомендуется отключить)
Переустановите пакет WMPI из дистрибутива.