计算化学公社

标题: 最新版NAMD的编译安装 [打印本页]

作者
Author:
fhh2626    时间: 2018-9-5 16:29
标题: 最新版NAMD的编译安装
本帖最后由 fhh2626 于 2024-7-16 10:58 编辑

2024-7-16,对教程进行更新

2024-7-4,注:NAMD 3.0正式版已经在官网发布,如果没有特殊情况的话不用编译了,直接下载官网的二进制包就行
2022-11-18,按照最新版NAMD修改了教程


在这里下载NAMD Nightly version,建议下载main branch
https://gitlab.com/tcbgUIUC/namd

懒得申请权限的可以在这里下载,不过版本较老:
https://www.ks.uiuc.edu/Research/namd/

在这里下载最新版colvars模块
http://colvars.github.io/

在这里下载OpenMM(2024-7-6:目前建议下载8.1.2)
https://github.com/openmm/openmm


下载本文提供的NAMDlib.zip附件

然后解压NAMD、Colvars和OpenMM
tar xvf NAMD_Git-2018-08-23_Source.tar.gz
tar xvf colvars-master.tar.gz
tar xvf openmm-7.7.0.tar.gz

更新NAMD中的Colvars,注意编译Colvars还需要OpenMM中的Lepton
export OPENMM_SOURCE=xxxxxxxxxxxxxxxxxxx
sh ./colvars-master/update-colvars-code.sh ./NAMD_Git-2018-08-23_Source

解压NAMD需要的libraries

mv NAMDlib.zip NAMD_Git-2018-08-23_Source
cd NAMD_Git-2018-08-23_Source/
unzip NAMDlib.zip

解压编译charm并行模块

tar xvf charm-6.8.2.tar
cd charm-6.8.2
./build
编译时会问几个问题,按照实际情况回答,我是塔式服务器,仅供参考

Are you building to run just on the localmachine, and not across multiple nodes? [y/N] (Y)
[新版本增加了一个关于GPU的问题],选N
Do you want to specify a compiler? [y/N] (N)
Do you want to specify any Charm++ buildoptions, such as fortran compilers? [y/N] (N)
Choose a set of compiler flags [1-5] (3)
       1) none
       2) debug mode                       -g -O0
       3) production build [default]       --with-production
       4) production build w/ projections  --with-production --enable-tracing
       5) custom
What do you want to build? (1)
       1) Charm++ [default] (choose this if you are building NAMD)
       2) Charm++ and AMPI
       3) Charm++, AMPI, ParFUM, FEM and other libraries
Do you want to compile in parallel? (5)
       1) No
       2) Build with -j2
       3) Build with -j4
       4) Build with -j8
       5) Build with -j16 [default]
       6) Build with -j32
       7) Build with –j
Do you want to start the build now? [Y/n] (Y)

然后配置NAMD

cd ..
没有GPU的话就去掉--with-cuda和后面的部分
./config Linux-x86_64-g++ --with-cuda --with-single-node-cuda --cuda-prefix /usr/local/cuda
cd Linux-x86_64-g++/

修改配置文件,加入CHARM的绝对路径
nano Make.config
在里面找到:
CHARM = $(CHARMBASE)/$(CHARMARCH)
把=后面的部分改成绝对路径,如
/home/xxxxxxxxxxxxxxxx/NAMD_Git-2018-08-23_Source/charm-6.8.2

对于Ubuntu用户,可能需要在编译选项中加入-no-pie
nano ../arch/Linux-x86_64-g++.arch
找到CXXOPTS = -O3 -fexpensive-optimizations -ffast-math,在后面加上-no-pie


最后编译
make depends
make –j16



作者
Author:
meatball1982    时间: 2018-10-1 10:38
LZ好,看了帖子,想尝试一下。
文中写的“下载本文提供的NAMDlib.zip附件”
找了半天,没找到。能给点提示不,还上没upload上。

作者
Author:
fhh2626    时间: 2018-10-4 14:30
meatball1982 发表于 2018-10-1 10:38
LZ好,看了帖子,想尝试一下。
文中写的“下载本文提供的NAMDlib.zip附件”
找了半天,没找到。能给点提 ...

(, 下载次数 Times of downloads: 877)

之前忘了。。尴尬



作者
Author:
meatball1982    时间: 2018-10-7 10:08
fhh2626 发表于 2018-10-4 14:30
之前忘了。。尴尬

谢谢LZ。
作者
Author:
ene    时间: 2019-4-17 16:52
本帖最后由 ene 于 2019-4-17 16:54 编辑

貌似编译NAMD要依赖FFTW,sFFTW和tcl8.5,没有的话可能需要安装一下
作者
Author:
fhh2626    时间: 2019-4-17 16:57
ene 发表于 2019-4-17 16:52
貌似编译NAMD要依赖FFTW,sFFTW和tcl8.5,没有的话可能需要安装一下

是的,附件里面提供的NAMDlib就是这两个东西,直接解压到源代码目录就可以了,省事
作者
Author:
ene    时间: 2019-4-17 17:13
fhh2626 发表于 2019-4-17 16:57
是的,附件里面提供的NAMDlib就是这两个东西,直接解压到源代码目录就可以了,省事

原来如此,没仔细看NAMDlib里面有什么
作者
Author:
cadz    时间: 2019-5-14 14:54
谢谢!编译成功。可以试试不同arch。
作者
Author:
ifltnm    时间: 2019-8-16 17:40
./config Linux-x86_64-g++ --with-cuda --cuda-prefix/usr/local/cuda

请问,当前目录是?
作者
Author:
ifltnm    时间: 2019-8-18 08:55
http://bbs.keinsci.com/thread-10815-1-1.html

跟着楼主走,最后一步出现了错误,make: *** [Makefile:473: namd2] Error 1

难道需要单独安装namd2么?谢谢
作者
Author:
ifltnm    时间: 2019-8-18 10:04
http://bbs.keinsci.com/thread-10815-1-1.html

