我的博客:我的博客
原文:metaGEM使用小记(解决各种问题)2024.1(二)
metaGEM使用小记(解决各种问题)2024.2(二)
书接上文,貌似配置还有点问题。跑了半天以后迟迟看不到结果,htop
一看CPU占用几乎为0,应该是没跑起来,squeue
再一看,状态是PD,意思是等待,正常情况应该是R。于是我有网上找了下原因,说只有空闲条件满足job的运行条件才会运行。
- 我做了以下操作:
- 先
scancle
掉所有队列里的人物 - 修改
slurm.config
的参数稍大一些 - 重新启动
sudo systemctl restart slurmd & sudo systemctl restart slurmctld
- 更改
bash metaGEM.sh -t fastp -j 2 -c 2 -m 10 -h 2
中m(内存)的大小和j(任务数量)的大小 - 运行报错
- 先
sbatch: error: Memory specification can not be satisfied
sbatch: error: Batch job submission failed: Requested node configuration is not available
再排查一下scontrol show nodes
我们熟悉的报错又回来了(状态又是drain)
查了好久好久在sudo cat /var/log/slurm-llnl/slurmctld.log
里面找到了错误
就是NodeName那一行的配置Sockets和CoresPerSocket不仅要小于上一章讲的bash cxc.sh
的文件中的值,还要小于日志文件中数字前面的值,如(20<SocketsCoresPerSocket) 那么SocketsCoresPerSocket的积要小于20才可以。
如果日志长这样那么八成就可以启动了
然后我们输入,改变节点的状态成空闲(注意一定要是sudo权限)
sudo scontrol update NodeName=your_node_name State=idle
1.问题:成功运行程序但是瞬间完成,并无输出结果
排查!
在/var/log/slurm-llnl/slurmctld.log
里面显示
[2024-01-29T15:37:19.292] sched: Allocate JobId=73 NodeList=your_computer #CPUs=8 Partition=your_computer
[2024-01-29T15:37:20.367] _job_complete: JobId=73 WEXITSTATUS 1
[2024-01-29T15:37:20.367] _job_complete: JobId=73 done
再排查/var/log/slurm-llnl/slurmd.log
无法创建输出文件
这属于slurm的BUG之一,只能先创建文件然后再创建文件夹 所以我们是能手动mkdir log
然后再运行
2.运行时日志文件中报错/usr/bin/bash: line 2: activate: No such file or directory
猜测是这里面envs/metagem
的工作路径有变化,所以我们改成绝对路径试一下
set +u;source activate envs/metagem;set -u;
如何更改,提交给slurm处理的脚本是由snakemake生成的,因此我们找到这一句
source activate {config[envs][metagem]}
发现读取的config是config.ymal文件
应该在config.yaml文件里改这里,改成绝对路径
原来不是这个问题(服了)
当使用source activate env_name
时,设置conda路径到环境变量即可
export PATH="/home/gc/anaconda3/bin:$PATH"
另外再shell脚本中启用conda环境一定要使用source不能使用conda。
成功运行(泪目)!!!
成功运行(泪目)!!
成功运行(泪目)!
成功运行(泪目
成功运行(泪
成功运行(
成功运行
成功运
成功
成