Использование системы Matlab для параллельных вычислений

ИММ УрО РАН предоставляет пользователям системы Matlab (Матлаб) возможность организации параллельных вычислений на кластере
"Уран" (umt), расширенного узлами с GPU Tesla.
Подробная информация представлена в полной инструкции "Параллельный Matlab".
Число лицензий для вычислений на кластере в настоящее время равно 1000.
Для запуска программ пользователю необходимо установить на своем компьютере программу 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 (с версии R2011b) с помощью Job Monitor (см. пункт меню Parallel), так и из командной строки с помощью команд системы запуска.