exponenta event banner

Использование различных 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  = {};

    primary путь должен быть действительным в кластере; и ваш mpiLibConf.m файл должен быть выше на пути работников кластера, чем matlabroot/toolbox/parallel/mpi. (Отправка mpiLibConf.m как прикрепленный файл для этой цели не работает. Вы можете получить mpiLibConf.m функция на рабочем пути либо путем перемещения файла в папку на пути, либо путем использования планировщика cd в своей команде, чтобы она запускала рабочий объект MATLAB ® из папки, содержащей функцию.)

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

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

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

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

    Сценарий оболочки передаваемого задания должен:

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

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

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

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

    Примеры обмена сценариями оболочки задания см. в разделе Примеры сценариев подключаемых модулей (панель инструментов параллельных вычислений).