Linux环境变量与软件环境
理解PATH、线程变量和模块,避免破坏软件依赖关系。
阅读本篇目录
常见环境变量#
| 变量 | 用途 | 使用原则 |
|---|---|---|
PATH |
查找可执行程序 | 优先由公共模块配置,不覆盖原有系统路径 |
LD_LIBRARY_PATH |
动态库查找 | 不随意混入其他MPI、CUDA和编译器库 |
OMP_NUM_THREADS |
OpenMP线程数 | 应与模板中--cpus-per-task和程序支持匹配 |
SLURM_NTASKS |
Slurm分配的任务数 | 通常用于MPI启动,含义以程序模板为准 |
CUDA_VISIBLE_DEVICES |
Slurm分配的可见GPU | 保留调度器设置,不改为整机显卡编号 |
查看当前值:
printf '%s\n' "$PATH"
printf '%s\n' "${OMP_NUM_THREADS:-未设置}"
module list
不要把含密码、API密钥或私密路径的完整环境输出公开粘贴。
当前Shell与长期设置#
export OMP_NUM_THREADS=1
这只影响当前Shell及之后启动的子进程。将命令写入个人Shell启动文件会影响以后的登录,可能改变公共模块和Conda行为;修改前备份个人文件,逐项确认必要性。
不要把某次GPU作业的可见设备、绝对程序路径或临时测试库固定写入通用启动文件。不同科学程序应使用各自匹配模块和Slurm脚本。module使用
并行不是变量越大越快#
CPU任务按56核整节点规则配置,进程数乘线程数与模板一致。只有程序实际支持OpenMP和对应加速路线时,增加线程才可能有效;56MPI再每进程56线程会造成严重超额并行。
Conda环境、MPI、数学库和GPU依赖不要全部叠加进一个长期会话。个人Python环境参见Miniconda使用。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。