2.Module 指令實際範例說明 === ## ml 操作說明 可以使用 ml 取代 module 的指令,以下列舉最常使用指令的使用方式,皆以 $ ml 作為範例: ### module list --- :::success 列出已套用的 modules `$ ml / ml list` ``` [user@cbi-lgn01 ]$ ml list No modules loaded [user@cbi-lgn01 ]$ ml list Currently Loaded Modules: 1) cuda/12.2 ``` ::: ### module avail / ml av --- :::success 列出所有可以被載入的module資訊 `$ ml avail / ml av` ``` [user@cbi-lgn01 ]$ ml av ------------------------- /work/HPC_software/LMOD/public/modulefiles ------------------------- cmake/3.24.2 hwloc/2.7.2 miniconda3/24.11.1 os pmix/4.2.9 singularity/3.7.1 ------------------------- /work/HPC_software/LMOD/nvidia/modulefiles ------------------------- cuda/11.6 cuda/12.4 (D) nvhpc/24.7 openmpi/5.0.5 cuda/12.2 nvhpc-hpcx-cuda12/24.7 openmpi/4.1.6 (D) ucx/1.16.0 ------------------------- /work/HPC_software/LMOD/intel/modulefiles -------------------------- advisor/latest dpl/2022.6 (D) advisor/2024.2 (D) ifort/latest ccl/latest ifort/2024.2.1 (D) ccl/2021.13.1 (D) ifort32/latest compiler-intel-llvm/latest ifort32/2024.2.1 (D) ... ``` ::: ### module spider --- ::::success ::: spoiler 搜尋所有可能的模組 `$ ml spider` ``` [u5846412@cbi-lgn01 ~]$ ml spider openmpi ---------------------------------------------------------------------------------------------------- openmpi: ---------------------------------------------------------------------------------------------------- Description: MPI implementation Versions: openmpi/4.1.6 openmpi/5.0.5 ---------------------------------------------------------------------------------------------------- For detailed information about a specific "openmpi" package (including how to load the modules) use the module's full name. Note that names that have a trailing (E) are extensions provided by other modules. For example: $ module spider openmpi/5.0.5 ---------------------------------------------------------------------------------------------------- ``` ``` [user@cbi-lgn01 ]$ ml spider openmpi/4.1.6 ---------------------------------------- openmpi: openmpi/4.1.6 ---------------------------------------- Description: MPI implementation This module can be loaded directly: module load openmpi/4.1.6 Additional variants of this module can also be loaded after loading the following modules: cuda/12.2 Help: This module loads the OpenMPI ``` ::: :::: ### module show / display --- :::success ::::spoiler 顯示模組設定內容 `$ ml show / ml display` ``` [user@cbi-lgn01 ]$ ml show cuda/12.2 ------------------------------------ /work/HPC_software/LMOD/nvidia/modulefiles/cuda/12.2.lua: ------------------------------------ help([[CUDA is a parallel computing platform and programming model created by NVIDIA and implemented by the GPUs that they produce. ]]) whatis("Name: CUDA Toolkit") whatis("Version: 12.2") whatis("Category: cuda") whatis("Description: CUDA is a parallel computing platform and programming model") whatis("URL: https://developer.nvidia.com/cuda-toolkit") family("cuda") prepend_path("MODULEPATH","/work/HPC_software/LMOD/nvidia/dependencies/cuda-12.2") setenv("CUDA_HOME","/work/HPC_software/LMOD/nvidia/packages/cuda-12.2") setenv("CUDA_PATH","/work/HPC_software/LMOD/nvidia/packages/cuda-12.2") setenv("CUDA_ROOT","/work/HPC_software/LMOD/nvidia/packages/cuda-12.2") prepend_path("PATH","/work/HPC_software/LMOD/nvidia/packages/cuda-12.2/bin") prepend_path("CPATH","/work/HPC_software/LMOD/nvidia/packages/cuda-12.2/include") prepend_path("LD_LIBRARY_PATH","/work/HPC_software/LMOD/nvidia/packages/cuda-12.2/lib64") prepend_path("LIBRARY_PATH","/work/HPC_software/LMOD/nvidia/packages/cuda-12.2/lib64") ``` ::: ### module load / add --- :::success 載入指定的 modules 若沒有指定特定版本則自動判讀default版本。 `$ ml load / ml add` ``` [user@cbi-lgn01 ]$ ml load cuda ----------------- loading CUDA 12.4 ----------------- ``` ``` [user@cbi-lgn01 ]$ ml load openmpi/4.1.6 ------------------------------------- loading OpenMPI 4.1.6 with UCX 1.16.0 setting envs: SLURM_MPI_TYPE=pmi2 UCX_TLS=all UCX_MEMTYPE_CACHE=n ------------------------------------- ``` ::: ### module save / s --- :::success ::::spoiler 儲存模組組合 `$ ml save / ml s` ``` [user@cbi-lgn01 ]$ ml list Currently Loaded Modules: 1) openmpi/4.1.6 2) cuda/12.4 [user@cbi-lgn01 ]$ ml save openmpi_cuda Saved current collection of modules to: "openmpi_cuda" ``` ::: ### module restore / r --- :::success ::::spoiler 讀取儲存的模組組合 `$ ml restore / ml r` ``` [user@cbi-lgn01 ]$ ml No modules loaded [user@cbi-lgn01 ]$ ml r openmpi_cuda Restoring modules from user's openmpi_cuda ------------------------------------- loading OpenMPI 4.1.6 with UCX 1.16.0 setting envs: SLURM_MPI_TYPE=pmi2 UCX_TLS=all UCX_MEMTYPE_CACHE=n ------------------------------------- ----------------- loading CUDA 12.4 ----------------- [user@cbi-lgn01 ]$ ml Currently Loaded Modules: 1) openmpi/4.1.6 2) cuda/12.4 ``` ::: ### module savelist --- :::success 列出已儲存的模組組合 `$ ml savelist` ``` [user@cbi-lgn01 ]$ ml savelist Named collection list : 1) openmpi_cuda ``` ::: ### module unload / del / rm --- :::success 移除讀取的模組設定 `$ ml unload / ml del / ml rm ` ``` [user@cbi-lgn01 ]$ ml Currently Loaded Modules: 1) openmpi/4.1.6 2) cuda/12.4 [user@cbi-lgn01 ]$ ml del cuda/12.4 [user@cbi-lgn01 ]$ ml Currently Loaded Modules: 1) openmpi/4.1.6 ``` ::: ### module purge --- :::success 清除所有讀取的模組設定 `ml purge` ``` [user@cbi-lgn01 ]$ ml Currently Loaded Modules: 1) openmpi/4.1.6 2) cuda/12.4 [user@cbi-lgn01 ]$ ml purge [user@cbi-lgn01 ]$ ml No modules loaded ``` ::: ### module help --- :::success 查詢模組設定說明 `$ ml whatis / ml help` ``` [user@cbi-lgn01 ]$ ml whatis cuda/12.2 cuda/12.2 : Name: CUDA Toolkit cuda/12.2 : Version: 12.2 cuda/12.2 : Category: cuda cuda/12.2 : Description: CUDA is a parallel computing platform and programming model cuda/12.2 : URL: https://developer.nvidia.com/cuda-toolkit [user@cbi-lgn01 ]$ ml help cuda/12.2 ------------- Module Specific Help for "cuda/12.2" -------------------- CUDA is a parallel computing platform and programming model created by NVIDIA and implemented by the GPUs that they produce. ``` :::