Вы здесь

Запуск параллельного Matlab

ИММ УрО РАН предоставляет пользователям системы Matlab (Матлаб) возможность организации параллельных вычислений на кластере "Уран".
Подробная информация представлена в полной инструкции "Параллельный Matlab".
Число лицензий для вычислений на кластере в настоящее время равно 1000.
Запускать программы на кластере можно из командной строки или из системы Matlab. Для этого на своем компьютере следует установить программу PuTTY и какой-нибудь X-сервер.

Параллельные вычисления на кластере инициируются
1) запуском параллельных програм;
2) запуском частично параллельных программ (c parfor или spmd);
3) запуском программ с использованием GPU.

Программа пользователя должна быть оформлена как функция (не скрипт) и находиться в начале одноименного файла.
Файл должен иметь расширение "m"(например, my_function.m).

При запуске программы-функции указывается необходимое для счета число параллельных процессов и максимальное время выполнения в минутах.

Запуск программ на кластере из командной строки осуществляется с помощью команд:
mlrun - для параллельных программ, например,

mlrun -np 8 -maxtime 20 my_parfunction

где 8 - число копий функции my_parfunction, 20 - максимальное время счета в минутах;

mlprun - для частично параллельных программ (с parfor или spmd), например,

mlprun -np 8 -maxtime 20 my_poolfunction

где один процесс будет выполнять программу-функцию, а оставшиеся 7 будут использованы в качестве пула для выполнения parfor и spmd;

mlgrun - для программ с использованием GPU, например,

mlgrun -np 8 -maxtime 20 my_gpufunction

где 8 - число процессов (копий функции), каждый из которых может использовать свое GPU.

Запуск программ на кластере из окна системы Matlab осуществляется с помощью соответствующих служебных функций:
imm_sch - для параллельных программ, например,

job1 = imm_sch(8,20,@my_parfunction);

imm_sch_pool - для частично параллельных программ (с parfor или spmd), например,

job2 = imm_sch_pool(8,20,@my_poolfunction);

imm_sch_gpu - для программ с использованием GPU, например,

job3 = imm_sch_gpu(8,20,@my_gpufunction);

В приведенных командах запускаются функции без параметров с использованием 8 процессов, 20 минут - максимальное время счета;
job1, job2, job3 - ссылки на созданные системой Matlab объекты Job (работа). Имя функции можно набрать с символом "@" или в кавычках.

Пример. Для функции с параметрами, например rand, вызываемой для генерации 2х3 матрицы случайных чисел с числом процессов 4 и максимальным временем счета 5 минут, следует соответственно набрать в командной строке

mlrun -np 4 -maxtime 5 rand '1,{2,3}'

или в окне Matlab

job = imm_sch(4,5,@rand,1,{2,3});

Подробнее в Параллельный Matlab/Запуск параллельной программы/Пример запуска программы.

В результате запуска программа ставится в очередь на счет и, если ресурсов кластера достаточно, входит в решение.

Пользователь может контролировать прохождение своей программы через систему запуска как в окне системы Matlab с помощью Job Monitor, так и из командной строки с помощью команд системы запуска.

Яндекс.Метрика