Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
общее:инструкции:module [21.11.2016 14:42:46] faubert |
общее:инструкции: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.6 | ||
+ | </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". |