Skip to content

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

常见类别包括:

类别示例
编译器gccnvhpcaocc-compiler
运行库cudaglibcnode
MPImpi/intelmpi/openmpimpi/mpich
科学计算gromacsvaspgaussianorcacp2k
生信与结构工具ncbi-blastrosettarelionPyMOL

加载软件环境

使用 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 命令补全示例

常用命令速查

命令作用
module av查看可用模块
module av 关键词按关键词筛选模块
module load 模块名加载模块
module unload 模块名卸载模块
module list查看已加载模块
module purge清空当前已加载模块

常见问题

加载后仍然找不到命令

先运行 module list 确认模块是否已加载,再用 which 命令名 检查命令路径。如果仍找不到,可能是模块名称或版本选择不正确。

程序运行时库版本冲突

先执行 module purge 清空环境,再只加载当前任务需要的软件模块。不要在同一个任务里混用多套 MPI、CUDA 或编译器。

不知道应该加载哪个版本

优先查看应用软件文档或咨询管理员。正式任务提交前建议先用小数据测试环境是否可用。

Copyright 2021 All Rights Reserved 生物设计中心 版权所有