Как установить mpi
Перейти к содержимому

Как установить mpi

Установка и настройка MPI для Windows

В качестве реализации стандарта MPI мы выбрали среду MPICH2, доступную по ссылке http://www-unix.mcs.anl.gov/mpi/mpich/downloads/mpich2-1.0.5p2-win32-ia32.msi , так как данная версия имеет понятный пользовательский интерфейс и проста в эксплуатации и установке. Сайт проекта http://www-unix.mcs.anl.gov/mpi/mpich/index.htm помимо дистрибутивов MPICH для различных платформ содержит много полезной информации по MPI.

Дистрибутив MPICH2 имеет размер около 8 мегабайт и представляет собой готовый к установке пакет. Запустите скачанный файл mpich2-1.0.5p2-win32-ia32.msi, после чего увидите следующее стандартное окно мастера установки программ Windows.

После лицензионных соглашений (установите флажок I Agree) Вам будет предложено ввести пароль на доступ к менеджеру процессов MPI. По умолчанию это фраза behappy, можете не менять ее. Отметим, что для установки MPICH2 необходимо иметь права администратора.

После ввода пароля выберете каталог, в который будет установлено программное обеспечение, по умолчанию C:\Program Files\MPICH2. Рекомендуем установить флажок Install for: Everyone

Нажмите Next и процесс установки начнется. После его завершения, в случае, если Вы работаете в Windows XP, скорее всего появится предупреждение о блокировании программы smpd операционной системой. Нажмите кнопку Разблокировать. Программа установки создаст в меню Программы раздел MPICH2 с несколькими ярлыками, среди которых нас будут интересовать сейчас wmpiexec и wmpiregister.

Настройка MPIEXEC

Для начала работы с MPICH необходимо зарегистрировать некоторого пользователя. Это должен быть зарегистрированный в системе пользователь с непустым паролем, желательно имеющий права администратора. В поле account введите имя этого пользователя, в поле password – его пароль и нажмите кнопку Register. Именно от имени этого пользователя будут запускаться на данном компьютере Ваши MPI программы.

После регистрации пользователя, скорее всего, появится уведомление системы безопасности о блокировании программы mpiexec. Если это произойдет, нажмите кнопку Разблокировать.

Вторая программа – wmpiexec – это сам загрузчик MPI программ. Его интерфейс представлен ниже. Если поставить галочку в поле more options, откроется окно дополнительных настроек запуска.

В поле Application необходимо ввести путь к исполняемому файлу Вашей MPI программы. Поле Number of processes содержит количество процессов, которое будет создано для запуска Вашей программы. Кнопка Execute запускает программу на выполнение. В текстовое поле ниже кнопки Show Command (по нажатию которой будет показан полный формат команды, запускающей MPI, мо всеми использованными параметрами) производится вывод в ходе выполнения программ.

Опишем значения некоторых дополнительных параметров. В поле working directory заносится путь к рабочей директории программы – той директории, которая будет считаться текущей для программы (обычно этот параметр не используется, и рабочей считается директория, в которой назодится исполняемый файл программы). В поле hosts вносятся имена компьютеров кластера, разделенные пробелом. Данный параметр играет роль машинного файла MPI.

Если поставить галочку в поле produce clog2 file, то после завершения программы по нажатию кнопки Jumpshot будет доступен график хода выполнения программы, на котором отображается ход выполнения, команды пересылок и время их выполнения, время простоя компьютеров и прочая полезная для отладки программ информация.

В папке C:\Program Files\MPICH2\examples находится уже скомпилированный пример программы с использованием MPI, вычисляющей значение числа Пи. С ее помощью можно протестировать настройки среды MPICH2.

Настройка проекта в среде разработки MS Visual Studio 2005

Создадим проект Win32 Console Application с именем mpi_prog, используя Visual C++

Чтобы создать проект, нажмите кнопку OK и, далее, в появившемся новом окне кнопку Finish. Будет создан стандартный шаблон программы на языке C++ со следующим содержанием