请问大家安装的是2.13,2.13b1还是2.13b2呢?谢谢
作者
Author:
loveqshow    时间: 2019-10-19 21:36
cadz 发表于 2019-5-14 14:54
谢谢!编译成功。可以试试不同arch。

编译成功 会反馈什么信息呢 ?
作者
Author:
loveqshow    时间: 2019-10-21 21:04
cadz 发表于 2019-5-14 14:54
谢谢!编译成功。可以试试不同arch。

HELLO
作者
Author:
cadz    时间: 2019-10-23 01:24
编译正常结束就可以了。
作者
Author:
sophie940122    时间: 2019-11-19 09:32
make: /home/Downloads/NAMD_Git-2019-11-18_Source/charm-6.10.0-pre/bin/charmc: Command not found
Makefile:666: recipe for target 'inc/Node.decl.h' failed
make: *** [inc/Node.decl.h] Error 127

请问最后make之后这样报错是为什么呢?我安装的是nightly version的最新版本。
作者
Author:
fhh2626    时间: 2019-11-19 10:58
sophie940122 发表于 2019-11-19 09:32
make: /home/Downloads/NAMD_Git-2019-11-18_Source/charm-6.10.0-pre/bin/charmc: Command not found
Mak ...

charm++的路径没有设对吧
作者
Author:
sophie940122    时间: 2019-11-19 11:47
Make.config里的charm路径吗?检查了很多次,没有错误...
作者
Author:
fhh2626    时间: 2019-11-19 16:26
sophie940122 发表于 2019-11-19 11:47
Make.config里的charm路径吗?检查了很多次,没有错误...

你看看charmc在哪个路径
作者
Author:
need_cloth    时间: 2020-3-3 20:30
最后一步make -j16 出现错误,求大神帮忙
make: *** No rule to make target `aliased', needed by `conda'.  Stop.
作者
Author:
hhhnano    时间: 2020-3-27 16:20
最新版NAMD_Git-2020-03-26_Source按照楼主的教程编译成功!非常感谢!
作者
Author:
sayhello    时间: 2020-4-25 15:47
你好,我下载的是最新版NAMD_Git-2020-04-23_Linux-x86_64-multicore-CUDA,解压后发现里面没有charm++压缩包,所以在tar xvf charm-6.8.2.tar这一步停下来了。又尝试下载了NAMD_2.13_Linux-x86_64-multicore版本,里面也没有charm++压缩包,请问我哪里操作不对呢?
作者
Author:
fhh2626    时间: 2020-4-25 15:53
sayhello 发表于 2020-4-25 15:47
你好,我下载的是最新版NAMD_Git-2020-04-23_Linux-x86_64-multicore-CUDA,解压后发现里面没有charm++压缩 ...

你下的是binary,直接用就行了
作者
Author:
sayhello    时间: 2020-4-25 16:29
fhh2626 发表于 2020-4-25 15:53
你下的是binary,直接用就行了

你好,听了你的建议,我解压安装包,配置了环境变量后直接用

按照英文教程到制作PSF文件那一步。先输入package require psfgen,正常,然后输入topology top_all27_prot_lipid.inp,

提示ERROR: Unable to open topology file top_all27_prot_lipid.inp   MOLECULE DESTROYED BY FATAL ERROR!  Use resetpsf to start over.

我的输入字母应该是正确的,检查了好多遍,请问这是什么缘故?我是不是在安装过程少做了什么?

作者
Author:
fhh2626    时间: 2020-4-25 16:56
sayhello 发表于 2020-4-25 16:29
你好,听了你的建议,我解压安装包,配置了环境变量后直接用

按照英文教程到制作PSF文件那一步。先输 ...

你有那个top文件吗?
作者
Author:
sayhello    时间: 2020-4-25 17:11
fhh2626 发表于 2020-4-25 16:56
你有那个top文件吗?

搜索显示没有,看来这个binary版本我驾驭不了,准备下载帖子对应的版本了,是那个source code版本对吧?
作者
Author:
fhh2626    时间: 2020-4-25 17:40
sayhello 发表于 2020-4-25 17:11
搜索显示没有,看来这个binary版本我驾驭不了,准备下载帖子对应的版本了,是那个source code版本对吧?

跟NAMD版本没关系,你没那个top文件就去下那个文件啊
作者
Author:
sayhello    时间: 2020-4-26 10:17
本帖最后由 sayhello 于 2020-4-26 15:15 编辑
fhh2626 发表于 2020-4-25 17:40
跟NAMD版本没关系,你没那个top文件就去下那个文件啊
没问题了,十分感谢
作者
Author:
sayhello    时间: 2020-5-2 13:26
大佬好,我在生成参数文件和配置文件后,进行动力学模拟。

操作如下,用终端打开NAMD目录,输入namd2 /home/hello2020/Downloads/cdc20-1_min/min.conf  > /home/hello2020/Downloads/cdc20-1_min/min.log,反馈为invalid command name "namd2",这是因为什么呢?

作者
Author:
fhh2626    时间: 2020-5-2 18:01
sayhello 发表于 2020-5-2 13:26
大佬好,我在生成参数文件和配置文件后,进行动力学模拟。

操作如下,用终端打开NAMD目录,输入namd2 /h ...

./namd2
作者
Author:
HZW    时间: 2021-1-28 22:50
编译NAMD_Git-2021-01-28_Source,最后是:
charmc: Executing rm -f charmrun
rm -f moduleinit38591.C moduleinit38591.o
make: warning:  Clock skew detected.  Your build may be incomplete.
编译成功了吗?
作者
Author:
退休老干部    时间: 2021-2-3 19:48
楼主您好,我想请问一下我直接解压的binary版本,需要使用其中的ramd功能,发现README里写 “It requires NAMD to be compiled against tcl 8.3 or 8.4”,所以是需要重新编译NAMD吗?
作者
Author:
fhh2626    时间: 2021-2-4 10:49
退休老干部 发表于 2021-2-3 19:48
楼主您好,我想请问一下我直接解压的binary版本,需要使用其中的ramd功能,发现README里写 “It requires N ...

