Магистр ДонНТУ Алтынпара Евгений Олегович

Алтынпара Евгений Олегович
Факультет: Вычислительной техники и информатики
Специальность: Программное обеспечение автоматизированных систем
Тема индивидуального задания: Создание и настройка проекта для кластера Microsoft Compute Cluster Server 2003 с использованием библиотеки OpenCV в Microsoft Visual Studio 2008 с возможностью отладки на локальном компьютере.

Создание и настройка проекта для кластера Microsoft Compute Cluster Server 2003 с использованием библиотеки OpenCV в Microsoft Visual Studio 2008 с возможностью отладки на локальном компьютере.
Описание элементов системы:

При разработке программного обеспечения часто возникает проблема в настройке среды программирования. Во время написания магистерской работы и прохождения курса по параллельному программированию я обратил внимание, что для большинства начинающих программистов, довольно тяжело сразу настроить систему для программирования на кластере Microsoft Compute Cluster Server 2003 (по большей части это связанно с небольшим опытом юных специалистов). Продолжая данную тему, хочу еще более расширить настройку системы, включив библиотеку компьютерного зрения OpenCV. На основании такой полностью настроенной для разработки среды становится возможным создавать параллельные приложения по обработке видеоизображений на кластере Microsoft Compute Cluster Server 2003. Поговорим обо всех элементах более подробно.

Кластер (в информационных технологиях) — группа серверов (программных или аппаратных), объединённых логически, способных обрабатывать идентичные запросы и использующихся как единый ресурс. Чаще всего серверы группируются посредством локальной сети.

Группа серверов обладает большей надежностью и большей производительностью, чем один сервер.

Windows Compute Cluster Server 2003 — это кластер серверов, который включает один ведущий узел и один или несколько вычислительных узлов. Ведущий узел контролирует доступ ко всем ресурсам кластера, выступает посредником при получении этого доступа и является единственной точкой управления, развертывания и планирования заданий для вычислительного кластера. Windows Compute Cluster Server 2003 использует существующую корпоративную инфра-структуру Active Directory для обеспечения безопасности, управления учетными записями и общего управления операциями с помощью таких средств, как Microsoft Operations Manager 2005 и Microsoft Systems Management Server 2003.

Установка Windows Compute Cluster Server 2003 включает установку операционной системы на ведущем узле, присоединение его к существующему домену Active Directory и установку пакета Compute Cluster Pack. После этого, если планируется автоматическое развертывание вычислительных узлов с помощью служб RIS, в рамках выполнения списка поручений устанав-ливаются и настраиваются службы RIS.

После установки пакета Compute Cluster Pack отображается список поручений, т. е. действий, необходимых для окончательной настройки вычислительного кластера, включая определение топологии сети, настройку служб RIS с помощью соответствующего мастера, добавление вычис-лительных узлов в состав кластера, а также настройку пользователей и администраторов кластера.

Встроенным средством программирования на MS CCS кластере является MS Message Passing Interface (MPI) — один из стандартов разработки приложений HPC.

Для обработки видеоизображений в разрабатываемой программной среде используется библиотека OpenCV. Это библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения.

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

Настройка среды разработки:
Установка Microsoft Compute Cluster Pack SDK [1]

Для компиляции параллельных программ, работающих в среде MS MPI, необходимо установить SDK (Software Development Kit) – набор интерфейсов и библиотек для вызова MPI-функций:

  1. Откройте директорию со скачанной версией SDK (описание процедуры скачивания можно найти в лабораторной работе “Установка Microsoft Compute Cluster Server 2003”) и запустите программу установки, соответствующую Вашему процессору (32-битная или 64-битная версия)
  2. Внимательно прочитайте лицензионное соглашение. Выберите пункт "I accept the terms in the license agreement" в случае согласия с лицензионным соглашением об использовании системы CCS 2003 и нажмите кнопку "Next"
  3. Выберите директорию, в которую будет установлен SDK. Для изменения стандартной директории нажмите кнопку "Change". Нажмите кнопку "Next"
  4. В открывшемся окне нажмите кнопку “Install” для начала установки SDK
  5. По окончании копирования необходимых файлов нажмите кнопку "Finish"

Настройка интегрированной среды разработки Microsoft Visual Studio 2008 [2]