В главном меню во вкладке Project выберете пункт Properties

После чего появится окно настроек проекта следующего вида

Необходимо сделать следующие настройки проекта:

В пункте C/C++ -> General в поле Additional include directories ввести путь к папке C:\Program Files\MPICH2\include (здесь и ниже будем считать, что MPICH2 установлен в директорию по умолчанию C:\Program Files\MPICH2)

В пункте C/C++ -> Precompiled Headers в поле Create/Use Precompiled Headers установить значение Not Using Precompiled Headers

В пункте C/C++ -> Advanced в поле Compile As установить значение Compile as C Code (/TC)

В пункте Linker->General в поле Additional Library Directories установить значение C:/Program Files/MPICH2/lib

В пункте Linker->Input в поле Additional Dependencies добавить mpi.lib

Настройка проекта завершена. Аналогичным образом могут быть настроены все прочие среды разработки. После компиляции, программу необходимо запустить через MPIEXEC уже описанным способом.

Замечания.

Отметим, что путь к исполняемому файлу MPI программы не должен содержать русских букв. Также, в случае, если запуск производится на нескольких компьютерах, исполняемый файл должен находиться либо на открытом для записи сетевом диске (в общедоступной папке), либо уже заранее должен быть распространен по всем компьютерам в некоторую директорию с одинаковым на всех компьютерах именем и правами доступа.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Отладка

Отладка MPI программ в среде Microsoft Visual Studio 2005

Одним из важнейших этапов разработки программ является процесс поиска и устранения ошибок, неизбежно возникающих при написании сложных программных систем. Для того, чтобы упростить и во многом автоматизировать этот процесс, необходимо использовать специальные программы, называемые отладчиками. Несмотря на то, что сложность написания параллельных программ часто существенно превосходит сложность написания последовательных аналогов, длительное время наблюдалась нехватка качественных отладчиков для параллельных программ, разрабатываемых с использованием технологии MPI. Интегрированная среда разработки Microsoft Visual Studio 2005 имеет в своем составе отладчик, предоставляющий широкие возможности для поиска и устранения ошибок, в том числе и для отладки MPI приложений.

Основные понятия и методы отладки программ в MS VS 2005

Отладка (поиск и устранение ошибок) – один из важнейших этапов в написании программных систем, часто занимающий у разработчика больше времени, чем написание отлаживаемого кода. Для того, чтобы максимально снизить время, затрачиваемое на отладку, необходимо придерживаться рекомендаций крупнейших производителей программного обеспечения и ведущих исследователей в области компьютерных наук еще на этапах проектирования и программирования. Например, подобные рекомендации обычно требуют подготавливать автоматические тесты для всех участков разрабатываемой системы и контролировать корректность значений переменных с использованием макроса ASSERT . Но и сама процедура отладки должна проводиться эффективно, в соответствии с рекомендациями ведущих экспертов в этой области. Огромное значение здесь имеет правильный выбор отладчика – специальной программы, существенно упрощающий процесс поиска ошибок, позволяющий выполнять программу в пошаговом режиме, отслеживать значения переменных, устанавливать точки остановки и т.д. Важнейшими критериями выбора отладчика являются богатство предоставляемого программисту инструментария и удобство использования. Отладчик Microsoft Visual Studio 2005 удачно сочетает в себе оба указанных качества.

Наиболее частым приемом отладки является приостановка работы программы в заданный момент времени и анализ значений ее переменных. Момент, в который программа будет приостановлена, определяется выбором, так называемых, точек остановки, то есть указанием строк кода исходной программы, по достижении которых выполнение останавливается до получения соответствующей команды пользователя. Помимо простого указания строк кода, где произойдет приостановка, возможно также указание условий, которые должны при этом выполняться. Например, можно дать указание приостановить выполнение программы на заданной строке только в том случае, если значение некоторой переменной программы превысило заданную константу. Правильный выбор момента остановки имеет решающее значение для успеха отладки. Так, зачастую анализ значений переменных непосредственно перед моментом падения программы дает достаточно информации для определения причин некорректной работы.

