.. _modules: ============================= Модульное управление пакетами ============================= На кластере установлена система управления загружаемыми модулями `Lmod `_. Краткая инструкция ------------------ С помощью команды ``module list`` можно увидеть список активированных модулей. С помощью команды ``module avail`` можно увидеть список доступных для активации модулей. С помощью команды ``module load `` можно загрузить модуль ````. Можно указать конкретную версию модуля, или загрузить сразу несколько модулей, например, команда:: module load intel/2022.0.1 impi загрузит модуль компилятора Intel версии 2022.0.1 и последнюю версию библиотеки Intel MPI. Любой загруженный модуль можно выгрузить с помощью команды ``module unload ``. Можно переключиться на другую версию уже загруженного модуля с помощью команды ``module load /``. Одновременно может быть загружен только один модуль из категории компиляторов (``intel`` или ``gnu9``) и только одна библиотека MPI (``impi``, ``mpich``, ``openmpi4`` и др.). У модулей есть зависимости, и модули становятся доступны только после загрузки всех необходимых модулей. Например перед загрузкой MPI библиотеки нужно загрузить хотя бы один модуль с компилятором. Для загрузки параллельных библиотек (например, ``petsc``) необходимо предварительно загрузить модуль с MPI библиотекой. Используйте команду ``module spider`` чтобы найти все модули в системе. Также можно добавить ключевое слово, чтобы найти конкретный модуль, например, ``module spider petsc``. Команда ``module show `` покажет список переменных окружения, которые будут добавлены при активации модуля. Эта информация может быть полезной, чтобы понять какие переменные нужно использовать для доступа к файлам модуля. Как правило они имеют вид ``NAME_DIR``, ``NAME_INC``, ``NAME_LIB`` и т.п. С помощью команды ``module purge`` можно выгрузить все активированные модули. Также вы можете использовать короткую версию команды ``ml`` вместо ``module list``, ``ml `` вместо ``module load ``, ``ml -`` вместо ``ml unload ``, ``ml av`` вместо ``module avail`` и т.д. Команды ``module load `` можно добавить в свой ``~/.bashrc`` файл. Дополнительную информацию можно найти в документации `Lmod `_.