Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВС13 / ЛабРаб / Диплом.doc
Скачиваний:
36
Добавлен:
17.03.2015
Размер:
1.48 Mб
Скачать

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 из дистрибутива.