На 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.
Следуя примеру в Сборке, которую 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, чтобы использовать ваш новый MPI. Запишите свой mpiLibConf.m
, чтобы возвратить соответствующую информацию для вашей сборки. Например:
function [primary, extras] = mpiLibConf primary = '/opt/mpich2/mpich2-1.4.1p1/lib/libmpich.so'; extras = {};
Путь primary
должен быть допустимым на кластере; и ваш файл mpiLibConf.m
должен быть выше на пути кластерных рабочих, чем
. (Передающий matlabroot/toolbox/distcomp/mpi
mpiLibConf.m
как прикрепленный файл с этой целью не работает. Можно получить функцию mpiLibConf.m
на пути рабочего или перемещением файла в папку на пути, или при наличии планировщика используют cd
в его команде так, чтобы это запустило рабочего MATLAB® из папки, которая содержит функцию.)
Определите необходимых демонов и параметры командной строки.
Определите всех необходимых демонов (часто что-то как mpdboot
или smpd
). Пример сборки gforker
в этом разделе использует MPI, которому не нужны никакие сервисы или демоны, работающие на кластере, но это может использовать только локальную машину.
Определите правильные параметры командной строки, чтобы передать mpiexec
.
Чтобы настроить ваш кластер, чтобы использовать вашу новую сборку MPI, измените свой скрипт обертки задания передачи, чтобы взять правильный mpiexec
. Кроме того, может быть этап в скрипте обертки, где демоны диспетчера процессов MPI запускаются.
Связывающийся скрипт обертки задания должен:
Определите, какие узлы выделяются планировщиком.
Запустите требуемые процессы демона. Например, для диспетчера процессов MPD это означает вызывать "mpdboot -f <nodefile>"
.
Задайте который исполняемый файл mpiexec
использовать для начинающих рабочих.
Остановите процессы демона. Например, для диспетчера процессов MPD это означает вызывать "mpdallexit"
.
Для примеров связывающихся скриптов обертки задания смотрите подпапки
; а именно, для примера для Engine Сетки Sun посмотрите в подпапке matlabroot/toolbox/distcomp/examples/integration/
sge/shared
для communicatingJobWrapper.sh
. Скрипты обертки доступны для различных планировщиков и настроек совместного доступа к файлам. Скопируйте и измените соответствующий скрипт для своего конкретного кластерного использования.