Использование различных построений 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.

    Следуя примеру в 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
  2. Создайте 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/mpi. (Отправка mpiLibConf.m как вложенный файл для этой цели не работает. Вы можете получить mpiLibConf.m функцию в рабочем пути путем перемещения файла в папку в пути или путем использования планировщика cd в своей команде так, что он запускает MATLAB® worker из папки, содержащей функцию.)

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

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

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

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

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

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

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

    • Определите какие mpiexec исполняемый файл для запуска рабочих процессов.

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

    Для примеров обмена сценариями обертки заданий смотрите Sample Plugin Scripts (Parallel Computing Toolbox).