Lmod moduly¶
Lmod je modulový systém prostredia založený na jazyku Lua, ktorý sa používa
na dynamickú úpravu shell prostredia. Moduly umožňujú používateľom
jednoducho konfigurovať svoje softvérové prostredie úpravou premenných,
ako sú PATH, LD_LIBRARY_PATH a ďalšie aplikačne špecifické nastavenia.
Používanie modulov zjednodušuje prepínanie medzi rôznymi verziami softvéru a toolchainmi bez potreby meniť systémovú konfiguráciu.
Podrobnú dokumentáciu o Lmod nájdete v dokumentácii Lmod.
Užitočné príkazy¶
Svoje prostredie môžete rýchlo nastaviť pomocou modulov. Medzi najčastejšie používané príkazy patria:
module avail # list all available modules
module load <module_name> # load desired module
module list # list all currently loaded modules
module unload <module_name> # unload desired module
module purge # unload all modules
module use <path_to_modules> # use the modules stored in the <path_to_modules> folder
module help # display general help
module help <module_name> # display information about module
module keyword <key> # list modules matching the <key> keyword
module spider <key> # similar to keyword command, more effective and precise
Príkaz ml je kratší alias pre module a dá sa použiť rovnakým
spôsobom.
Zoznam načítaných modulov¶
Pre prehľad aktuálne načítaných modulov použite module list alebo ml:
ml
Currently Loaded Modules:
1) EasyBuild/4.7.2
Hľadanie dostupných modulov¶
Pre prehľad všetkých dostupných modulov môžete použiť module avail
alebo skrátený príkaz ml av:
Dostupné moduly na Devane
login01:~ $ module avail
R/4.2.3 (D) libvirt/8.10.0 notebook/6.4.10 nvhpc-nompi/23.1 qemu/6.2.0
cuda/12.0.1 maqao/2.17.4 nvhpc-byo-compiler/23.1 nvhpc/23.1 singularity/ce-3.11.0
gcc/12.2 nmap/7.93 nvhpc-hpcx/23.1 openmpi/4.1.4/gcc-12.2 websockify/0.10.0
... ... ...
---------------------------------------- /storage-apps/intel-v.2023/oneapi/modulefiles ----------------------------------------
advisor/latest debugger/2023.0.0 (D) icc32/latest mkl/2023.0.0 (D)
advisor/2023.0.0 (D) dev-utilities/latest icc32/2023.0.0 (D) mkl32/latest
ccl/latest dev-utilities/2021.8.0 (D) init_opencl/latest mkl/2023.0.0 (D)
ccl/2021.8.0 (D) dnnl-cpu-gomp/latest init_opencl/2023.0.0 (D) mpi/2021.8.0 (D)
clck/latest dnnl-cpu-gomp/2023.0.0 (D) inspector/latest oclfpga/latest
clck/2021.7.2 (D) dnnl-cpu-iomp/latest inspector/2023.0.0 (D) oclfpga/2023.0.0 (D)
compiler-rt/latest dnnl-cpu-tbb/latest intel_ipp_ia32/latest tbb/latest
compiler-rt/2023.0.0 (D) dnnl-cpu-tbb/2023.0.0 (D) intel_ipp_ia32/2021.7.0 tbb/2021.8.0 (D)
compiler-rt32/latest dnnl/latest intel_ipp_intel64/latest tbb32/latest
compiler-rt32/2023.0.0 (D) dnnl/2023.0.0 intel_ipp_intel64/2021.7.0 tbb32/2023.0.0 (D)
compiler/latest dpct/latest intel_ippcp_ia32/latest vpl/latest
compiler/2023.0.0 (D) dpct/2023.0.0 (D) intel_ippcp_ia32/2021.6.3 vpl/2023.0.0 (D)
compiler32/latest dpl/latest intel_ippcp_intel64/latest vtune/latest
compiler32/2023.0.0 (D) dpl/2022.0.0 (D) intel_ippcp_intel64/2021.6.3 vtune/2023.0.0 (D)
dal/latest icc/latest itac/latest mkl/latest
dal/2023.0.0 (D) icc/2023.0.0 (D) itac/2021.8.0 mkl/2023.0.0 (D)
... ... ...
Reťazec pred symbolom / zodpovedá názvu softvéru, zatiaľ čo reťazec
za symbolom / zodpovedá verzii softvéru a/alebo kompilačnému toolchainu,
ktorý sa použil na inštaláciu softvéru.
Predvolené hodnoty
D označuje predvolenú verziu softvéru, ktorá sa načíta,
ak sa v príkaze module load nešpecifikuje žiadna verzia alebo
toolchain.
Odporúča sa vždy používať úplný názov modulu, pretože predvolené hodnoty sa môžu meniť pri inštalácii novších verzií softvéru.
Hľadanie modulov¶
Príkaz module spider poskytuje podrobnejšie výsledky vyhľadávania
a pomáha nájsť moduly v hierarchickom strome modulov.
Skúmanie modulov
login01:~ $ module spider Python
Description:
Python is a programming language that lets you work more quickly and integrate your systems more effectively.
Versions:
Python/2.7.18-GCCcore-10.3.0-bare
Python/2.7.18-GCCcore-11.3.0-bare
Python/3.7.4-GCCcore-8.3.0
Python/3.8.6-GCCcore-10.2.0
Python/3.9.5-GCCcore-10.3.0-bare
Python/3.9.5-GCCcore-10.3.0
Python/3.9.6-GCCcore-11.2.0-bare
Python/3.9.6-GCCcore-11.2.0
Python/3.10.4-GCCcore-11.3.0-bare
Python/3.10.4-GCCcore-11.3.0
Other possible modules matches:
python
Teraz si môžeme vybrať požadovanú verziu Pythonu, napr.
Python/3.10.4-GCCcore-11.3.0:
module load Python/3.10.4-GCCcore-11.3.0
Príkazy na správu modulov môžete použiť aj vo svojich Slurm batch skriptoch.
Preskúmanie modulu¶
Ak chcete zistiť, ako modul zmení prostredie, použite príkaz ml show:
Preskúmanie modulu
ml show Python/3.10.4-GCCcore-11.3.0
---------------------------------------------------------------------------------------------------------------------------
/storage-apps/easybuild/modules/lang/Python/3.10.4-GCCcore-11.3.0.lua:
---------------------------------------------------------------------------------------------------------------------------
help([[
Description
===========
Python is a programming language that lets you work more quickly and integrate your systems
more effectively.
More information
================
- Homepage: https://python.org/
Included extensions
===================
alabaster-0.7.12, appdirs-1.4.4, asn1crypto-1.5.1, atomicwrites-1.4.0,
attrs-21.4.0, Babel-2.10.1, backports.entry_points_selectable-1.1.1,
backports.functools_lru_cache-1.6.4, bcrypt-3.2.2, bitstring-3.1.9,
...
webencodings-0.5.1, wheel-0.37.1, xlrd-2.0.1, zipfile36-0.1.3, zipp-3.8.0
]])
whatis("Description: Python is a programming language that lets you work more quickly and integrate your systems more effectively.")
whatis("Homepage: https://python.org/")
whatis("URL: https://python.org/")
whatis("Extensions: alabaster-0.7.12, appdirs-1.4.4, asn1crypto-1.5.1, atomicwrites-1.4.0, attrs-21.4.0, Babel-2.10.1, backports.entry_points_selectable-1.1.1, backports.functools_lru_cache-1.6.4, bcrypt-3.2.2, bitstring-3.1.9, blist-1.3.6, CacheControl-0.12.11, cachy-0.3.0, certifi-2021.10.8, cffi-1.15.0, chardet-4.0.0, charset-normalizer-2.0.12, cleo-0.8.1, click-8.1.3, clikit-0.6.2, colorama-0.4.4, crashtest-0.3.1, cryptography-37.0.1, Cython-0.29.28, decorator-5.1.1, distlib-0.3.4, docopt-0.6.2, docutils-0.17.1, ecdsa-0.17.0, editables-0.3, filelock-3.6.0, flit-3.7.1, flit-core-3.7.1, fsspec-2022.3.0, future-0.18.2, glob2-0.7, html5lib-1.1, idna-3.3, imagesize-1.3.0, importlib_metadata-4.11.3, importlib_resources-5.7.0, iniconfig-1.1.1, intervaltree-3.1.0, intreehooks-1.0, ipaddress-1.0.23, jeepney-0.8.0, Jinja2-3.1.2, joblib-1.1.0, jsonschema-4.4.0, keyring-23.5.0, keyrings.alt-4.1.0, liac-arff-2.5.0, lockfile-0.12.2, MarkupSafe-2.1.1, mock-4.0.3, more-itertools-8.12.0, msgpack-1.0.3, netaddr-0.8.0, netifaces-0.11.0, packaging-20.9, paramiko-2.10.4, pastel-0.2.1, pathlib2-2.3.7.post1, pbr-5.8.0, pexpect-4.8.0, pip-22.0.4, pkginfo-1.8.2, platformdirs-2.4.0, pluggy-1.0.0, poetry-1.1.13, poetry-core-1.0.8, psutil-5.9.0, ptyprocess-0.7.0, py-1.11.0, py_expression_eval-0.3.14, pyasn1-0.4.8, pycparser-2.21, pycrypto-2.6.1, Pygments-2.12.0, pylev-1.4.0, pyrsistent-0.18.1, pytoml-0.1.21, pytz-2022.1, regex-2022.4.24, requests-2.27.1, requests-toolbelt-0.9.1, scandir-1.10.0, SecretStorage-3.3.1, semantic_version-2.9.0, setuptools-62.1.0, setuptools-rust-1.3.0, setuptools_scm-6.4.2, shellingham-1.4.0, simplegeneric-0.8.1, simplejson-3.17.6, six-1.16.0, snowballstemmer-2.2.0, sortedcontainers-2.4.0, Sphinx-4.5.0, sphinx-bootstrap-theme-0.8.1, sphinxcontrib-applehelp-1.0.2, sphinxcontrib-devhelp-1.0.2, sphinxcontrib-htmlhelp-2.0.0, sphinxcontrib-jsmath-1.0.1, sphinxcontrib-qthelp-1.0.3, sphinxcontrib-serializinghtml-1.1.0, sphinxcontrib-websupport-1.2.4, tabulate-0.8.9, toml-0.10.2, tomli-2.0.1, tomli_w-1.0.0, tomlkit-0.10.2, typing_extensions-4.2.0, ujson-5.2.0, urllib3-1.26.9, virtualenv-20.14.1, wcwidth-0.2.5, webencodings-0.5.1, wheel-0.37.1, xlrd-2.0.1, zipfile36-0.1.3, zipp-3.8.0")
conflict("Python")
load("GCCcore/11.3.0")
...
Teraz si môžeme vybrať požadovanú verziu Pythonu, napr.
Python/3.10.4-GCCcore-11.3.0:
module load Python/3.10.4-GCCcore-11.3.0
Príkazy na správu modulov môžete použiť aj vo svojich Slurm batch skriptoch.
Načítavanie modulov¶
Na načítanie požadovaného modulu použite module load alebo ml
nasledované názvom modulu:
Načítavanie modulov
module load Python/3.10.8-GCCcore-12.2.0
module list
Currently Loaded Modules:
1) GCCcore/12.2.0 6) libreadline/8.2-GCCcore-12.2.0 11) libffi/3.4.4-GCCcore-12.2.0
2) zlib/1.2.12-GCCcore-12.2.0 7) Tcl/8.6.12-GCCcore-12.2.0 12) OpenSSL/1.1
3) binutils/2.39-GCCcore-12.2.0 8) SQLite/3.39.4-GCCcore-12.2.0 13) Python/3.10.8-GCCcore-12.2.0
4) bzip2/1.0.8-GCCcore-12.2.0 9) XZ/5.2.7-GCCcore-12.2.0
5) ncurses/6.3-GCCcore-12.2.0 10) GMP/6.2.1-GCCcore-12.2.0
Závislosti
Hoci sme načítali iba jeden modul, výstup príkazu module list
ukazuje, že sa načítala celá sada modulov. Ide o závislosti
modulu Python/3.10.8-GCCcore-12.2.0.
Konflikt modulov¶
Je dôležité si uvedomiť, že spoločne je možné načítať iba moduly, ktoré sú navzájom kompatibilné. Okrem iného musia byť moduly inštalované buď rovnakým toolchainom ako už načítané moduly, alebo kompatibilným (sub)toolchainom.
Ak načítate jeden alebo viac modulov inštalovaných pomocou
toolchainu intel/2022b, ostatné moduly, ktoré načítate, by mali
byť inštalované pomocou rovnakého toolchainu.
Okrem toho je v danom čase možné načítať iba jednu verziu
každého softvérového balíka. Napríklad ak máte načítaný modul
Python/3.10.4-GCCcore-11.3.0, nemôžete v tej istej relácii
alebo skripte úlohy načítať inú verziu Pythonu, a to ani priamo,
ani nepriamo ako závislosť iného modulu, ktorý chcete načítať.
Vymazanie načítaných modulov¶
Akýkoľvek modul môžete odložiť pomocou ml unload alebo
module unload nasledovaného názvom modulu:
Odkladanie modulov
login01:~ $ module load Python/3.10.8-GCCcore-12.2.0
login01:~ $ module list
Currently Loaded Modules:
1) GCCcore/12.2.0 4) bzip2/1.0.8-GCCcore-12.2.0 7) Tcl/8.6.12-GCCcore-12.2.0 10) GMP/6.2.1-GCCcore-12.2.0 13) Python/3.10.8-GCCcore-12.2.0
2) zlib/1.2.12-GCCcore-12.2.0 5) ncurses/6.3-GCCcore-12.2.0 8) SQLite/3.39.4-GCCcore-12.2.0 11) libffi/3.4.4-GCCcore-12.2.0
3) binutils/2.39-GCCcore-12.2.0 6) libreadline/8.2-GCCcore-12.2.0 9) XZ/5.2.7-GCCcore-12.2.0 12) OpenSSL/1.1
login01:~ $ module unload GCCcore/12.2.0
login01:~ $ module list
Currently Loaded Modules:
1) zlib/1.2.12-GCCcore-12.2.0 3) bzip2/1.0.8-GCCcore-12.2.0 5) libreadline/8.2-GCCcore-12.2.0 7) SQLite/3.39.4-GCCcore-12.2.0 9) GMP/6.2.1-GCCcore-12.2.0 11) OpenSSL/1.1
2) binutils/2.39-GCCcore-12.2.0 4) ncurses/6.3-GCCcore-12.2.0 6) Tcl/8.6.12-GCCcore-12.2.0 8) XZ/5.2.7-GCCcore-12.2.0 10) libffi/3.4.4-GCCcore-12.2.0 12) Python/3.10.8-GCCcore-12.2.0
Na odloženie všetkých načítaných modulov jednoducho zadajte ;module purge`.
Ukladanie výberu modulov¶
Ak máte sadu modulov, ktoré často načítavate, môžete ich uložiť
do kolekcie. Na uloženie všetkých načítaných modulov do kolekcie
;
ml save <my_favourite_collection>
Ak si neskôr budete chcieť tieto moduly načítať, zadajte:
ml restore <my_favourite_collection>
Zoznam všetkých svojich kolekcií si môžete zobraziť pomocou:
ml savelist
Obsah konkrétnej kolekcie si môžete zobraziť pomocou:
ml describe <collection>
Na odstránenie kolekcie modulov odstráňte príslušný súbor
v adresári HOME/.lmod.d/collections/.