Другим исключительно полезным инструментом является возможность выполнять программу в пошаговом режиме – по одной строке исходного кода отлаживаемой программы при каждом нажатии пользователем кнопки F10 . При этом пользователь также имеет возможность заходить внутрь функции, вызов которой происходит на данной строке, или просто переходить к следующей строке. Таким образом, пользователь всегда находится на том уровне детализации, который ему необходим.

Для того, чтобы в полной мере оценить преимущества отладчика, необходимо предварительно скомпилировать программу в специальной отладочной конфигурации (чаще всего такая конфигурация называется “ Debug ”), особенностью которой является добавление в генерируемые бинарные файлы специальной отладочной информации, которая позволяет видеть при отладке исходный код выполняемый программы на языке высокого уровня.

К числу других часто используемых инструментов отладки Microsoft Visual Studio 2005 относятся:

  • Окно “ Call Stack ” — окно показывает текущий стек вызова функций и позволяет переключать контекст на каждую из функций стека (при переключении контекста программист получает доступ к значениям локальных переменных функции),
  • Окно “ Autos ” — окно показывает значения переменных, используемых на текущей и на предыдущих строках кода. Кроме того, это окно может показывать значения, возвращаемые вызываемыми функциями. Список отображаемых значений определяется средой автоматически,
  • Окно “ Watch ” — окно позволяет отслеживать значения тех переменных, которых нет в окне “ Autos ”. Список отслеживаемых переменных определяется пользователем,
  • Окно “ Threads ” — окно позволяет переключаться между различными потоками команд процесса,
  • Окно “ Processes ” — окно позволяет переключаться между различными отлаживаемыми процессами (например, в случае отладки MPI – программы).

Три подхода к отладке MPI программ

Отладчик параллельных MPI программ в Microsoft Visual Studio появился впервые в версии Visual Studio 2005. Однако компиляцию и отладку MPI программ можно производить и в более ранних версиях среды разработки. Обычными приемами в случае отсутствия истинной поддержки MPI со стороны отладчика являются следующие:

  • Использование текстовых сообщений , выводимых в файл или на экран, со значениями интересуемых переменных и/или информацией о том, какой именно участок программы выполняется. Такой подход часто называют “ printf отладкой ” (“ printf debugging ”), так как чаще всего для вывода сообщений на консольный экран используется функция “ printf ”. Данный подход хорош тем, что он не требует от программиста специальных навыков работы с каким-либо отладчиком, и при последовательном применении позволяет найти ошибку. Однако для того, чтобы получить значение очередной переменной, приходится каждый раз писать новый код для вывода сообщений, перекомпилировать программу и производить новый запуск. Это занимает много времени. Кроме того, добавление в текст программы нового кода может приводить к временному исчезновению проявлений некоторых ошибок,
  • Использование последовательного отладчика . Так как MPI задача состоит из нескольких взаимодействующих процессов, то для отладки можно запустить несколько копий последовательного отладчика, присоединив каждую из них к определенному процессу MPI задания. Данный подход позволяет в некоторых случаях более эффективно производить отладку, чем при использовании текстовых сообщений. Главным недостатком подхода является необходимость ручного выполнения многих однотипных действий. Представьте, например, необходимость приостановки 32 процессов MPI задания: в случае использования последовательного отладчика придется переключиться между 32 процессами отладчика и вручную дать команду приостановки.

Параллельный отладчик Microsoft Visual Studio 2005 лишен указанных недостатков и позволяет существенно экономить время на отладку. Это достигается за счет того, что среда рассматривает все процессы одной MPI задачи как единую параллельно выполняемую программу, максимально приближая отладку к отладке последовательных программ. К числу особенностей параллельной отладки относятся уже рассмотренное окно “ Processes ”, позволяющего переключаться между параллельными процессами, а также дополнительные настройки среды.