我没有用过,你试试编译好的MPI版本是不是可以跑
作者
Author:
退休老干部    时间: 2021-2-4 17:48
fhh2626 发表于 2021-2-4 10:49
我没有用过,你试试编译好的MPI版本是不是可以跑

好的,谢谢楼主
作者
Author:
退休老干部    时间: 2021-2-27 13:18
本帖最后由 退休老干部 于 2021-2-27 13:19 编辑

您好,不好意思打扰了,我想请问一下关于NAMD版本编译的问题。现在我想比较不同核数(8核,16核,32核)并行的运行速度,一个队列有16个核,如果测试32个核的话,就需要分节点了,所以我应该编译哪个版本啊,我尝试编译verbs-linux-x86_64  smp,发现build的时候就出现这样的问题了:
In file included from cpuaffinity.C:28:0:
/usr/include/infiniband/verbs.h: In function ‘verbs_context* verbs_get_ctx(const ibv_context*)’:
/usr/include/infiniband/verbs.h:924:10: error: cannot convert ‘ibv_context’ to ‘const int’ in initialization
   NULL : container_of(ctx, struct verbs_context, context);
          ^
/usr/include/infiniband/verbs.h:924:10: error: expected ‘,’ or ‘;’ before ‘*’ token
   NULL : container_of(ctx, struct verbs_context, context);
          ^
/usr/include/infiniband/verbs.h:924:10: error: ‘__mptr’ was not declared in this scope
   NULL : container_of(ctx, struct verbs_context, context);
          ^
/usr/include/infiniband/verbs.h:923:62: error: third operand to the conditional operator is of type ‘void’, but the second operand is neither a throw-expression nor of type ‘void’
  return (!ctx || (ctx->abi_compat != ((uint8_t *)NULL) - 1)) ?
                                                              ^
/usr/include/infiniband/verbs.h: In function ‘verbs_device* verbs_get_device(const ibv_device*)’:
/usr/include/infiniband/verbs.h:931:10: error: cannot convert ‘ibv_device’ to ‘const int’ in initialization
   NULL : container_of(dev, struct verbs_device, device);
          ^
/usr/include/infiniband/verbs.h:931:10: error: expected ‘,’ or ‘;’ before ‘*’ token
   NULL : container_of(dev, struct verbs_device, device);
          ^
/usr/include/infiniband/verbs.h:931:10: error: ‘__mptr’ was not declared in this scope
   NULL : container_of(dev, struct verbs_device, device);
          ^
/usr/include/infiniband/verbs.h:930:34: error: third operand to the conditional operator is of type ‘void’, but the second operand is neither a throw-expression nor of type ‘void’
  return (dev->ops.alloc_context) ?
                                  ^
Fatal Error by charmc in directory /gpfs01/home/xiafei2/yqwang/software/NAMD_2.14_Source/charm-6.10.2/verbs-linux-x86_64-smp/tmp
   Command g++ -DCMK_GFORTRAN -D_REENTRANT -I../bin/../include -D__CHARMC__=1 -I. -O3 -U_FORTIFY_SOURCE -fno-stack-protector -std=c++11 -fno-lifetime-dse -c cpuaffinity.C -o cpuaffinity.o returned error code 1
charmc exiting...
gmake: *** [cpuaffinity.o] Error 1
-------------------------------------------------
Charm++ NOT BUILT. Either cd into verbs-linux-x86_64-smp/tmp and try
to resolve the problems yourself, visit
http://charm.cs.illinois.edu/
for more information. Otherwise, email the developers at charm@cs.illinois.edu

请问这是什么原因?
作者
Author:
fhh2626    时间: 2021-2-27 15:56
退休老干部 发表于 2021-2-27 13:18
您好,不好意思打扰了,我想请问一下关于NAMD版本编译的问题。现在我想比较不同核数(8核,16核,32核)并 ...

如果你只想在当前节点运行的话就编译multicore版本,如果你有infiniband的话就编译跨节点infiniband版本
作者
Author:
退休老干部    时间: 2021-2-27 16:16
fhh2626 发表于 2021-2-27 15:56
如果你只想在当前节点运行的话就编译multicore版本,如果你有infiniband的话就编译跨节点infiniband版本

好的,谢谢。我还想请问一下跨节点跟SMP没有关系吗?
作者
Author:
fhh2626    时间: 2021-2-28 16:23
退休老干部 发表于 2021-2-27 16:16
好的,谢谢。我还想请问一下跨节点跟SMP没有关系吗?

没关系
作者
Author:
957    时间: 2021-5-25 15:46
求问按照以上安装NAMD2.13 最后一步make 出现以下error
src/colvarproxy_namd.C: In member function ‘virtual int colvarproxy_namd::setup()’:
src/colvarproxy_namd.C:252: error: ‘modifyGridObjForces’ was not declared in this scope
src/colvarproxy_namd.C: In member function ‘virtual int colvarproxy_namd::reset()’:
src/colvarproxy_namd.C:269: error: ‘modifyRequestedGridObjects’ was not declared in this scope
src/colvarproxy_namd.C: In member function ‘virtual void colvarproxy_namd::calculate()’:
src/colvarproxy_namd.C:468: error: ‘getGridObjIndexBegin’ was not declared in this scope
src/colvarproxy_namd.C:469: error: ‘getGridObjValueBegin’ was not declared in this scope
src/colvarproxy_namd.C:470: error: ‘getGridObjValueEnd’ was not declared in this scope
src/colvarproxy_namd.C:540: error: ‘modifyGridObjForces’ was not declared in this scope
src/colvarproxy_namd.C:540: error: ‘requestedGridObjs’ was not declared in this scope
src/colvarproxy_namd.C:542: error: ‘getGridObjIndexBegin’ was not declared in this scope
src/colvarproxy_namd.C:544: error: ‘getGridObjIndexEnd’ was not declared in this scope
src/colvarproxy_namd.C: In member function ‘virtual int colvarproxy_namd::init_volmap_by_id(int)’:
src/colvarproxy_namd.C:1215: error: ‘modifyRequestedGridObjects’ was not declared in this scope
src/colvarproxy_namd.C: In member function ‘virtual int colvarproxy_namd::init_volmap_by_name(const char*)’:
src/colvarproxy_namd.C:1257: error: ‘modifyRequestedGridObjects’ was not declared in this scope
make: *** [obj/colvarproxy_namd.o] Error 1
这要怎么处理呢
作者
Author:
fhh2626    时间: 2021-5-25 15:52
957 发表于 2021-5-25 15:46
求问按照以上安装NAMD2.13 最后一步make 出现以下error
src/colvarproxy_namd.C: In member function ‘vi ...

