计算化学公社

标题: 求助:请教各位大佬,如何成功安装AMBER20并行版本 [打印本页]

作者
Author:
robert2005    时间: 2022-4-15 15:16
标题: 求助:请教各位大佬,如何成功安装AMBER20并行版本
各位大佬好!在http://bbs.keinsci.com/thread-17512-1-3.html这个帖子里面的AMBER20安装步骤,对此我提出了几点疑问,比如对于$AMBERHOME具体路径的疑惑等,
按照该教程和网上谷歌的教程,我分别在CENTOS7,CENTOS8,UBUNTU20.04等操作系统均安装了N多次AMBER20的并行版本,没有一次安装成功的,每次都显示类似的错误
error: Cannot link MPI programs. Check your configuration!!!
每次都是安装到21%左右,build mpi4py-3.0.3时候出错了
collect2: error: ld returned 1 exit status
failure.
removing: _configtest.c _configtest.o
error: Cannot link MPI programs. Check your configuration!!!
make[2]: *** [AmberTools/src/mpi4py-3.0.3/CMakeFiles/mpi4py.dir/build.make:288: AmberTools/src/mpi4py-3.0.3/CMakeFiles/mpi4py-build/mpi4py-build.stamp] Error 1
make[1]: *** [CMakeFiles/Makefile2:3280: AmberTools/src/mpi4py-3.0.3/CMakeFiles/mpi4py.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
查到貌似要将GCC升级到9以上,虽然官网给出结果说9以下也可以,
官方列出的自带的4.8.5或8.5.0都是可以的 https://ambermd.org/InstSingularity.php
但是谷歌出来的AMBER20安装教程,只要是在CENTOS7或8上的安装教程都有一个步骤,即要升级GCC到9左右等,这样看来AMBER20对GCC版本还是有要求的。
而且谷歌出来amber官方邮件中给的建议也是GCC版本最好在9以上,
又参考UBUNTU20.04的教程,因为这个系统自带GCC版本是9.3,安装AMBER20的教程中就不用升级GCC,直接安装的。
知乎的并行安装AMBER20视频里面的GCC版本也是9.3,我在虚拟机里面安装了UBUNTU20.04,但是我还是没有成功安装并行版,还是一样的错误。
有人说用miniconda安装了一个openmpi后解决了上述错误。但是我试了以下还是这个错误,可能还有些细节我没有做到,但是不知道哪些细节。
又谷歌AMBER官方邮件发现这个错误很多人都遇到过,但是貌似没有解决,官方有个建议是在run_cmake文件中加入不使用PYTHON,貌似就没有这个错误了,但是所有与PYTHON相关功能都无法使用了。
这样显然是不合适的。
所以想在这里继续求助各位大佬,如何能成功安装并行版的AMBER20,有没有详细一点的步骤,比如包含完整安装细节的。
折腾了好几周了,网上的安装教程都试了,都是一样的错误。郁闷啊!

作者
Author:
abin    时间: 2022-4-15 19:42
我签名链接中有可用版本,
仔细找。
作者
Author:
rpestana94    时间: 2022-4-15 22:35
Try with this https://www.x-mol.com/groups/Dong/news/2155
作者
Author:
sylar    时间: 2022-4-16 11:14
按这个试试
作者
Author:
Frozen-Penguin    时间: 2022-4-16 11:45
关于安装mpi4py的问题,可以尝试直接pip install mpi4py,可能出现和amber安装过程中相同的错误,可以用这种方法测试是否能安装mpi4py,不用每次都等amber的安装程序。
如果错误原因是libmpi.so相关的,基本上可以确定是mpi安装有问题,可以尝试用anaconda。
安装miniconda3
source activate
conda create -n py4amber
conda activate py4amber
conda install openmpi -c conda-forge
然后用pip install mpi4py测试能否成功安装mpi4py
作者
Author:
robert2005    时间: 2022-4-18 10:00
sylar 发表于 2022-4-16 11:14
按这个试试

按这个试过了,这个和网上的教程一样的,还是一样的错误,您用这个安装成功了?
作者
Author:
robert2005    时间: 2022-4-18 10:02
rpestana94 发表于 2022-4-15 22:35
Try with this https://www.x-mol.com/groups/Dong/news/2155

这个和我找的一些教程一样的,还是一样的错误,您安装成功了?哪个LINUX版本啊?GCC在9以上?
作者
Author:
sylar    时间: 2022-4-18 13:43
robert2005 发表于 2022-4-18 10:00
按这个试过了,这个和网上的教程一样的,还是一样的错误,您用这个安装成功了?

成功,这就是我写的,mpirun -V能出来版本吗
作者
Author:
robert2005    时间: 2022-4-18 17:35
mpirun -V结果能出来版本
作者
Author:
rpestana94    时间: 2022-4-18 22:37
robert2005 Posted on 2022-4-17 21:02
This is the same as some of the tutorials I found, or the same error, did you install it successfully? Which LINUX version ah? GCC above 9?

No, if I remember correctly I don't use GCC above 9 because it has some incompatibility with cuda 10, but for GNU mpi using the command inside src folder work for me, but using mpich instead of openmpi
作者
Author:
z9527567    时间: 2022-4-19 16:48
不要用minicoda,如果用,就用miniconda的python3.8版本,而不是python3.9,自己替换miniconda下载包就好
作者
Author:
robert2005    时间: 2022-4-21 09:39
z9527567 发表于 2022-4-19 16:48
不要用minicoda,如果用,就用miniconda的python3.8版本,而不是python3.9,自己替换miniconda下载包就好

请问如何更换啊?在run_cmake脚本里面更改吗?
作者
Author:
Acee    时间: 2022-4-21 10:32
robert2005 发表于 2022-4-21 09:39
请问如何更换啊?在run_cmake脚本里面更改吗?

你安装amber20的时候,在./run_make的过程中他会自己下载miniconda。在amber20_src/build/CMakeFiles/miniconda/install/bin里面可以看见的python版本。你在install里面把miniconda替换一下就行。他自己下载的python3.9的。
作者
Author:
robert2005    时间: 2022-4-22 16:33
Acee 发表于 2022-4-21 10:32
你安装amber20的时候,在./run_make的过程中他会自己下载miniconda。在amber20_src/build/CMakeFiles/min ...

不好意思,还是没有明白该怎么替换,可否说个详细步骤?多谢!
作者
Author:
Frozen-Penguin    时间: 2022-4-22 18:57
本帖最后由 Frozen-Penguin 于 2022-4-22 18:58 编辑
robert2005 发表于 2022-4-22 16:33
不好意思,还是没有明白该怎么替换,可否说个详细步骤?多谢!

运行./run_cmake的时候会下载一个miniconda的安装文件,应该在这个目录下amber20_src/build/CMakeFiles/miniconda/download/,把这个文件删掉,去miniconda的网站上下载一个对应python3.8版本的miniconda安装文件放在这里,然后继续安装,如果miniconda已经装好了,把这里面的内容都删掉amber20_src/build/CMakeFiles/miniconda/install/
作者
Author:
Entropy.S.I    时间: 2022-4-22 21:32
试试这个:
作者
Author:
robert2005    时间: 2022-4-22 23:08
Entropy.S.I 发表于 2022-4-22 21:32
试试这个:

为什么安装串行版时这里的AMBERHOME是amber20_src,而不是amber20啊?
作者
Author:
Entropy.S.I    时间: 2022-4-23 00:56
robert2005 发表于 2022-4-22 23:08
为什么安装串行版时这里的AMBERHOME是amber20_src,而不是amber20啊?

AMBER20安装流程和之前版本不一样,在'amber20_src/'中编译完成的文件在最后install阶段会被复制到与'amber20_src/'路径相同的'amber20/'目录下,相当于把实际要用的部分和源码路径分开了。
图中编译串行版本前先手动添加全局变量'$AMBERHOME'为源码目录,是AMBER官方文档给的操作,我就照做了,没试过不手动添加的情况(我猜不做这一步也没问题)。而在串行版本编译安装完,并加载'amber20/amber.sh'载入AMBER环境后,'$AMBERHOME'会变成'amber20/',所以后面的'cd $AMBERHOME'操作实际上进入的是'amber20/'目录。
作者
Author:
robert2005    时间: 2022-4-23 02:28
Entropy.S.I 发表于 2022-4-23 00:56
AMBER20安装流程和之前版本不一样,在'amber20_src/'中编译完成的文件在最后install阶段会被复制到与'amb ...

你使用的系统里面的GCC版本是?貌似你自己安装了一个MINICONDA,这个里面的PYTHON版本是多少啊?
作者
Author:
Entropy.S.I    时间: 2022-4-23 13:39
robert2005 发表于 2022-4-23 02:28
你使用的系统里面的GCC版本是?貌似你自己安装了一个MINICONDA,这个里面的PYTHON版本是多少啊?

Ubuntu 20.04 LTS的GCC版本是9.3.0

没有装conda,直接调用root用户的python环境,用apt install得到的最新版就行。最后一次装是去年12月,py 3.8.10没问题
作者
Author:
robert2005    时间: 2022-4-23 14:46
有点疑惑,-DMPI=TRUE  和 -DOPENMP=TRUE有什么区别,我看网上教程无论使用MPICH还是OPENMPI并行一般都只改-DMPI设为TRUE就可以了,看你这里还设了-DOPENMP=TRUE?两个只能设一个?
作者
Author:
Entropy.S.I    时间: 2022-4-23 15:05
robert2005 发表于 2022-4-23 14:46
有点疑惑,-DMPI=TRUE  和 -DOPENMP=TRUE有什么区别,我看网上教程无论使用MPICH还是OPENMPI并行一般都只改 ...

OMP不需要像MPI一样事先准备并行库。OMP是给单节点纯CPU并行用的,MPI给单节点并行和多节点并行都能用。对于多节点无GPU或单节点+多GPU或多节点+多GPU的架构,MPI是必须的,OMP可有可无。

所有版本在相同的源码目录下编译,一次只编译一种并行类型,顺序是:串行>OMP>MPI>CUDA。如果用CUDA加速,可以不编译OMP版本;如果用CUDA加速,且对每个任务只需要单节点+单GPU运行,那么MPI版本也可以不编译。

应该优先看官方文档
作者
Author:
robert2005    时间: 2022-4-23 16:47
Entropy.S.I 发表于 2022-4-23 15:05
OMP不需要像MPI一样事先准备并行库。OMP是给单节点纯CPU并行用的,MPI给单节点并行和多节点并行都能用。 ...

明白了,非常感谢!
作者
Author:
robert2005    时间: 2022-4-23 17:28
在此对各位大佬的帮助表示非常感谢!特别感谢z9527567和Entropy.S.I和Acee和Frozen-Penguin的耐心解答,最终让我明白了为什么之前并行版总是失败。
在这里总结一下,主要原因就是AMBER20默认下载的最新的MINICONDA里面的PYTHON版本是3.9,我认为这个就是AMBER20并行安装当中最大的一个坑,根据我个人经历,只要是这个3.9版本的PYTHON,无论是MINICONDA里面的,还是系统本身自带的,我试过CENTOS7,UBUNTU20.04在做并行版安装的时候最后到BUILD MPI4PY时都会出错,如我之前贴出来的错误,出现这个错误后,并行版安装就会中断,一般是在MAKE INSTALL到21%左右的时候,这一点不改变,后续无论怎么换LINUX系统,换英特尔编译器,换MKL等等,统统没有用!!!因为我都已经挨个试过了,这个试错的过程断断续续花了我一个多月的时间(惭愧!),最后谷歌AMBER官方邮件都没有找到解决方法,只好放弃着急的心态,每天有空的时候就想一想可能的远因,顺便在这里继续求助,终于发现上述几位大佬的提示后,我在CENTOS7和UBUNTU20.04里都试了一下,果然并行成功了。
这里简单记录一下过程,CENTOS7里面默认PYTHON2.7,虽然AMBER官方给出文件说2.X的也支持,可以安装,但是我在RUN_CMAKE里面取消MINICONDA3下载和使用PYTHON3后,按照官方文件安装numpy scipy matplotlib等包时有提示说PYTHON版本太低,有个包没有合适的版本,无法安装,最后导致CMAKE显示失败,无法安装。可能还有些细节我不清楚,总之关于AMBER20安装必须的PYTHON包,有几个没有装上,导致CMAKE失败。
采取的办法就是手动下载PYTHON版本为3.8的MINICONDA,安装,设好环境变量,但是RUN CMAKE时显示识别的还是系统里面的2.7,直接ERROR了,最后在CMakeLists.txt里面找到PYTHON相关路径设置,如PYTHON_EXECUTABLE等改为MINICONDA里面的3.8所在相应路径,然后再运行RUN_CMAKE,就没有说CMAKE INCOMPLETE了,然后make -j4 install ,到21%时也没有卡住,直接通过。至此,在CENTOS7里顺利安装了AMBER20的并行版,编译器用的还是GNU的4.8.5.这样看来编译器版本可能有影响,但是可能不是很大。
UBUNTU20.04系统,因为网上有好几个成功并行版安装教程都是这个系统,所以又按照上述几位大佬的指导,在这个系统里试了一次,因为这个系统本身自带的PYTHON是3.8,GCC是9以上,按照高手指导,这个系统PYTHON完全够用,不用重新下载AMBER20的MINICONDA.在RUN_CMAKE里面只取消了MINICONDA的下载,其他都没有变,当然安装AMBER20之前把系统必须的库用SODU APT INSTALL补全, 系统里PYTHON3.8的包,如NUMPY等用SUDO PIP3补全,按照Entropy.S.I贴出的教程,装串行,然后再装并行,都顺利通过,串行版测试和并行版测试,大部分都PASS。终于成功。
并行版测试结果

串行测试结果

再一次感谢各位大佬的指导!让我学到了很多东西!
作者
Author:
robert2005    时间: 2022-4-23 17:42
另外,还有就是,3.9的PYTHON版本不变,换OPENMPI版本(我从4.0.X到4.1.X都试了一遍,没有用),什么版本都没有用,MPICH版本(我也试过了,没有用)也是一样的,无论是最新版还是老版本,也是没有用,都是出一样的错误。提前安装OPENMPI或者MPICH也没有用,这个也试过了,即使设置环境变量指到我安装的路径,还是一样的错误。所以我认为并行安装最大的坑就是3.9的PYTHON,甚至我怀疑网上之前安装并行成功的教程里面,成功的原因是当时最新的MINICONDA版本里面的PYTHON是3.8的版本,所以按照官网教程可以顺利安装并行版。我估计AMBER20发布时(2020.4.31),那时的MINICONDA里面最新的版本就是PYTHON3.8,所以照官网教程安装是没有问题的,后来随着时间推移,新版本的MINICONDA出来了,里面的PYTHON也变为3.9了,这种并行安装问题就比较多了。因此就产生了一个大坑,这个大坑也许会随着AMBER版本更新而消失。
作者
Author:
Santz    时间: 2022-4-24 08:24
robert2005 发表于 2022-4-23 17:28
在此对各位大佬的帮助表示非常感谢!特别感谢z9527567和Entropy.S.I和Acee和Frozen-Penguin的耐心解答,最 ...

good job!另一种方法可以不自己安装miniconda3,更换一下run_cmake下载的miniconda为Python3.8版本的也可,重命名为Miniconda3-latest-Linux-x86_64.sh。
  1. mkdir -p /home/me/amber20_src/build/CMakeFiles/miniconda/download

  2. cd /home/me/amber20_src/build/CMakeFiles/miniconda/download

  3. wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-Linux-x86_64.sh

  4. mv Miniconda3-py38_4.11.0-Linux-x86_64.sh Miniconda3-latest-Linux-x86_64.sh
复制代码


作者
Author:
robert2005    时间: 2022-4-24 09:01
Santz 发表于 2022-4-24 08:24
good job!另一种方法可以不自己安装miniconda3,更换一下run_cmake下载的miniconda为Python3.8版本的也 ...

这里我有个疑问,就是刚解压完AMBER和TOOLS后,在build文件夹下是没有CMakeFiles/miniconda/download这个文件夹的,看你是自己建的?这样后续不会出错吧?另外,我认为如果操作系统本身自带的PYTHON版本是3.8的话,就没有必要使用MINICONDA了,用系统自带PYTHON 就可以了。
作者
Author:
Santz    时间: 2022-4-24 11:54
robert2005 发表于 2022-4-24 09:01
这里我有个疑问,就是刚解压完AMBER和TOOLS后,在build文件夹下是没有CMakeFiles/miniconda/download这个 ...

测试可行。系统为CentOS Stream release 8, GNU 8.5.0。
2698 file comparisons passed
1 file comparisons failed (1 of which can be ignored)
0 tests experienced errors
Test log file saved as /home/me/apps/amber20/logs/test_at_serial/2022-04-24_09-27-18.log
Test diffs file saved as /home/me/apps/amber20/logs/test_at_serial/2022-04-24_09-27-18.diff

1215 file comparisons passed
2 file comparisons failed (0 of which can be ignored)
1 tests experienced errors
Test log file saved as /home/me/apps/amber20/logs/test_at_parallel/2022-04-24_11-04-50.log
No test diffs to save!

作者
Author:
Frozen-Penguin    时间: 2022-4-24 12:09
robert2005 发表于 2022-4-24 09:01
这里我有个疑问,就是刚解压完AMBER和TOOLS后,在build文件夹下是没有CMakeFiles/miniconda/download这个 ...

如果不做上述操作,安装过程中会建一个同样的目录,然后把miniconda的安装文件下载到那个目录下,如果检测到有安装文件就不会下载,所以不会出问题。如果用系统自带的python需要在安装amber之前先安装好amber需要的各种东西,如果有版本不对等情况可能会安装失败,所以默认用miniconda安装。
作者
Author:
robert2005    时间: 2022-4-24 19:40
学习了,多谢!
作者
Author:
RandomError    时间: 2022-4-25 12:59
感谢各位大佬的研究,miniconda的python版本改为3.8解决了并行版编译不成功的问题~
系统为Ubuntu 20.04 WSL2, g++、gcc、gfortran: 9.4.0, cuda 11.6
(之前直接安装串行版时用3.9也成功了完全没想到是python版本问题
作者
Author:
18231865105    时间: 2022-4-25 18:52
rpestana94 发表于 2022-4-15 22:35
Try with this https://www.x-mol.com/groups/Dong/news/2155

good'

作者
Author:
冷血    时间: 2022-6-2 23:59
Santz 发表于 2022-4-24 08:24
good job!另一种方法可以不自己安装miniconda3,更换一下run_cmake下载的miniconda为Python3.8版本的也 ...

此方法亲测确实可行。
2695 file comparisons passed
1 file comparisons failed (1 of which can be ignored)
0 tests experienced errors
作者
Author:
阿志    时间: 2022-6-8 08:28
robert2005 发表于 2022-4-22 16:33
不好意思,还是没有明白该怎么替换,可否说个详细步骤?多谢!

请问,您并行安装好了吗?
作者
Author:
冷血    时间: 2022-7-16 00:32
想咨询一下,安装cuda是否可以指定cuda路径?我发现camke检测的是另一版本的cuda
作者
Author:
Frozen-Penguin    时间: 2022-7-16 10:59
冷血 发表于 2022-7-16 00:32
想咨询一下,安装cuda是否可以指定cuda路径?我发现camke检测的是另一版本的cuda

把需要指定的cuda的路径设置为$PATH的第一个应该就可以了
export PATH=/usr/local/cuda-.../bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-.../lib:$LD_LIBRARY_PATH
作者
Author:
冷血    时间: 2022-7-30 13:47
Frozen-Penguin 发表于 2022-7-16 10:59
把需要指定的cuda的路径设置为$PATH的第一个应该就可以了
export PATH=/usr/local/cuda-.../bin:$PATH
...

您好,centos7,运行./run_cmake时,提示gfortran版本过低咋办呀?




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