ЦКП ВВР ПГНИУ

Суперкомпьютерный центр Пермского университета

Инструменты пользователя

Инструменты сайта


общее:инструкции:module

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
общее:инструкции:module [13.04.2017 17:43:41]
leoten man:module переименовано в общее:инструкции:module
общее:инструкции:module [24.04.2017 17:50:48] (текущий)
leoten
Строка 1: Строка 1:
-====== ​Использование утилиты "​module"​ ======+====== ​Утилита "​module"​ ======
 ------ ------
-==== Что такое module? ==== 
  
-Утилита module упрощает настройку переменных окружения при использовании различных реализаций MPI (а также различных версий другого ПО). ​ Для каждой реализации есть отдельный модуль-файл,​ содержащий все необходимые для использования конкретной реализации настройки:​ пути к исполняемым файлам,​ библиотекам,​ страницам документации и прочее.+==== Назначение ​====
  
-==== Работа с module ====+Предположим,​ установлены две разные версии одной и той же программы. Каждая версия программы имеет свой набор исполняемых,​ библиотечных, заголовочных и других файлов. Для использования той или иной версии необходимо соответствующим образом настроить окружение. В случае с оболочкой Bash это будет выглядеть примерно следующим образом:​ 
 +<​code>​ 
 +export PATH=<​путь до исполняемых файлов программы>:​$PATH 
 +export LD_LIBRARY_PATH=<​путь до библиотек программы>:​$LD_LIBRARY_PATH 
 +... 
 +</​code>​
  
-Каждая реализация имеет свой набор исполняемых, библиотечных, исходных файлов и т.д. Для использования ​той или иной реализации MPI необходимо сначала проверитьдоступна ли в системе ​необходимая Вам. Для вывода списка доступных реализаций используйте команду **"​module avail"​**. Вот пример ​вывода ​этой команды ​на консоли кластера "​ПГУ-Тесла":​+С точки зрения пользователя необходимость каждый раз вручную вводить ​подобные команды выглядит неудобной и отнимает достаточно много времени. Для упрощения подобной настройки и была создана ​утилита ​**module**.
  
-<​code>​  +Эта утилита упрощает настройку переменных окружения при использовании различных версий различного ПО (например,​ различных реализаций стандарта MPI). Для каждой версии установленного ПО можно создать соответствующий ​ модуль-файл,​ содержащий все необходимые для использования конкретной реализации настройки.
-$ module avail+
  
---------------------------------------------------------------------------------- /​usr/​local/​Modules/​versions ---------------------------------------------------------------------------------- +==== Список основных команд ====
-3.2.10 +
----------------------------------------------------------------------------- /​usr/​local/​Modules/​3.2.10/​modulefiles ----------------------------------------------------------------------------- +
-dot                     ​module-info ​            ​mpi/​mvapich/​1.2.0/​gcc ​  ​mpi/​openmpi/​1.4.1/​gcc ​  ​null ​                   use.own +
-eclipse/​juno/​parallel ​  ​modules ​                ​mpi/​mvapich/​1.2.0/​intel mpi/​openmpi/​1.4.1/​intel pgi/12.4 +
-module-git ​             mpi/​intelmpi/​4.0.1.007 ​ mpi/​mvapich/​1.2.0/​pgi ​  ​mpi/​openmpi/​1.4.1/​pgi ​  ​pgi/​13.1(default) +
-</​code>​+
  
-Допустим, из доступного ​ПО нас интересует реализация MVAPICH 1.2.0 настроенная на использование GCC (т.е. ​модуль mpi/​openmpi/​1.4.1/​gcc). Проверим, не загружен ли уже ​этот модуль с помощью ​команды **"​module list"​**:​ +^  Команда  ^ Параметры ^ Назначение ^ 
-<​code>​ +^ module avail| ​ ---  | Выводит ​список доступных для загрузки модулей | 
-module list +^ module load |  ​имя модуля ​ | Загружает модуль с указанным ​именем | 
-No Modulefiles Currently Loaded. +^ module unload |  имя модуля ​ | Выгружает модуль с указанным именем | 
-</​code>​ +module list |  ---  | Выводит список загруженных в данный момент ​модулей | 
-Необходимого модуля не загружено.+^ module purge |  ---  | Выгружает все загруженные модули |
  
-Вообще говоря, здесь возможны ​ещё несколько вариантов развития событий: 1) нужная реализация MPI загружена - в этом ​случае можно ​приступать к работе и последующая часть руководства в данный момент Вам не нужна; 2) загружена какая-то ещё реализация MPI в этом случае её необходимо выгрузить,​ о том как это сделать написано чуть ниже.+==== Примеры использования ​==== 
 +----
  
-Вернёмся к тому случаю, ​когда в данный ​момент не загружено ни одной реализации MPI. Загрузим нужную нам реализацию с помощью ​команды "​module load MODULE_NAME"​ (в нашем случае вместо MODULE_NAME подставляем mpi/​openmpi/​1.4.1/​gcc):​+=== Загрузка модуля компилятора Intel 2017 ===
 <​code>​ <​code>​
-module load mpi/openmpi/1.4.1/gcc+module load compilers/intel/2017
 </​code>​ </​code>​
  
-Готово. Теперь можно работать с MPI.+=== Загрузка ​модуля OpenMPI 1.10.6 (GCC 4.4.7) === 
 +<​code>​ 
 +module load compilers/​gnu/​4.4.7 
 +module load mpi/​openmpi/​1.10.
 +</​code>​
  
-Если же Вы захотите попробовать ещё какую-то реализацию MPI после работы с этой, то Вам необходимо будет выгрузить текущую реализацию с помощью команды "​module unload MODULE_NAME"​ (в нашем случае вместо MODULE_NAME подставляем mpi/​openmpi/​1.4.1/​gcc):​+=== Загрузка модуля ​CUDA 8 ===
 <​code>​ <​code>​
-module ​unload mpi/openmpi/1.4.1/gcc+module ​load cuda/8.0.61
 </​code>​ </​code>​
-После этого можете загрузить нужную Вам реализацию MPI выполняя уже знакомую Вам команду "​module load". 
общее/инструкции/module.1492087421.txt.bz2 · Последние изменения: 13.04.2017 17:43:41 — leoten