- •Оглавление
- •Краткое описаниеVisual Studio
- •Типы ресурсов
- •Конфигурации
- •ИспользованиеOpenMp
- •ОтладкаOpenMp
- •Подключение ms-mpi к Visual Studio 2008
- •ЗапускMpi-программы в различных режимах
- •Ручной запуск параллельной задачи на кластере
- •Запуск задач с помощьюJobManager
- •Интеграция Visual Studio и mpiexec.
- •ОтладкаMpi-программ
Интеграция Visual Studio и mpiexec.
Есть также дополнительный способ интеграции Visual Studio и mpiexec, нестандартный, но, тем не менее, позволяющий оперировать кластерными вычислениями непосредственно из Visual Studio, без запуска HPC Cluster Manager, mpiexec и т.д.
Так, в подменю Tools находится раздел Other tools (в русской версии Сервис=>Внешние инструменты).
Command – путь к mpiexec от необходимой реализации MPI. В аргументах необходимо указать путь к проекту ($(TargetPath)), в Initial Directory – директорию проекта.
Из полезных дополнительных опций следует отметить use output window – использовать консоль для вывода результатов.
Таким образом, мы получаем полный доступ к функциональности mpiexec и других утилит, поставляемых с HPC Pack 2008. В качестве пример приведу настройку External tools для добавления и расчёта задачи на кластере в HPC Job Manager:
Command: D:\Program Files\Microsoft HPC Pack2\Bin\job.exe
Arguments: submit /numcores:16 mpiexec \\dc\Temporary_Data\MyMPIProject.exe
Разумеется, данный пример не иллюстрирует всех возможностей конфигурации External Tools. Данный инструмент достаточно мощный, позволяющий эффективно связывать среду разработки с непосредственно кластером (кроме этого, можно добиться такой конфигурации, что с workstation можно отправлять задачи на расчёт на удалённый headnode кластера), и данному аспекту будет посвящён отдельный пост.
ОтладкаMpi-программ
Для кластерной отладки используется Cluster Debugger. Пока что он работает только с Microsoft C/C++ компилятором. В свойствах проекта необходимо выбрать как Debugger MPI Cluster Debugger. В VS 2010 можно обойтись настройками отладчика по умолчанию.
Также можно нажать F5 и выбрать узлы кластера.