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

Для просмотра документации необходимо авторизоваться на сайте