先把Linux-x86_64-g++/文件夹删了
重新config一次,然后进入Linux-x86_64-g++/文件夹
make depends
make -jxxx
作者
Author:
957    时间: 2021-5-25 16:04
fhh2626 发表于 2021-5-25 15:52
先把Linux-x86_64-g++/文件夹删了
重新config一次,然后进入Linux-x86_64-g++/文件夹
make depends

按照您说的执行了一次,还是一样的错误
作者
Author:
fhh2626    时间: 2021-5-25 16:46
957 发表于 2021-5-25 16:04
按照您说的执行了一次,还是一样的错误

你执行make depends有什么输出吗
作者
Author:
957    时间: 2021-5-26 11:29
fhh2626 发表于 2021-5-25 16:46
你执行make depends有什么输出吗

有的
checking dependencies for colvars/src/colvarparse.cpp
checking dependencies for colvars/src/colvarproxy.cpp
checking dependencies for colvars/src/colvarproxy_volmaps.cpp
checking dependencies for colvars/src/colvarproxy_replicas.cpp
checking dependencies for colvars/src/colvarproxy_tcl.cpp
checking dependencies for colvars/src/colvarscript.cpp
checking dependencies for colvars/src/colvarscript_commands.cpp
checking dependencies for colvars/src/colvarscript_commands_bias.cpp
checking dependencies for colvars/src/colvarscript_commands_colvar.cpp
checking dependencies for colvars/src/colvartypes.cpp
checking dependencies for colvars/src/colvarvalue.cpp
checking dependencies for colvars/src/nr_jacobi.cpp
checking dependencies for lepton/src/CompiledExpression.cpp
checking dependencies for lepton/src/ExpressionProgram.cpp
checking dependencies for lepton/src/ExpressionTreeNode.cpp
checking dependencies for lepton/src/Operation.cpp
checking dependencies for lepton/src/ParsedExpression.cpp
checking dependencies for lepton/src/Parser.cpp
类似于这样
作者
Author:
fhh2626    时间: 2021-5-26 11:59
957 发表于 2021-5-26 11:29
有的
checking dependencies for colvars/src/colvarparse.cpp
checking dependencies for colvars/src ...

实在不行你就下编译好的版本吧,NAMD2.13实在太老了,不知道有什么兼容性问题
作者
Author:
azero    时间: 2021-6-16 16:19
本帖最后由 azero 于 2021-6-16 16:20 编辑

奇怪,在旧笔记本是可以成功编译的

新笔记本出现了fftw的问题

