|
|
当前的做法比较粗糙,只适合个人自用,而不适合用于传播。大概有这些问题
1. sbatch队列名、sbatch头风格等全写死了,换集群之后这些东西基本全部推倒重来
2. 在原sobEDA脚本里塞了大篇幅私有环境变量设置,却没有明确表示哪些是做什么的,下一位用户该怎么修改
3. 把高斯用的资源也写死在脚本里,而且与slurm头不共用一个变量,想改配置得改多个地方,而且还偷偷awk改template.gjf写的配置
推荐使用btrun来管理这类任务。对于不同的HPC集群,btrun提供了btrun init来探知资源情况,对于集群上有成熟的slurm系统的情况,用户通常只需要运行btrun init然后一路按回车即可做好资源配置。关于环境变量,用户无需在sobEDA.sh内增加各种私有环境变量,只要在~/.bane/task/envs中加入sobeda.conf,并配置以下内容:
- [main]
- DESCRIPTION=sobEDA/sobEDAw
- # 默认资源可以自行自定义
- CONF_CORES=32
- # 单位:MB
- CONF_MEMORY=96000
- CONF_SPAN_NODES=false
- RAW_MODE=true
- [ENV_SETUP]
- # 这里写好g16和Multiwfn的环境变量
- # 平时怎么交g16/Multiwfn任务这里就怎么写
- [RUN_CMD_TEMPLATE]
- # ${BANETASK_SCRIPTS_PATH} 会被btrun译为~/.bane/task/scripts
- # 如果提前将sobEDA.sh复制到这里,并且确认其中的参数是你需要的,可以不必手动将sobEDA.sh复制到工作目录
- if [[ ! -f sobEDA.sh ]]; then
- cp "${BANETASK_SCRIPTS_PATH}/sobEDA.sh" ./sobEDA.sh
- fi
- bash ./sobEDA.sh
复制代码 随后,用户即可在任意准备好sobEDA所需所有输入的目录内运行短命令btrun task -t sobeda以立即完成sobEDA任务的提交:
- [gaus@login02 sobeda]$ btrun task -t sobeda
- [ok] slurm/default job=97557 script=/home/gaus/slurm_exports/sobeda/_raw.slurm :: Submitted batch job 97557; target=native-slurm queue=whhcnormal reason=mode=local_first; native scheduler queue matched; queue=whhcnormal
- [gaus@login02 sobeda]$
复制代码
若用户想要临时指定内存分配/指定核数/指定提交队列时,还可以使用-m -n -q等命令行参数进行手动覆盖,例如btrun task -q 9654 -t sobeda -n 24 -m 96000。
|
|