Различный MPI использования основывается на системах UNIX

Создайте MPI

На Linux® и операционных системах Macintosh, можно использовать сборку MPI, которая отличается от того, которому предоставляют Parallel Computing Toolbox™. Эта тема обрисовывает в общих чертах шаги для создания сборки MPI для использования с типичным интерфейсом планировщика. Если вы уже имеете альтернативную сборку MPI, продолжаете Использовать Свою Сборку MPI.

  1. Распакуйте источники MPI в систему конечного файла на вашей машине. Например, предположите, что вы загрузили mpich2-distro.tgz и хотите распаковать его в /opt для создания:

    # cd /opt
    # mkdir mpich2 && cd mpich2
    # tar zxvf path/to/mpich2-distro.tgz
    # cd mpich2-1.4.1p1
  2. Создайте свой 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 готова, этот этап подсвечивает шаги, чтобы использовать ее с типичным планировщиком. Чтобы получить ваш кластер, работающий с различной сборкой MPI, выполните эти шаги.

  1. Протестируйте свою сборку путем выполнения исполняемого файла 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
  2. Создайте функцию 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® из папки, которая содержит функцию.)

  3. Определите необходимых демонов и параметры командной строки.

    • Определите всех необходимых демонов (часто что-то как mpdboot или smpd). Пример сборки gforker в этом разделе использует MPI, которому не нужны никакие сервисы или демоны, работающие на кластере, но это может использовать только локальную машину.

    • Определите правильные параметры командной строки, чтобы передать mpiexec.

  4. Чтобы настроить ваш кластер, чтобы использовать вашу новую сборку MPI, измените свой скрипт обертки задания передачи, чтобы взять правильный mpiexec. Кроме того, может быть этап в скрипте обертки, где демоны диспетчера процессов MPI запускаются.

    Связывающийся скрипт обертки задания должен:

    • Определите, какие узлы выделяются планировщиком.

    • Запустите требуемые процессы демона. Например, для диспетчера процессов MPD это означает вызывать "mpdboot -f <nodefile>".

    • Задайте который исполняемый файл mpiexec использовать для начинающих рабочих.

    • Остановите процессы демона. Например, для диспетчера процессов MPD это означает вызывать "mpdallexit".

    Для примеров связывающихся скриптов обертки задания смотрите подпапки matlabroot/toolbox/distcomp/examples/integration/; а именно, для примера для Engine Сетки Sun посмотрите в подпапке sge/shared для communicatingJobWrapper.sh. Скрипты обертки доступны для различных планировщиков и настроек совместного доступа к файлам. Скопируйте и измените соответствующий скрипт для своего конкретного кластерного использования.