计算化学公社

标题: NAMD/lambda-REMD segmentation fault [打印本页]

作者
Author:
yibaigui    时间: 2020-11-2 14:30
标题: NAMD/lambda-REMD segmentation fault
本帖最后由 yibaigui 于 2020-11-7 20:46 编辑

大家好
我计划做一个NMAD FEP/ lambda-REMD 计算两个小分子配体对一个蛋白靶点的结合自由能差异 (relative binding affinity by free energy pertubation), 脚本文件均有CHARMM-GUI input generator 产生。
一共有5个脚本,其中1,2 非常简单,第三个为关键运行脚本如下图附件,其中已经列出我所使用的cluster node 的配置信息,以及namd 的运行代码,namd2 equ_$system.namd >...一行已经运行完毕,没有问题。(实际运行时,加了+p32, 以使得namd/2.13-multicore 使用32个cpu 进行32 threads 的计算)。 问题出在后面的 namd2 + replicas 32... 环节, 错误提示是segmentation fault, 通常的解释是首先怀疑磁盘空间不够用,已经尝试将PBS -l mem=16gb, 增加至 —PBS -l mem=32gb, 仍然出现同样的报错。同样也已经尝试 ulimit -s unlimited, 无效。

为了做trouble shotting, 我没有一次提交附件1的pbs 文件至我所使用的cluster, 也就是没有使用batch 模式,而是使用interactive job模式,即首先申请#PBS -l 所要求的资源,分配我node 后, 手动load 所需运行环境:module load intel/18.0.1.163
                                                                                                module load openmpi/3.1.2-intel
                                                                                                module load namd/2-13-multicore (or namd/2-13-mpi ???)

现在已知代码namd2 equ_$system... 一行运行无错误, 因为手动单独运行该行命令(实际运行时加了 +p32, 因为申请了32 块CPU),几小时后可成功得到结果 equ_site.out (namd/2.13-multicore)

好像无法单独运行 namd2 +replicas ... , 因为互相迭代关系的存在?我尝试单独运行第一行 replicas 即变量为0时 提示restart number wrong。  

为了一起运行后面有问题的 namd2 +replicas ,,,, 我删除了没问题的 equ_$system 行, 剩下的部分单独做了一个附件2的脚本。
然后使用命令“csh 附件2.csh” 提交该csh 脚本(node 默认语言环境为bash,而charm-gui 生成脚本为csh),然后就会出现上面提到的segmentation fault.  而是时大量刷屏出现的那种,感觉上replicas 迭代试图运行,但是每一个都遇到该segmentation fault问题,单仅为猜测。

有几个问题:1 namd/2.13-multicore 是否支持 REMD simulation ?
                     2. 如果需要load namd/2.13-mpi, 如何运行?namd2 ? mpirun ?
                     3. 是否必须要通过replica exchange MD (REMD) 才能做FEP ?
                    4. 关于bash/csh 的切换,是否恰当?
谢谢!
-------------------------2020-11-06 更新--------------------------------------------------------------------------------
问题在各位朋友的帮助和自己的尝试下已初步得到解决,更新如下

1. 在bash 环境下提交csh 语句,只要文件首行为#!/usr/bin/csh, 并且系统支持csh, 即使当前环境为bash, 也可直接提交运行,只需输入 csh myscript.csh, 我的例子里为 "csh 附件2.csh", 请注意文件扩展名和首行。关于如何查询你的linux系统支持几种语言环境(shell)以及是否支持csh, 使用"cat /etc/shells" 即可列出你的系统所有支持的shell.
2.  Namd/2.13-multicore 是否支持replica exchange MD 仍不太清楚,结合各位的回复来看,貌似是不支持. namd/2.13-mpi 是支持的,使用时注意需要预先有Intel/18...和 openmpi/3.1.2-Intel. 如果你使用计算机HPC Cluster (集群,机群?对汉语这个翻译不敏感,,)如果你直接尝试 module load namd/2.13-mpi 会报错,请安错误提示预先前面提到的两个module。
3. 如上1 所描述,我的附件2.csh 文件首行为#!/usr/bin/csh  内容为 namd 在mpi 下的运行指令,因为之前一直出错,我这次只单独运行了第一行作为测试,具体为:mpirun --oversubscribe -n 32 /apps/namd/2.13-mpi/arch/Linux-x86_64-icc/namd2  +replicas 32 fep_site.conf --source FEP_remd_softcore.namd +stdout output_site/%d.log 。 请注意这行代码如果删除overSubscribe将出现错误not enough slots.., 加入改指令不是完美解决方案,但再次不深究,目标是先跑起来。其次请注意-n 32这个32 必须要能被 后面的 +replicas 32 这个数字所整除,你可以用 +replicas 16 比如, 以保证每个Replicas 可以分到至少一个并且是同样多的cpu
然后非常重要一点,基于不同的运行平台你可能需要告诉mpi 你的namd 的绝对安装路径!!我在使用namd/2.13-multi core 做其他模拟时,已经养成习惯,即一旦已经完成module load NAMD/2.13-multicore 接下来我只需直接输入namd2 就能完成后续模拟, but !! It is not the case when you use NAMD/2.13-mpi , 因为一旦调用了mpirun -n 32, 就需要后面紧跟上namd2 的绝对路径,如果你feel lucky 只跟一个namd2 只会报错 mpirun can't find executable blablabla..... .
4. 一个单纯的REMD command line 应该看起来比我上面的看起来短一些,可能没有我的--source 那一串,因为我在做一个FEP的REMD可能更复杂一点。最后请注意规定好结果文件输出路径,像我在做32 个replicas,应提前已经有对应的32个文件夹被创建以等待数据写入,我的例子仅为测试,没有体现出来。
5. 最后以一个问题结束, 我看的有人提到至少需要两个cpu (也有人习惯称为processors) 对应一个replica , 但我自己使用32 对32 好像也可开始运行。 这个有点不确定, 欢迎懂得人指教。