Включение и настройка MPI отладчика в MS VS 2005

Отладчик Microsoft Visual Studio 2005 наилучшим образом подходит для работы с MS MPI – реализации стандарта MPI 2 от Microsoft. Поэтому, если Вы хотите в полной мере оценить преимущества отладчика Visual Studio, то необходимо установить последнюю версию Microsoft Compute Cluster Pack SDK.

Для того чтобы получить возможность отлаживать параллельные MPI программы, необходимо соответствующим образом настроить Microsoft Visual Studio 2005 : выберите пункт меню “ Project-> project Properties… ” и затем в открывшемся окне настроек проекта выберите пункт “ Configuration Properties-> Debugging ”. Введите следующие настройки:

  • В поле “ Debugger to launch ” выберите “ MPI Cluster Debugger ”,
  • В поле “ MPIRun Command ” введите “ mpiexec. exe ” – имя программы, используемой для запуска параллельной MPI программы,
  • В поле “ MPIRun Argument ” введите аргументы программы “ mpiexec. exe ”. Например, введите “ — np <число процессов designtimesp=14365 designtimesp=14534 designtimesp=14654 designtimesp=14808 designtimesp=14954 designtimesp=15342 designtimesp=15466 designtimesp=15780 designtimesp=16557> ” для указания числа процессов, которые будут открыты,
  • В поле “ Application Command ” введите путь до исполняемого файла программы,
  • В поле “ Application Argument ” введите аргументы командной строки запускаемой программы,
  • В поле “ MPIShim Location ” введите путь до “ mpishim. exe ” – специальной программы, поставляемой вместе с Microsoft Visual Studio 2005, используемой для отладки удаленных программ,
  • Нажмите “ OK ” для сохранения внесенных изменений.

Процесс отладки MPI программ в среде MS VS 2005

Отладка параллельных MPI программ имеет ряд особенностей, обусловленных природой программирования для кластерных систем. Напомним, что в параллельной программе над решением задачи работают одновременно несколько процессов, каждый из которых, в свою очередь, может иметь несколько потоков команд. Это обстоятельство существенно усложняет отладку, так как помимо ошибок, типичных для последовательного программирования, появляются ошибки, совершаемые только при разработке параллельных программ. К числу таких ошибок можно отнести, например, сложно контролируемую ситуацию гонки процессов , когда процессы параллельной программы взаимодействуют между собой без выполнения каких-либо синхронизирующих действий. В этом случае, в зависимости от состояния вычислительной системы, последовательность выполняемых действий может различаться от запуска к запуску параллельной программы. Как результат, при наличии гонки процессов сложным становится применение одного из основных принципов отладки – проверка работоспособности при помощи тестов (однократное выполнение теста для параллельной программы может не выявить ситуации гонки процессов).

Однако инструменты и приемы, используемые в Microsoft Visual Studio 2005 для отладки как последовательных, так и параллельных программ, схожи, поэтому, если Вы имеете хороший опыт отладки последовательных программ, то и отладка параллельных программ не покажется Вам слишком сложной.

На практике познакомиться с процессом отладки MPI программы можно в лабораторной работе «Отладка параллельных MPI программ в среде Microsoft Visual Studio 2005 ».

Обзор наиболее типичных ошибок при написании MPI программ

Все ошибки, которые встречаются при последовательном программировании, характерны также и для параллельного программирования. Однако кроме них есть ряд специфических типов ошибок, обусловленных наличием в MPI задаче нескольких взаимодействующих процессов. Дополнительные сложности в разработке параллельных программ обуславливают повышенные требования к квалификации программистов, реализующих параллельные версии алгоритмов. И хотя перечислить все типы ошибок, которые могут возникнуть при программировании с использованием технологии MPI, крайне затруднительно, дадим краткую характеристику ряду наиболее характерных ошибок, преследующих начинающих разработчиков. К числу наиболее типичных ошибок при параллельном программировании с использованием технологии MPI следует отнести:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *