Содержание

MathWorks MATLAB

Общие сведения

Есть несколько вариантов запуска MATLAB-программ с использованием кластера:

  1. Запуск MATLAB-программ в пакетном режиме на отдельных узлах. Для этого в описании сценария запуска задачи необходимо вызвать MATLAB командой
    matlab -nodisplay -nodesktop -nojvm -nosplash -r "myfunc"

    при условии, что в текущей директории есть файл myfunc.m, в котором определена функция myfunc. В этом случае число одновременно запущенных расчетов ограничено числом имеющихся у нас лицензий. Можно запустить одновременно пять расчетов.

  2. Компиляция программ MATLAB в исполняемые файлы для запуска на любом числе компьютеров. Для этого используется компилятор Matlab Compiler. Для запуска этого компилятора требуется отдельная лицензия.
  3. Запуск в параллельном режиме с использованием распределенных массивов и тех функций ядра MATLAB, для которых существует параллельная реализация. Для этого необходимо создать массив, который будет передаваться в качестве аргумента функциям MATLAB как распределенный (distributed). Этот вариант потребует изменений в MATLAB-программе. Подробнее можно прочитать в документации к Parallel Computing Toolbox. В этом режиме можно использовать 16 и более параллельных процессов.
  4. Вызов функций matlab из C-программы. Подробнее об этом методе можно прочитать в документации к функции ''mex''.

Пожалуй, самый простой способ, это способ, не требующий компиляции, т.е. способ № 1. О нём подробнее рассказано в следующем разделе.

Запуск MATLAB-программ в пакетном режиме

  1. Запишем эту программу в файл myfunc.m,
  2. в той же директории создадим файл для запуска расчета run_myfunc.sh следующего содержания:
    #!/bin/bash  
    #PBS -l walltime=00:10:00
    #PBS -l select=1:ncpus=1
    
    cd $PBS_O_WORKDIR
    
    module load matlab/r2013b
    matlab -nodisplay -nodesktop -nojvm -nosplash -r "myfunc" 
  3. через некоторое время после постановки расчета в очередь командой qsub run_myfunc.sh в этой же директории будет создан файл eig.txt, содержащий пять вещественных или комплексных чисел, вычисленных с одинарной точностью.

MATLAB Compiler




Parallel Computing Toolbox

Parallel Computing Toolbox User’s Guide, R2013b

Технология, позволяющая распараллеливать выполнение программ на несколько процессорных ядер, а также использовать NVidia GPU.

Distributed Computing Server

MATLAB Distributed Computing Server System Administrator’s Guide, R2013b

Предоставляет возможность запуска программ MATLAB (в том числе, распараллеливающихся на несколько вычислительных узлов) на кластере, через разные планировщики, включая PBS Pro. Является развитием 'Parallel Computing Toolbox'. Пользователь работает через стандартный графический интерфейс MATLAB (далее называемый 'клиент') и через него получает дополнительные вычислительные ресурсы на кластере. На нашем комплексе возможны два варианта использования, настраиваемые разными способами:

  1. Клиент работает на узле кластера, пользователь взаимодействует с ним с использованием технологии X Window. Этот способ является предпочтительным.
  2. Клиент работает на персональном компьютере пользователя, с которого имеется доступ к кластеру по протоколам SSH/SFTP.

Настройка клиента на кластере

Настройка клиента на ПК