作者
Author:
fhh2626    时间: 2020-11-2 17:22
NAMD跑multiple replica的作业要用MPI或者netlrts的版本,multicores版本好像不行
作者
Author:
tjuptz    时间: 2020-11-2 17:25
fhh2626 发表于 2020-11-2 17:22
NAMD跑multiple replica的作业要用MPI或者netlrts的版本,multicores版本好像不行

借楼问下老师vmd writepsf产生的psf可以直接用于namd模拟吗
作者
Author:
fhh2626    时间: 2020-11-3 10:25
tjuptz 发表于 2020-11-2 17:25
借楼问下老师vmd writepsf产生的psf可以直接用于namd模拟吗

如果VMD之前读取过PSF信息的话就可以
作者
Author:
tjuptz    时间: 2020-11-3 10:44
fhh2626 发表于 2020-11-3 10:25
如果VMD之前读取过PSF信息的话就可以

我是根据连接关系用topotools命令产生的,type是根据小分子的str指定的,因为小分子我我用psfgen产生失败了
作者
Author:
yibaigui    时间: 2020-11-3 12:29
fhh2626 发表于 2020-11-2 17:22
NAMD跑multiple replica的作业要用MPI或者netlrts的版本,multicores版本好像不行

谢谢回复。请问mpi 版本的运行命令是什么? 好像namd2 不对呢,我用mpirun namd2 也不对。
作者
Author:
fhh2626    时间: 2020-11-3 13:43
yibaigui 发表于 2020-11-3 12:29
谢谢回复。请问mpi 版本的运行命令是什么? 好像namd2 不对呢,我用mpirun namd2 也不对。

mpirun -n 8 xxx/namd2 +replicas 4 xxxxxxx.namd +stdout xxxxxxxx.%d.log

作者
Author:
fhh2626    时间: 2020-11-3 13:43
tjuptz 发表于 2020-11-3 10:44
我是根据连接关系用topotools命令产生的,type是根据小分子的str指定的,因为小分子我我用psfgen产生失败 ...

我感觉不行
作者
Author:
yibaigui    时间: 2020-11-5 17:22
fhh2626 发表于 2020-11-3 13:43
mpirun -n 8 xxx/namd2 +replicas 4 xxxxxxx.namd +stdout xxxxxxxx.%d.log

不好意思,我试了试还是运行不起来。错误是namd2 executable can’t find. 麻烦再问下,mpirun -n 8 xxx/namd2 中的xxx是指的mpi 版本的namd的安装路径吗,还是要事先定义个hostfile? 我不是自己安装的,不太清楚安装位置,每次都是使用module load namd/2.13-mpi 调用,我试图用module avail namd/2.13-mpi寻找安装位置,但是给出的文件夹貌似是只含有namd/2.13-multicore 和namd/2.13-mpi两个文件,而且只能load其中一个每次。
作者
Author:
tanshy    时间: 2021-10-16 17:27
感谢楼主详细地经验分享。用charmm-gui尝试NAMD FEP/λREMD遇到几个问题,
和楼主一样也是遇到一样的报错,用的NAMD版本是NAMD 2.14b1,在charmm-GUI网站上看NAMD必须要是源码自己编译的,不能是二进制解压缩文件包?请教各位老师几个问题:
1、charmmgui必须使用源码自编译的NAMD吗?自己编译总是报错。有用非源码自编译的NAMD跑成功的吗?
2、NAMD 2.14b1版本支持REMD吗?NAMD_3.0alpha9_Linux-x86_64-multicore-CUDA版本支持REMD吗?




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3