外观
Module 环境加载使用方法
集群中的编译器、MPI、CUDA、科学计算软件和常用生信工具通常通过 module 命令管理。使用 module 可以按需加载软件环境,避免不同版本的软件互相影响。
什么时候需要使用 module
如果命令行提示找不到某个软件,或者需要指定特定版本的编译器、MPI、CUDA、GROMACS、VASP、Gaussian 等软件,可以先查看并加载对应 module。
查看可用软件
登录节点后,可以使用下面命令查看当前可加载的软件模块:
bash
module av也可以按软件名称筛选:
bash
module av cuda
module av gcc
module av mpi
module av gromacs输出中通常会按目录分类,例如:
text
/hpcfs/fpublic/app/modulefiles/Compilers
/hpcfs/fpublic/app/modulefiles/Libraries
/hpcfs/fpublic/app/modulefiles/Science常见类别包括:
| 类别 | 示例 |
|---|---|
| 编译器 | gcc、nvhpc、aocc-compiler |
| 运行库 | cuda、glibc、node |
| MPI | mpi/intel、mpi/openmpi、mpi/mpich |
| 科学计算 | gromacs、vasp、gaussian、orca、cp2k |
| 生信与结构工具 | ncbi-blast、rosetta、relion、PyMOL |
加载软件环境
使用 module load 加载指定软件或版本:
bash
module load mpi/intel/oneapi/2023.1加载后,相关命令会加入当前 shell 的环境变量中。可以用 which 检查命令来源:
bash
which icc
which ifort
which mpirun示例输出:
text
/hpcfs/fpublic/app/intel/oneapi/2023.1/compiler/2023.1.0/linux/bin/intel64/icc
/hpcfs/fpublic/app/intel/oneapi/2023.1/compiler/2023.1.0/linux/bin/intel64/ifort
/hpcfs/fpublic/app/intel/oneapi/2023.1/mpi/2021.9.0/bin/mpirun查看已加载模块
查看当前 shell 中已经加载的软件模块:
bash
module list示例:
text
Currently Loaded Modulefiles:
1) mpi/intel/oneapi/2023.1切换软件版本
如果需要换用其他版本,建议先卸载旧版本,再加载新版本:
bash
module unload mpi/intel/oneapi/2023.1
module load mpi/intel/2020u4
module list也可以使用 module purge 清空当前已加载模块,再重新加载需要的软件:
bash
module purge
module load mpi/intel/2020u4不要混用不兼容的软件版本
同一个 shell 中不要同时混用多套 MPI、CUDA 或编译器环境。提交作业前建议用 module list 确认环境是否符合预期。
在 Slurm 作业脚本中使用
批量作业建议在脚本开头显式加载所需环境,保证作业在计算节点上运行时环境一致。
bash
#!/bin/bash
#SBATCH --job-name=test-module
#SBATCH --partition=qcpu
#SBATCH --cpus-per-task=4
#SBATCH --time=01:00:00
#SBATCH --output=%x_%j.out
module purge
module load mpi/intel/oneapi/2023.1
module list
which mpirun
mpirun -np 4 ./your_program命令补全
module 支持 Tab 补全。输入模块名称的一部分后按 Tab,可以补全模块路径或查看可选版本。

常用命令速查
| 命令 | 作用 |
|---|---|
module av | 查看可用模块 |
module av 关键词 | 按关键词筛选模块 |
module load 模块名 | 加载模块 |
module unload 模块名 | 卸载模块 |
module list | 查看已加载模块 |
module purge | 清空当前已加载模块 |
常见问题
加载后仍然找不到命令
先运行 module list 确认模块是否已加载,再用 which 命令名 检查命令路径。如果仍找不到,可能是模块名称或版本选择不正确。
程序运行时库版本冲突
先执行 module purge 清空环境,再只加载当前任务需要的软件模块。不要在同一个任务里混用多套 MPI、CUDA 或编译器。
不知道应该加载哪个版本
优先查看应用软件文档或咨询管理员。正式任务提交前建议先用小数据测试环境是否可用。
