Выбор версии MPI и компилятора

Для выбора компиляторов, библиотек обмена сообщениями и пакетов прикладных программ, необходимых для работы программы пользователя, используются модули установки переменных окружения.

Команда mpiset позволяет выбрать модуль из списка основных модулей, задающих компилятор и версию библиотеки MPI.

Команда mpiset без параметров выдает пронумерованый список доступных вариантов. Строка, помеченная словом active, указывает на текущие настройки.

Для смены модуля (библиотеки MPI, компилятора) необходимо выполнить команду

mpiset <n>

где <n> – номер варианта настроек для данного кластера.

Пример. Список основных вариантов настроек, полученный в начале сеанса 28.12.2016 командой mpiset на кластере "Уран":

active  1       MVAPICH2 Intel 14.0, mvapich2/intel64
        2       OpenMPI Intel 11.1, openmpi/intel64
        3       OpenMPI 32bit GCC 4.4, openmpi/gcc32 
        4       OpenMPI 32bit Intel 14.0, openmpi/intel32
        5       OpenMPI GCC v4.4, openmpi/gcc64
        6       OpenMPI v1.10 GCC 4.8, openmpi/gcc64_1.10
        7       MVAPICH2 2.1 PGI 16.5, mvapich2/pgi_16.5
        8       Intel MPI Intel Compiler 17.0, intelmpi/intel64

Команда module - выбор окружения для решения задачи

При работе на кластере можно использовать различные компиляторы, библиотеки обмена сообщениями и пакеты прикладных программ (приложения), поэтому пользователь должен определить среду для решения своей задачи, выбрав нужное программное обеспечение. Выбор определяется модулем установки переменных окружения, требуемых для работы программы. Названия модулей содержат имена компиляторов, библиотек, пакетов, номера версий. Например, при загрузке модуля openmpi/intel64 программа пользователя будет откомпилирована 64-разрядным компилятором intel с библиотекой openmpi.

Список загруженных на настоящий момент модулей можно выдать с помощью команды module list. Сервисная команда mpiset служит для быстрой смены модуля, задающего компилятор и версию библиотеки MPI.

Списки доступных модулей на кластерах могут отличаться и пополняться с введением нового программного обеспечения.

Пример. Список модулей, доступных на кластере umt на 01.07.2011, выданный с помощью команды module avail

OpenFoam/1.7.x        matlab/R2010b     openmpi/gcc64                         
dvm/current           mpi/default       openmpi/intel64
firefly/71g-openmpi   music/4.0         paraview/3.10
matlab/R2010a         mvapich2/intel64  towhee/6.2.15

В целом, работа с модулями обеспечивается командой module.

  • module avail - вывод на экран списка доступных модулей;
  • module list - вывод на экран списка загруженных (на данный момент) модулей;
  • module show <имя модуля из списка> - вывод на экран полного имени файла с описанием команд изменения окружения, выполняемых при загрузке модуля;
  • module whatis <имя модуля из списка> - вывод на экран комментария к модулю;
  • module whatis - вывод на экран списка модулей с комментариями;

  • module load <имя модуля из списка> - загрузка модуля; после выполнения данной команды (из командной строки или конфигурационного файла) среда исполнения будет настроена на использование программного обеспечения, соответствующего указанному модулю;

  • module unload <имя загруженного модуля> - выгрузка модуля отменит настройки переменных окружения, задаваемых данным модулем;
  • module switch <имя загруженного модуля> <имя модуля> - замена загруженного модуля (первого) на указанный модуль (второй);
  • module clear - выгрузка всех загруженных на текущий момент модулей.

Внимание!

  1. Настройка с помощью команд mpiset или module имеет силу на текущий сеанс работы на кластере.
  2. Для того, чтобы не настраивать заново в начале каждого сеанса работы среду исполнения для решения своей задачи, можно нужные настройки сохранить в файле $HOME/.bash_profile пользователя, используя следующие команды:
  • module initadd <имя модуля из списка доступных> - меняет $HOME/.bash_profile, загружая указанный модуль для следующих сеансов работы;
  • module initlist - выдаёт список загруженных в $HOME/.bash_profile модулей для следующих сеансов работы;
  • module initclear - чистит $HOME/.bash_profile, оставляя лишь модуль null, который не содержит никаких настроек.