Взаимодействие 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 на кластере, установлен как сервис и запущен на всех узлах. Разумеется, что это надо поставить в автозагрузку либо написать скрипт.

Подготовка к работе закончена. Перейдём к головному узлу.

Работа на головном узле

clip_image001

Рис.1. Рабочий интерфейс MATLAB R2009

После запуска MATLAB необходимо вызвать Configurations Manager (вкладка Parallel=>Manage Configurations)

clip_image003

Рис.2. Parallel Configurations Manager

В случае необходимости можно проверить новую конфигурацию нажатием на Start Validation – набор встроенных тестов. Однако прохождение всех тестов не гарантирует то, что задача будет выполняться (в частности, замечалось, что тесты проходят даже в случае, если несколько узлов помечены в HPC Cluster Manager как Unreachable).

File=>

clip_image005

Рис.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.

clip_image007

Рис.4. Конфигурация

На следующих вкладках (Jobs и Tasks) можно указать дополнительные опции, которые чаще всего прописываются вручную в программном коде задач (MinimumNumberOfWorkers и др.)

На этом конфигурация закончена.  Таким образом, всего лишь за несколько простых шагов мы подготовили MATLAB для работы с Windows HPC Server 2008.