Взаимодействие MATLAB и HPC Server 2008
Как известно, Windows HPC Server 2008 предоставляет широкие возможности для интеграции с наиболее популярными вычислительными пакетами. После не всегда приятных опытов общения с нативным Job Manager от MATLAB, во время которых без какой-либо логики или причины worker-ы на узлах зависали либо теряли подключение к Job Manager на головном узле, было решено предпринять попытки связать MATLAB с Job Manager из HPC Pack 2008 (кроме этого, за пределы данной статьи было решено вынести взаимодействие MATLAB с популярной системой очередей Torque).
Подготовка кластера к работе с MATLAB
На все узлы кластера необходимо установить клиент MATLAB той же версии и в ту же папку (это критично), что и на головном узле. После чего, если мы имеем уже настроенный HPC Cluster Manager из пакета HPC Pack 2008, можно запустить с помощью его функциональной кнопки Run Command следующие команды на всех узлах:
"c:\Program Files\MATLAB\R2009b\toolbox\distcomp\bin\mdce" install
"c:\Program Files\MATLAB\R2009b\toolbox\distcomp\bin\mdce" start
Всё, Distributing Computing Centre, необходимый для работы MATLAB на кластере, установлен как сервис и запущен на всех узлах. Разумеется, что это надо поставить в автозагрузку либо написать скрипт.
Подготовка к работе закончена. Перейдём к головному узлу.
Работа на головном узле
Рис.1. Рабочий интерфейс MATLAB R2009
После запуска MATLAB необходимо вызвать Configurations Manager (вкладка Parallel=>Manage Configurations)
Рис.2. Parallel Configurations Manager
В случае необходимости можно проверить новую конфигурацию нажатием на Start Validation – набор встроенных тестов. Однако прохождение всех тестов не гарантирует то, что задача будет выполняться (в частности, замечалось, что тесты проходят даже в случае, если несколько узлов помечены в HPC Cluster Manager как Unreachable).
File=>
Рис.3. Вкладка создания новой конфигурации
После нажатия на CCS (Compute Cluster Server) будет предложено настроить данную конфигурацию. На скриншоте приведена работающая конфигурация.
Root Directory Of Matlab … - папка, в которой находится Matlab на узлах.
Number of workers… - сколько worker-ов может использовать конфигурация.
Directory where job… - в случае, если выполняются кластерные вычисления, необходимо создать папку, доступную всем узлам. Туда будет складываться весь массив данных, сгенерированный за время вычисления задачи.
HPC Server scheduler hostname – имя головного узла.
Cluster Version – версия ОС.
XML File… и Name of the job template… - «болванка» для создания задач.
Workers run in SOA mode for distributed jobs (UseSOAJobSubmission) – использование одной из последних фич в HPC Server 2008, а именно, выполнение задач в режиме SOA.
Рис.4. Конфигурация
На следующих вкладках (Jobs и Tasks) можно указать дополнительные опции, которые чаще всего прописываются вручную в программном коде задач (MinimumNumberOfWorkers и др.)
На этом конфигурация закончена. Таким образом, всего лишь за несколько простых шагов мы подготовили MATLAB для работы с Windows HPC Server 2008.
Comments
- Anonymous
April 13, 2010
Да это очень полезная информация, и на самом деле хотелось бы чтобы тема развертывания и интеграции инженерного, прикладного ПО развивалась и дальше. Я думаю это будет очень полезно для всех. Существует множество пакетов прикладных программ, таких как star cd, ccm+, cfx, fluent, ansys workbench, abaqus, и т.д., но вот как развернуть такие тяжеловесные коды на кластерных системах, да и еще удобным для большого числа пользователей, да и еще удаленно, вот об этом не всегда могут проконсультировать даже поставщики этого ПО. Поэтом рассмотрение таких тем было бы актуальным.