ИММ УрО РАН предоставляет пользователям системы 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, так и из командной строки с помощью команд системы запуска.