我的计划包含许多作业以及每个作业中的许多脚本任务。
这些脚本任务大多数都依赖于我每次加载的相同 5 或 6 个模块,例如:
module load python/argparse_py2.7/1.2.1
module load python/python/2.7.13
有没有办法只加载一次并让所有后续任务都能够访问它们,而不是为每个任务加载这些环境模块?
一旦从脚本或交互式 shell 会话加载模块,该模块将在脚本或会话的其余部分保持加载状态,并且仍然在由主 shell 或启动的子 shell 启动的子脚本的上下文中加载由主要会议进行。
因此,在启动许多子任务/脚本的脚本上下文中,您应该将
module load
命令放在脚本开头附近,以使这些模块能够用于其余的执行或子执行。
这对于交互式 shell 会话也有效。
此外,新版本的
module
命令提供了一种方法来save
加载的模块上下文以及稍后(在脚本或其他shell会话中)restore
。
这是一个模块集合使用的小例子:
$ module purge
$ module load python/argparse_py2.7/1.2.1 python/python/2.7.13
$ module save pythonjobenv
$ module savelist
Named collection list:
1) pythonjobenv
$ module purge
$ module restore pythonjobenv
Restoring collection pythonjobenv
Loading module: python/argparse_py2.7/1.2.1 python/python/2.7.13