|
|
本帖最后由 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 好像也可开始运行。 这个有点不确定, 欢迎懂得人指教。
|
-
附件1.png
(228.04 KB, 下载次数 Times of downloads: 45)
-
附件2.png
(45.28 KB, 下载次数 Times of downloads: 42)
-
附件3.png
(73.18 KB, 下载次数 Times of downloads: 34)
|