Для того, чтобы скомпилировать Вашу программу для использования в среде MS MPI, необходимо изменить следующие настройки проекта по умолчанию в Microsoft Visual Studio 2008:

  1. Путь до заголовочных файлов объявлений MPI. Выберите пункт меню Project->Project Properties. В пункте Configuration Properties->C++->General->Additional Include Directories введите путь до заголовочных файлов MS MPI: <Директория установки CCS SDK>\Include
  2. Библиотечный файл с реализацией функций MPI. Выберите пункт меню Project->Project Properties. В пункте Configuration Properties->C++->Linker->Input->Additional Dependencies введите название библиотечного файла msmpi.lib
  3. Путь до библиотечного файла msmpi.lib. Выберите пункт меню Project->Project Properties. В пункте Configuration Properties->C++->Linker->General->Additional Library Directories введите путь до библиотечного файла msmpi.lib: <Директория установки CCS SDK>\Lib\i386 или <Директория установки CCS SDK>\Lib\AMD64 в зависимости от используемой Вами архитектуры процессоров.

Настройка Microsoft Visual Studio 2008 для локального запуска параллельной MPI программы в режиме отладки

Для того чтобы получить возможность отлаживать параллельные MPI программы, необходимо соответствующим образом настроить Microsoft Visual Studio 2008:

Откройте проект параллельного вычисления числа Пи (parallelpi) в Microsoft Visual Studio 2008,

Выберите пункт меню “Project->paralellpi Properties…”. В открывшемся окне настроек проекта выберите пункт “Configuration Properties->Debugging”. Введите следующие настройки:

  1. В поле “Debugger to launch” выберите “MPI Cluster Debugger”,
  2. В поле “MPIRun Command” введите “mpiexec.exe” – имя программы, используемой для запуска параллельной MPI программы (по умолчанию «c:\Program Files\Microsoft Compute Cluster Pack\Bin\mpiexec.exe»),
  3. В поле “MPIRun Argument” введите аргументы программы “mpiexec.exe”. Например, введите “-np <число процессов>” для указания числа процессов, которые будут открыты,
  4. В поле “Application Command” введите путь до исполняемого файла программы,
  5. В поле “Application Argument” введите аргументы командной строки запускаемой программы,
  6. В поле “MPIShim Location” введите путь до “mpishim.exe” – специальной программы, поставляемой вместе с Microsoft Visual Studio 2008, используемой для отладки удаленных программ (по умолчанию «c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Remote Debugger\x86\mpishim.exe»),

Нажмите “OK” для сохранения внесенных изменений,

Выберите пункт меню “Tools->Options”. В открывшемся окне настроек проекта выберите пункт “Debugging->General”. Поставьте флаг около пункта “Break all processes when one process breaks” для остановки всех процессов параллельной программы в случае, если один из процессов будет остановлен. Если Вы хотите, чтобы при остановке одного процесса остальные продолжали свою работу, снимите флаг (рекомендуется).

Настройка библиотеки OpenCV [3]

  1. Зайти в настройки проекта – Configuration Properties – C\C++ - General и ввести Additional Include Directories путь к файлам OpenCV(По умолчанию «C:\Program Files\OpenCV\include»)
  2. Далее в настройках выбираем пункт  – Configuration Properties –Linker – Additional Library Directories и вводим путь к библиотеке OpenCV (По умолчанию «C:\Program Files\OpenCV\bin»)
  3. Далее в настройках выбираем пункт  – Configuration Properties –Linker –Input – и вводим названия тех библиотек, чьи методы мы будем использовать при написании программы (к примеру – «cv.lib», «cxcore.lib», «highgui.lib», «cvaux.lib»).

После этого шага - проект готов к разработке и отладке на локальном компьютере!

Заключение:

В данной индивидуальной работе я постарался подробно описать процесс настройки среды Microsoft Visual Studio 2008 для разработки приложений по обработке видеоизображений на кластере Microsoft Compute Cluster Server 2003.

Список использованных источников:
1. Учебные курсы - CS338. «Многопроцессорные вычислительные системы и параллельное программирование» (http://www.parallel.ru/).
2. Учебные курсы - CS101 «Введение в методы программирования», CS105 «Дискретная математика», CS220 «Архитектура ЭВМ», CS225 «Операционные системы», CS304 «Методы вычислений» (http://www.winhpc.ru/).
3. Bradski G.R., Kaehler A. Learning OpenCV - Computer Vision with the OpenCV Library /(http://oreilly.com/).