can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: .rootdir/fftw/lib/libsfftw.a(wisdomio.o): relocation R_X86_64_32 against `.text' can no
t be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: .rootdir/fftw/lib/libsfftw.a(putils.o): relocation R_X86_64_32S against `.rodata' can n
ot be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: .rootdir/fftw/lib/libsfftw.a(rader.o): relocation R_X86_64_32 against symbol `fftw_twid
dle_rader' can not be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: .rootdir/fftw/lib/libsfftw.a(twiddle.o): relocation R_X86_64_32 against `.bss' can not
be used when making a PIE object; recompile with -fPIE
/usr/bin/ld: .rootdir/fftw/lib/libsrfftw.a(rexec2.o): warning: relocation in read-only section `.eh_
frame'
collect2: error: ld returned 1 exit status


解决不了,NAMDlib.zip 已经解压放进文件夹
作者
Author:
fhh2626    时间: 2021-6-17 10:10
azero 发表于 2021-6-16 16:19
奇怪,在旧笔记本是可以成功编译的

新笔记本出现了fftw的问题

ubuntu维护者在默认的gcc编译器里面加了一堆乱七八糟的选项,用默认的编译器容易出问题

这个错误需要adding the option -no-pie to CXXOPTS in the relevant arch file (eg. Linux-x86_64-g++.arch)
作者
Author:
azero    时间: 2021-6-17 13:24
fhh2626 发表于 2021-6-17 10:10
ubuntu维护者在默认的gcc编译器里面加了一堆乱七八糟的选项,用默认的编译器容易出问题

这个错误需要a ...

谢谢,按照楼主的做法试了试
最后两行是charmc: Executing rm -f charmrun
rm -f moduleinit8279.C moduleinit8279.o
应该是安装成功了

不过中途有文字
OpenMP support not enabled
应该不影响吧,笔记本装了openmpi的


penMP support not enabled

作者
Author:
d2denis    时间: 2021-8-26 10:06
NAMD_2.14_Source/Linux-x86_64-g++$ make -j24
Makefile:432: .rootdir/Plumed.inc: No such file or directory
make: *** No rule to make target '.rootdir/Plumed.inc'.  Stop.
请问必须要是有了PLUMED才能装的吗?
作者
Author:
fhh2626    时间: 2021-8-26 10:15
d2denis 发表于 2021-8-26 10:06
NAMD_2.14_Source/Linux-x86_64-g++$ make -j24
Makefile:432: .rootdir/Plumed.inc: No such file or dir ...

没见过这个错误,你是怎么操作的?
作者
Author:
d2denis    时间: 2021-8-26 10:42
本帖最后由 d2denis 于 2021-8-26 10:58 编辑
fhh2626 发表于 2021-8-26 10:15
没见过这个错误,你是怎么操作的?

基本按照您给的步骤走的,不过两个版本都是最新的:
NAMD_2.14_Source和charm-6.10.2
补充
....
是我忘了已经用plumed patch了,换了个新的电脑问题已经解决了,谢谢大佬


作者
Author:
刘金磊    时间: 2021-12-7 11:15
有谁知道这是怎么回事?
作者
Author:
jcm    时间: 2021-12-9 09:54
sophie940122 发表于 2019-11-19 09:32
**** 作者被禁止或删除 内容自动屏蔽 ****

我也是这个问题
作者
Author:
tjuptz    时间: 2022-4-3 17:17
fhh2626 发表于 2021-5-25 15:52
先把Linux-x86_64-g++/文件夹删了
重新config一次,然后进入Linux-x86_64-g++/文件夹
make depends

fu老师您好,我在编译NAMD2.12CUDA版时也是遇到了类似38#的问题,用您说的这个也是不行。
因为想用文献里一个2.12带磁场补丁包的版本,所以用的这个老版本。CPU版本编译没问题,现在试试GPU版遇到了上述问题。您还有其他建议吗?
  1. In file included from src/CudaPmeSolverUtil.C:9:0:
  2. src/CudaPmeSolverUtil.C: In member function ‘virtual void CudaFFTCompute::plan3D(int*, int)’:
  3. src/CudaPmeSolverUtil.C:51:85: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  4.    cufftCheck(cufftSetCompatibilityMode(forwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  5.                                                                                      ^
  6. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  7.    cufftResult err = stmt;      \
  8.                      ^
  9. src/CudaPmeSolverUtil.C:52:86: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  10.    cufftCheck(cufftSetCompatibilityMode(backwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  11.                                                                                       ^
  12. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  13.    cufftResult err = stmt;      \
  14.                      ^
  15. src/CudaPmeSolverUtil.C: In member function ‘virtual void CudaFFTCompute::plan2D(int*, int, int)’:
  16. src/CudaPmeSolverUtil.C:64:85: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  17.    cufftCheck(cufftSetCompatibilityMode(forwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  18.                                                                                      ^
  19. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  20.    cufftResult err = stmt;      \
  21.                      ^
  22. src/CudaPmeSolverUtil.C:65:86: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  23.    cufftCheck(cufftSetCompatibilityMode(backwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  24.                                                                                       ^
  25. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  26.    cufftResult err = stmt;      \
  27.                      ^
  28. src/CudaPmeSolverUtil.C: In member function ‘virtual void CudaFFTCompute::plan1DX(int*, int, int)’:
  29. src/CudaPmeSolverUtil.C:76:85: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  30.    cufftCheck(cufftSetCompatibilityMode(forwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  31.                                                                                      ^
  32. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  33.    cufftResult err = stmt;      \
  34.                      ^
  35. src/CudaPmeSolverUtil.C:77:86: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  36.    cufftCheck(cufftSetCompatibilityMode(backwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  37.                                                                                       ^
  38. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  39.    cufftResult err = stmt;      \
  40.                      ^
  41. src/CudaPmeSolverUtil.C: In member function ‘virtual void CudaFFTCompute::plan1DY(int*, int, int)’:
  42. src/CudaPmeSolverUtil.C:88:85: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  43.    cufftCheck(cufftSetCompatibilityMode(forwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  44.                                                                                      ^
  45. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  46.    cufftResult err = stmt;      \
  47.                      ^
  48. src/CudaPmeSolverUtil.C:89:86: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  49.    cufftCheck(cufftSetCompatibilityMode(backwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  50.                                                                                       ^
  51. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  52.    cufftResult err = stmt;      \
  53.                      ^
  54. In file included from inc/ComputePmeCUDAMgr.decl.h:7:0,
  55.                  from src/ComputePmeCUDAMgr.h:9,
  56.                  from src/CudaPmeSolver.C:5:
  57. inc/CudaPmeSolver.decl.h:1258:35: warning: ‘auto_ptr’ is deprecated (declared at /usr/include/c++/4.8.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
  58.    std::auto_ptr<SDAG::Dependency> __dep;                                       \
  59.                                    ^
  60. src/CudaPmeSolver.h:86:2: note: in expansion of macro ‘CudaPmePencilXY_SDAG_CODE’
  61.   CudaPmePencilXY_SDAG_CODE
  62.   ^
  63. src/CudaPmeSolverUtil.C: In member function ‘virtual void CudaFFTCompute::plan1DZ(int*, int, int)’:
  64. src/CudaPmeSolverUtil.C:100:85: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  65.    cufftCheck(cufftSetCompatibilityMode(forwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  66.                                                                                      ^
  67. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  68.    cufftResult err = stmt;      \
  69.                      ^
  70. src/CudaPmeSolverUtil.C:101:86: error: ‘cufftSetCompatibilityMode’ was not declared in this scope
  71.    cufftCheck(cufftSetCompatibilityMode(backwardPlan, CUFFT_COMPATIBILITY_FFTW_PADDING));
  72.                                                                                       ^
  73. src/CudaPmeSolverUtil.h:18:21: note: in definition of macro ‘cufftCheck’
  74.    cufftResult err = stmt;      \
  75.                      ^
  76. inc/CudaPmeSolver.decl.h:1911:35: warning: ‘auto_ptr’ is deprecated (declared at /usr/include/c++/4.8.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
  77.    std::auto_ptr<SDAG::Dependency> __dep;                                       \
  78.                                    ^
  79. src/CudaPmeSolver.h:114:2: note: in expansion of macro ‘CudaPmePencilX_SDAG_CODE’
  80.   CudaPmePencilX_SDAG_CODE
  81.   ^
  82. inc/CudaPmeSolver.decl.h:2715:35: warning: ‘auto_ptr’ is deprecated (declared at /usr/include/c++/4.8.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
  83.    std::auto_ptr<SDAG::Dependency> __dep;                                       \
  84.                                    ^
  85. src/CudaPmeSolver.h:142:2: note: in expansion of macro ‘CudaPmePencilY_SDAG_CODE’
  86.   CudaPmePencilY_SDAG_CODE
  87.   ^
  88. inc/CudaPmeSolver.decl.h:3517:35: warning: ‘auto_ptr’ is deprecated (declared at /usr/include/c++/4.8.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
  89.    std::auto_ptr<SDAG::Dependency> __dep;                                       \
  90.                                    ^
  91. src/CudaPmeSolver.h:177:2: note: in expansion of macro ‘CudaPmePencilZ_SDAG_CODE’
  92.   CudaPmePencilZ_SDAG_CODE
  93.   ^
  94. g++ -m64 -std=c++0x -O3 -I/app/NAMD_2.12_Source/charm-6.7.1/include -DCMK_OPTIMIZE=1 -Isrc -Iinc    -Iplugins/include -DSTATIC_PLUGIN -I.rootdir/tcl/include -DNAMD_TCL  -I.rootdir/fftw/include -DNAMD_FFTW -DNAMD_CUDA -I. -I/usr/local/cuda/include -I.rootdir/cub    -DNAMD_VERSION="2.12" -DNAMD_PLATFORM="Linux-x86_64-multicore-CUDA"  -DREMOVE_PROXYRESULTMSG_EXTRACOPY -DNODEAWARE_PROXY_SPANNINGTREE -DUSE_NODEPATCHMGR    -DUSE_CKLOOP=1 -fexpensive-optimizations -ffast-math  -o obj/DumpBench.o -c src/DumpBench.C
  95. make: *** [obj/CudaPmeSolverUtil.o] Error 1
  96. make: *** Waiting for unfinished jobs....
复制代码

作者
Author:
fhh2626    时间: 2022-4-5 11:08
tjuptz 发表于 2022-4-3 17:17
fu老师您好,我在编译NAMD2.12CUDA版时也是遇到了类似38#的问题,用您说的这个也是不行。
因为想用文献 ...

你试试用gcc7或者gcc8编译呢?
作者
Author:
tjuptz    时间: 2022-4-5 20:01
本帖最后由 tjuptz 于 2022-4-5 21:05 编辑
fhh2626 发表于 2022-4-5 11:08
你试试用gcc7或者gcc8编译呢?

换用gcc7和gcc8试了一下,还是同样的模块出问题@_@
作者
Author:
fhh2626    时间: 2022-4-6 10:39
tjuptz 发表于 2022-4-5 20:01
换用gcc7和gcc8试了一下,还是同样的模块出问题@_@

也许是你的GPU太新了,NAMD2.12不支持吧
作者
Author:
tjuptz    时间: 2022-4-6 11:06
fhh2626 发表于 2022-4-6 10:39
也许是你的GPU太新了,NAMD2.12不支持吧

硬件rtx2060,cuda10.2。可能是,毕竟版本有点老了。总之,谢谢fu老师解答。
作者
Author:
wangke    时间: 2022-8-2 15:54
各位老师好,我在运行namd3上遇到了一些小问题,我使用的namd3是从源码编译的UCX-SMP版本,编译在超算上,
运行的命令是:/HOME/scz3470/run/namd/Linux-x86_64-g++/charmrun +p16 /HOME/scz3470/run/namd/Linux-x86_64-g++/namd3 +ignoresharing +isomalloc_sync +devices 0,1 +replicas 16 fep_${system}.conf --source FEP_remd_relative.namd +stdout output_${system}/%d/job${cnt}.%d.log
我得到的反馈结果是:
FATAL ERROR: ComputeCUDAMgr::createCudaComputeNonbonded, non-bonded CUDA tables not created
FATAL ERROR: See http://www.ks.uiuc.edu/Research/namd/bugreport.html
然后我查了一下,我搜索到了,如下结果:
(, 下载次数 Times of downloads: 23)
有老师可以指点一下吗,不胜感激。

作者
Author:
fygfjhj    时间: 2023-6-5 16:11
楼主是从源码编译吗,我下载二进制包可以直接使用namd程序,想问下您这样安装和使用二进制包的效果是一样的吗
作者
Author:
fhh2626    时间: 2023-6-5 16:58
fygfjhj 发表于 2023-6-5 16:11
楼主是从源码编译吗,我下载二进制包可以直接使用namd程序,想问下您这样安装和使用二进制包的效果是一样的 ...

一般情况下是一样的
作者
Author:
Amphibiouskii    时间: 2023-7-7 10:59
更新NAMD中的Colvars,注意编译Colvars还需要OpenMM中的Lepton
export OPENMM_SOURCE=xxxxxxxxxxxxxxxxxxx
sh ./colvars-master/update-colvars-code.sh ./NAMD_Git-2018-08-23_Source

请问老师这一部分是需要自己先安装OpenMM的意思吗?如果我直接执行那个sh,会得到下面这样的输出:
  1. Detected NAMD source tree in ./NAMD_Git-2022-07-21_Source
  2. Updating ...Downloading Lepton library (used in Colvars) via the OpenMM repository
  3. Cloning into '/tmp/openmm-source-RRGVgo'...
  4. remote: Enumerating objects: 2119, done.
  5. remote: Counting objects: 100% (2119/2119), done.
  6. remote: Compressing objects: 100% (1571/1571), done.
  7. remote: Total 2119 (delta 865), reused 1182 (delta 492), pack-reused 0
  8. Receiving objects: 100% (2119/2119), 18.31 MiB | 1.08 MiB/s, done.
  9. Resolving deltas: 100% (865/865), done.
  10. .../colvars-master/update-colvars-code.sh: line 367: namd/Makefile.patch: No such file or directory
  11. ...................................................................................... done.

  12.   *************************************************
  13.     Please run "make depends" in the NAMD tree.
  14.   *************************************************
复制代码

之后make depends则会报错:
  1. Make.depends:7787: .rootdir/lepton/Make.depends: No such file or directory
  2. make: *** No rule to make target '.rootdir/lepton/Make.depends'.  Stop.
复制代码

作者
Author:
fhh2626    时间: 2023-7-7 11:11
Amphibiouskii 发表于 2023-7-7 10:59
请问老师这一部分是需要自己先安装OpenMM的意思吗?如果我直接执行那个sh,会得到下面这样的输出:

之 ...

新版本colvars需要OpenMM里面自带的Lepton组件,无需安装OpenMM

下载OpenMM最新版的源代码后,解压,然后export OPENMM_SOURCE=xxxxxxxxx

接下来可以继续这个步骤进行编译
作者
Author:
Amphibiouskii    时间: 2023-7-7 15:09
fhh2626 发表于 2023-7-7 11:11
新版本colvars需要OpenMM里面自带的Lepton组件,无需安装OpenMM

下载OpenMM最新版的源代码后,解压, ...

那这个export OPENMM_SOURCE=后面就是跟上解压后得到的openmm文件目录的绝对路径还是说直接复制这行代码?
还有一个问题是下一步中需要解压的charm++包我在源码包中没有看到,尝试下载了Nightly version和最新的3.0b3都没有在解压后的根目录中看到,是需要自己下载然后移动到NAMD的目录里吗?
作者
Author:
Amphibiouskii    时间: 2023-7-7 15:57
想了一下还是贴一下图,解压后的NAMD目录里面只有一个Make.charm好像有点相关,难道是我的解压方式不对吗
作者
Author:
fhh2626    时间: 2023-7-8 16:18
Amphibiouskii 发表于 2023-7-7 15:09
那这个export OPENMM_SOURCE=后面就是跟上解压后得到的openmm文件目录的绝对路径还是说直接复制这行代码 ...

跟openmm目录

https://github.com/UIUC-PPL/charm/releases   下6.10.2
作者
Author:
喵星大佬    时间: 2023-7-8 16:25
Amphibiouskii 发表于 2023-7-7 15:57
想了一下还是贴一下图,解压后的NAMD目录里面只有一个Make.charm好像有点相关,难道是我的解压方式不对吗{: ...

去下一个,直接搜

作者
Author:
Amphibiouskii    时间: 2023-7-8 17:32
fhh2626 发表于 2023-7-8 16:18
跟openmm目录

https://github.com/UIUC-PPL/charm/releases   下6.10.2

好的,谢谢付老师!
还有一个问题是最后./config的时候显示如下警告:
  1. CUDA detected: version 12.1
  2. using Linux-x86_64.cuda11
  3. Warning: CUDA build found is less than version 12.1
复制代码

似乎是我的cuda版本与cuda build不符,我进NAMD源文件目录下的arch文件夹看了一下,找不到Linux-x86_64.cuda12,只有Linux-x86_64.cuda11,进这个文件看了一下发现这个文件是写cuda gencode的,本想自己修改得到一个Linux-x86_64.cuda12,把文本里面的11都换成了12,还加入了新的Ada Lovelace架构的gencode(因为GPU是4080),自己编写的Linux-x86_64.cuda12内容如下:
  1. # suppliment and override build definitions for CUDA 12
  2.   
  3. # set directory default for TCB file system, override by user config
  4. CUDADIR=/usr/local/encap/cuda-12.1

  5. # CUDA 12 has deprecated compute capability 3.x and 5.x
  6. # limit CUDADLINKOPTS to architectures available in libcufft_static

  7. CUDADLINKOPTS = \
  8.   -gencode arch=compute_89,code=sm_89 \
  9.   -gencode arch=compute_89,code=compute_89

  10. CUDAGENCODE = \
  11.   -gencode arch=compute_89,code=sm_89 \
  12.   -gencode arch=compute_89,code=compute_89
复制代码

但make depends的时候还是出现了error:
  1. checking dependencies for src/MigrationBondedCUDAKernel.cu
  2. In file included from /usr/local/cuda/include/thrust/system/cuda/config.h:42,
  3.                  from /usr/local/cuda/include/thrust/system/cuda/detail/execution_policy.h:35,
  4.                  from /usr/local/cuda/include/thrust/iterator/detail/device_system_tag.h:23,
  5.                  from /usr/local/cuda/include/thrust/iterator/detail/iterator_facade_category.h:22,
  6.                  from /usr/local/cuda/include/thrust/iterator/iterator_facade.h:37,
  7.                  from .rootdir/cub/namd_cub/device/../iterator/arg_index_input_iterator.cuh:48,
  8.                  from .rootdir/cub/namd_cub/device/device_reduce.cuh:41,
  9.                  from .rootdir/cub/namd_cub/cub.cuh:53,
  10.                  from src/MigrationBondedCUDAKernel.cu:10:
  11. /usr/local/cuda/include/cub/util_namespace.cuh:46:2: error: #error CUB requires a definition of CUB_NS_QUALIFIER when CUB_NS_PREFIX/POSTFIX are defined.
  12. #error CUB requires a definition of CUB_NS_QUALIFIER when CUB_NS_PREFIX/POSTFIX are defined.

  13. checking dependencies for src/MigrationCUDAKernel.cu
  14. ......
复制代码

大概出现了13个这样的相似报错,报错信息完全一样,不同的是checking的项目不一样,但全是与cuda相关的(上面仅列出两个),这种情况是只能重装cuda吗?因为主要用gromacs,故安装了比较新的cuda12.1,没想到NAMD居然没有支持cuda12......
其实我用NAMD主要是想尝试一下BFEE2的蛋白-蛋白结合自由能计算,不知道能否直接使用binary版本?如果可以的话还是不编译安装了,重装cuda实在是太麻烦了
还有想请教一下付老师BFEE2计算糖蛋白(使用Charmm36m力场,CHARMM-GUI生成)的结合自由能效果如何?因为之前使用过gmx_MMPBSA感觉效果不是很好,所以想试试采样的方法看看会不会效果好一点
作者
Author:
fhh2626    时间: 2023-7-8 23:51
Amphibiouskii 发表于 2023-7-8 17:32
好的,谢谢付老师!
还有一个问题是最后./config的时候显示如下警告:

应该是可以直接使用最新的binary的

另外NAMD应该是可以用CUDA12.x编译的
./config Linux-x86_64-g++ --with-cuda --with-single-node-cuda --cuda-prefix /usr/local/cuda
用不到Linux-x86_64.cuda11这个文件
作者
Author:
Amphibiouskii    时间: 2023-7-9 23:12
fhh2626 发表于 2023-7-8 23:51
应该是可以直接使用最新的binary的

另外NAMD应该是可以用CUDA12.x编译的

非常感谢付老师的耐心回答!
但是如果我不自己在arch目录下创建一个Linux-x86_64.cuda12的话,在执行命令:
  1. ./config Linux-x86_64-g++ --with-cuda --with-single-node-cuda --cuda-prefix /usr/local/cuda
复制代码

后在Terminal输出的信息中就会包含如下警告:
  1. CUDA detected: version 12.1
  2. using Linux-x86_64.cuda11
  3. Warning: CUDA build found is less than version 12.1
复制代码

难道说是我找到的NAMD版本不对吗?
还有就是在我尝试删掉解压后的NAMD目录,重新解压走一遍流程的时候,在这一步:
  1. sh ./colvars-master/update-colvars-code.sh ./NAMD_3.0b3_Source
复制代码
时,它会输出如下信息:
  1. Detected NAMD source tree in ./NAMD_3.0b3_Source
  2. Updating ....../colvars-master/update-colvars-code.sh: line 367: namd/Makefile.patch: No such file or directory
  3. ...................................................................................... done.

  4.   *************************************************
  5.     Please run "make depends" in the NAMD tree.
  6.   *************************************************
复制代码

然后我按照他的要求在文件夹NAMD_3.0b3_Source下运行了make denpends,返回报错:
  1. Make.depends:9662: .rootdir/lepton/Make.depends: No such file or directory
  2. make: *** No rule to make target '.rootdir/lepton/Make.depends'.  Stop.
复制代码

但我看了一下在NAMD_3.0b3_Source/lepton下是有Make.depends这个文件的,尝试Google和自己指定文件的绝对路径等各种方法后无效,暂时就卡在这里了。。。
不过既然老师说binary版本应该也能用,那我还是先使用binary版本试试吧。。。
作者
Author:
shifan    时间: 2024-2-21 12:50
请问 openmm如何安装
作者
Author:
fhh2626    时间: 2024-2-22 09:44
shifan 发表于 2024-2-21 12:50
请问 openmm如何安装

安装NAMD不需要安装OpenMM。如果你想用OpenMM软件的话,可以直接在conda里面安装
作者
Author:
shifan    时间: 2024-2-22 10:31
我在编译charm的时候出现以下报错
Charm++ NOT BUILT. Either cd into multicore-linux-x86_64-cuda/tmp and try
后来我尝试cuda那一项选择no,就可以正常编译,服务器中装的cuda版本是12,但是 NAMD的arc文件中最高支持的是11
但是由于磁盘空间不够了,无法再装低版本的cuda
请问这个怎么办?
作者
Author:
fhh2626    时间: 2024-2-23 09:59
shifan 发表于 2024-2-22 10:31
我在编译charm的时候出现以下报错
Charm++ NOT BUILT. Either cd into multicore-linux-x86_64-cuda/tmp a ...

编译charm++的时候不用链接CUDA,NAMD的话应该是可以在CUDA12的机器上编译的。

或者你可以直接下3.0b6的二进制文件来用,最近官网上二进制文件更新很频繁。一半是官网不怎么更新的时候再自己编译安装
作者
Author:
simple123    时间: 2024-2-26 14:19
本帖最后由 simple123 于 2024-2-26 14:24 编辑

老师您好,请问输入make -j16之后
显示:
make: *** [psfgen] Error 1
make: *** Waiting for unfinished jobs....
这样是指安装失败了吗,请问老师接下来该如何处理?
下载的软件有:NAMD_3.0b6_Source.tar.gz;openmm-8.1.1;colvars-master.tar.gz;NAMDlib.zip
作者
Author:
fhh2626    时间: 2024-2-27 14:20
simple123 发表于 2024-2-26 14:19
老师您好,请问输入make -j16之后
显示:
make: ***  Error 1

这个看不出来错误在哪。。你得找到由error开头的报错
作者
Author:
1758924310    时间: 2024-4-23 22:20
本帖最后由 1758924310 于 2024-4-23 23:11 编辑

您好,我是Linux子系统Ubuntu安装NAMD,到了 make -j16这步之后显示

/usr/bin/ld: cannot find -ltcl8.6: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [Makefile:552: psfgen] Error 1
make: *** Waiting for unfinished jobs....

请问这个问题怎么解决


作者
Author:
fhh2626    时间: 2024-4-24 09:46
1758924310 发表于 2024-4-23 22:20
您好,我是Linux子系统Ubuntu安装NAMD,到了 make -j16这步之后显示

/usr/bin/ld: cannot find -ltcl8.6 ...

没有解压NAMDlib.zip吧
作者
Author:
1758924310    时间: 2024-4-24 10:39
fhh2626 发表于 2024-4-24 09:46
没有解压NAMDlib.zip吧

解压了,在NAMD文件夹里有fftw和tcl俩个文件夹,我再重新执行一下?
作者
Author:
fhh2626    时间: 2024-4-24 10:49
1758924310 发表于 2024-4-24 10:39
解压了,在NAMD文件夹里有fftw和tcl俩个文件夹,我再重新执行一下?

那就重新./config ....
作者
Author:
1758924310    时间: 2024-4-24 11:37
本帖最后由 1758924310 于 2024-4-25 11:27 编辑
fhh2626 发表于 2024-4-24 10:49
那就重新./config ....

您好,我重新安装了一下,但又出现了如下问题:
charmc: Executing rm -f charmrun
rm -f moduleinit90032.C moduleinit90032.o

请问这个问题该如何解决呢?

作者
Author:
生煎小馒头    时间: 2024-11-15 19:35
您好,楼主,我下载的是这个版本的NAMD_3.0.1_Linux-x86_64-multicore-CUDA.tar.gz,为什么我运行./name3会出现这个报错:./namd3: error while loading shared libraries: libmvec.so.1: cannot open shared object file: No such file or directory,可以帮我解疑一下吗




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