На Linux® и операционных систем Macintosh, можно использовать сборку MPI, отличающуюся от той, которая поставляется с Parallel Computing Toolbox™. В этом разделе описываются шаги для создания сборки MPI для использования с типовым интерфейсом планировщика. Если у вас уже есть альтернативная сборка MPI, перейдите к разделу Использовать сборку MPI.
Распакуйте источники MPI в целевую файловую систему на вашей машине. Например, предположим, что вы загрузили mpich2-distro.tgz
и хотите распаковать его в /opt
для создания:
# cd /opt # mkdir mpich2 && cd mpich2 # tar zxvf path/to/mpich2-distro.tgz # cd mpich2-1.4.1p1
Создайте свой MPI с помощью enable-shared
опция (это жизненно важно, так как вы должны создать общий MPI библиотеки, двоичный совместимый с MPICH2-1.4.1p1
для R2013b с R2018b или MPICH3.2.1
для R2019a и более поздних версий). Например, следующие команды создают MPI с nemesis
канальное устройство и gforker
пусковая установка.
#./configure -prefix=/opt/mpich2/mpich2-1.4.1p1 \ --enable-shared --with-device=ch3:nemesis \ --with-pm=gforker 2>&1 | tee log # make 2>&1 | tee -a log # make install 2>&1 | tee -a log
Когда ваша сборка MPI готова, этот этап подсвечивает шаги, чтобы использовать его с типовым планировщиком. Чтобы обеспечить работу кластера с другой сборкой MPI, выполните следующие шаги.
Протестируйте свою сборку, запустив mpiexec
исполняемый файл. Сборка должна быть готова к тестированию, если она bin/mpiexec
и lib/libmpich.so
доступны в месте установки MPI.
Следуя примеру в Build MPI, /opt/mpich2/mpich2-1.4.1p1/bin/mpiexec
и /opt/mpich2/mpich2-1.4.1p1/lib/libmpich.so
готовы к использованию, поэтому можно протестировать сборку с помощью:
$ /opt/mpich2/mpich2-1.4.1p1/bin/mpiexec -n 4 hostname
Создайте mpiLibConf
(Parallel Computing Toolbox), чтобы направить Parallel Computing Toolbox использовать ваш новый MPI. Напишите mpiLibConf.m
чтобы вернуть соответствующую информацию для вашей сборки. Для примера:
function [primary, extras] = mpiLibConf primary = '/opt/mpich2/mpich2-1.4.1p1/lib/libmpich.so'; extras = {};
The primary
путь должен быть допустимым в кластере; и ваши mpiLibConf.m
файл должен быть выше по пути рабочих кластеров, чем
. (Отправка matlabroot
/ toolbox/parallel/mpimpiLibConf.m
как вложенный файл для этой цели не работает. Вы можете получить mpiLibConf.m
функцию в рабочем пути путем перемещения файла в папку в пути или путем использования планировщика cd
в своей команде так, что он запускает MATLAB® worker из папки, содержащей функцию.)
Определите необходимые демоны и опции командной строки.
Определите все необходимые демоны (часто что-то вроде mpdboot
или smpd
). The gforker
пример сборки в этом разделе использует MPI, который не нуждается в службах или демонах, работающих на кластере, но может использовать только локальный компьютер.
Определите правильные опции командной строки, которые будут переданы mpiexec
.
Чтобы настроить кластер на использование новой сборки MPI, измените скрипт обертки связывающегося задания, чтобы выбрать правильную mpiexec
. Кроме того, в скрипте оболочки может быть этап, на котором запускаются демоны менеджера процессов MPI.
Скрипт обертки связывающегося задания должен:
Определите, какие узлы выделяются планировщиком.
Запуск необходимых процессов демона. Для примера для менеджера процессов MPD это означает вызов "mpdboot -f <nodefile>"
.
Определите какие mpiexec
исполняемый файл для запуска рабочих процессов.
Остановите процессы демона. Для примера для менеджера процессов MPD это означает вызов "mpdallexit"
.
Для примеров обмена сценариями обертки заданий смотрите Sample Plugin Scripts (Parallel Computing Toolbox).