计算化学公社

 找回密码 Forget password
 注册 Register
Views: 2788|回复 Reply: 11
打印 Print 上一主题 Last thread 下一主题 Next thread

[Molcas] molcas intel编译器安装踏坑记

[复制链接 Copy URL]

213

帖子

1

威望

2230

eV
积分
2463

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 abdoman 于 2022-9-16 13:47 编辑

近日需要学习激发态高阶的计算,正所谓理论与应用未动,软件安装先行。
废话不多说,安装选定在openmolcas;
1.软件下载,直接从gitlab 拉下来,当前最新 v22.06-85-g4b62d07
http://bbs.keinsci.com/thread-6618-1-1.html

2.1 安装系统介绍
  • 系统 centos 7.6.1810
  • 编译器 parallel_studio_xe_2017.8.066
  • python3 3.7.6 (来自conda 4.13.0)

2.2 安装选择的库
2.2.1 hdf5-1.10.4 (系统已有)
这个是个大坑,因为默认 --enable-CXX是no,导致后面NEVPT2编译无法通过,
而且 hdf5 不能安装并行版,因为ALPS不推荐。


CMake Warning at alps/CMakeLists.txt:49 (MESSAGE):
  parallel(MPI) hdf5 is detected.  We will compile but ALPS does not use
  parallel HDF5.  The standard version is preferred.


最后重新编译安装hdf5 才得以成功。
安装的参数:
./configure --prefix=/public/software/hdf5-1.10.4 --enable-cxx  --enable-fortran --enable-shared --with-pic CC=icc FC=ifort CXX=icpc  CFLAGS="-fPIC -O3 -xHost -ip -fno-alias -align" FCFLAGS="-fPIC -O3 -xHost -ip -fno-alias -align" CXXFLAGS="-fPIC -O3 -xHost -ip -fno-alias -align"

安装完成后,变量声明可追加到~/.bashrc 里面:
例如:
export HDF5_DIR=/public/software/hdf5-1.10.4
export PATH=/public/software/hdf5-1.10.4/bin:$PATH
export HDF5_LIBRARIES=/public/software/hdf5-1.10.4/lib:$HDF5_LIBRARIES
export HDF5_INCLUDE_DIRS=/public/software/hdf5-1.10.4/include:$DF5_INCLUDE_DIRS

安装参考:
https://community.intel.com/t5/I ... ompiler/m-p/1357014

2.2.2 Global Arrays
下载的是最新的ga-5.8.1,必须要scalapack,不然后面过不去
./configure MPICXX=mpiicpc MPIF77=mpiifort MPICC=mpiicc --prefix=/public/software/ga-5.8.1 --enable-i8 --with-sockets --with-blas8="-L$MKLROOT/lib/intel64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm" --with-scalapack8="-L$MKLROOT/lib/intel64 -lmkl_scalapack_ilp64 -lmkl_intel_ilp64 -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_ilp64 -liomp5 -lpthread -lm" --enable-cxx -with-mpi


安装完成后,变量声明可追加到~/.bashrc 里面:
例如:
export GAROOT=/public/software/ga-5.8.1
export PATH=/public/software/ga-5.8.1/bin:$PATH

GA安装参考:
https://blog.csdn.net/jslove1997/article/details/116721572
https://zhuanlan.zhihu.com/p/926 ... urce=wechat_session


2.2.3 molcas 安装
首先conda activate ,切换到python3 的环境下,
然后export GA 和HDF5 的环境变量,(这里也有一个坑,我的conda 里面是有hdf5,所以要先切换到python3下,再source hdf5的环境变量)
按照说明书,mkdir build && cd build

cmake -DCMAKE_Fortran_COMPILER=ifort -DCMAKE_C_COMPILER=icc -DGA=ON -DLINALG=MKL -DCMAKE_INSTALL_PREFIX=/public/software/OpenMolcas_v22.06  ../OpenMolcas
make -j8

进行到98%的时候,竟然出错。
In function `f2c_getarg_': farg.F:(.text+0x55): undefined reference to `_gfortran_getarg_i8

貌似是需要调用gfortran 的库文件,可能是由于我的ifort的原因,cmake竟然连gfortran的库都找不到。(应该是默认的lib64,为啥找不到?)
最后看了CMakeCache.txt里面有link的FLAGS可以设置,
删除当前CMakeCache.txt,

顺利编译完成,
然后 make install

2.2.4 DMRG 和NEVPT2 的支持
a. Boost 安装
Boost >= 1.56 is required for QCMaquis
当前版本为1.55,因此也安装boost-1.57
./configure MPICC=mpiicc CC=mpiicc F77=mpiifort MPIF77=mpiifort prefix=/public/software/ga-5.8.1 --with-mpi-pr --enable-i8 --with-blas CXX=mpiicpc MPICXX=mpiicpc
安装参考:
参考:https://cloud.tencent.com/developer/article/1794304


b. 离线安装DMRG和NEVPT2
DMRG好不容易编译好,但是
NEVPT2 对intel不太友好,还是放弃了。

转为gnu编译器,由于系统gcc-4.8.5,不太友好,编译DMRG的时候regex.h 有bug,https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61059


c. 离线安装DMRG和NEVPT2  GCC-7 编译
通过yum 安装scl,再安装gcc-7
首先下载阿里云的镜像yum源 。 wget -O /etc/yum.repos.d/CentOS-Base-aliyun.repo https://mirrors.aliyun.com/repo/Centos-7.repo
安装yum install devtoolset-7-gcc*  (7系gcc)
scl enable devtoolset-7 bash  

cmake -DCMAKE_C_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/cc -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++ -DCMAKE_CXX_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/c++ -DCMAKE_C_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/cc -DCMAKE_Fortran_COMPILER=/opt/rh/devtoolset-7/root/usr/bin/gfortran -DGA=ON -DLINALG=MKL -DCMAKE_INSTALL_PREFIX=/public/software/OpenMolcas_GNU -DNEVPT2=ON -DDMRG=ON -DOPENMP=ON ../OpenMolcas

make
make install
















评分 Rate

参与人数
Participants 1
威望 +1 收起 理由
Reason
sobereva + 1

查看全部评分 View all ratings

83

帖子

2

威望

3013

eV
积分
3136

Level 5 (御坂)

2#
发表于 Post on 2023-12-13 17:24:44 | 只看该作者 Only view this author
In function `f2c_getarg_': farg.F:(.text+0x55): undefined reference to `_gfortran_getarg_i8
你好,关于此错误的处理能否提供一个详细的参考?我用IntelMPI始终提示这个错误。

3806

帖子

4

威望

7994

eV
积分
11880

Level 6 (一方通行)

MOKIT开发者

3#
发表于 Post on 2023-12-13 18:27:58 | 只看该作者 Only view this author
Santz 发表于 2023-12-13 17:24
In function `f2c_getarg_': farg.F:(.text+0x55): undefined reference to `_gfortran_getarg_i8
你好, ...

建议阅读《离线安装OpenMolcas-v22.06》,《编译MPI并行版OpenMolcas
自动做多参考态计算的程序MOKIT

83

帖子

2

威望

3013

eV
积分
3136

Level 5 (御坂)

4#
发表于 Post on 2023-12-13 18:44:06 | 只看该作者 Only view this author
zjxitcc 发表于 2023-12-13 18:27
建议阅读《离线安装OpenMolcas-v22.06》,《编译MPI并行版OpenMolcas》

多谢,已解决IntelMPI的问题,再尝试你的OpenMPI版本。

41

帖子

0

威望

1316

eV
积分
1357

Level 4 (黑子)

5#
发表于 Post on 2024-9-17 16:58:52 | 只看该作者 Only view this author
zjxitcc 发表于 2023-12-13 18:27
建议阅读《离线安装OpenMolcas-v22.06》,《编译MPI并行版OpenMolcas》

老师您好,按照您离线安装OPENMOLCAS v22.06的流程安装OpenMolcas v24.06,在编译openmolcas时报错error: could not find git for clone of Libxc。我尝试安装了libxc6.2.2后重新编译openmolcas,没能解决问题。请问应当如何处理该问题?

3806

帖子

4

威望

7994

eV
积分
11880

Level 6 (一方通行)

MOKIT开发者

6#
发表于 Post on 2024-9-17 18:14:42 | 只看该作者 Only view this author
本帖最后由 zjxitcc 于 2024-9-17 18:16 编辑
fwz3888 发表于 2024-9-17 16:58
老师您好,按照您离线安装OPENMOLCAS v22.06的流程安装OpenMolcas v24.06,在编译openmolcas时报错error: ...

你没有正确处理Libxc的位置,仔细阅读安装教程中“接着我们把Libxc放到相应目录下,让OpenMolcas自动识别并编译它。。。”。如果你实在试不出来,可以安装OpenMolcas-v24.02,我就是按我自己写的教程编译的v24.02。
自动做多参考态计算的程序MOKIT

117

帖子

0

威望

1953

eV
积分
2070

Level 5 (御坂)

7#
发表于 Post on 2024-9-25 17:35:47 | 只看该作者 Only view this author
fwz3888 发表于 2024-9-17 16:58
老师您好,按照您离线安装OPENMOLCAS v22.06的流程安装OpenMolcas v24.06,在编译openmolcas时报错error: ...

请问层主解决这个问题了吗?我在安装OpenMolcas v24.06时也遇到了同样的问题。如果已经解决,麻烦告知一下如何?谢谢。

117

帖子

0

威望

1953

eV
积分
2070

Level 5 (御坂)

8#
发表于 Post on 2024-9-25 19:08:33 | 只看该作者 Only view this author
zjxitcc 发表于 2024-9-17 18:14
你没有正确处理Libxc的位置,仔细阅读安装教程中“接着我们把Libxc放到相应目录下,让OpenMolcas自动识别 ...

邹老师,我试过了安装OpenMolcas-v24.02,Libxc也试了5.2.2到6.2.2的多个版本,都是出现同样的错误(error: could not find git for clone of Libxc)。从上下文的逻辑顺序来看,Libxc应该是在$HOME/software/OpenMolcas-v22.10/build/External/目录下吧?还是我理解错了,应该在别的“相应目录”下?唯恐程序找不到Libxc,我甚至把解压并改名后的Libxc同时放在了好多目录下,也不行。

3806

帖子

4

威望

7994

eV
积分
11880

Level 6 (一方通行)

MOKIT开发者

9#
发表于 Post on 2024-9-25 19:14:57 | 只看该作者 Only view this author
wanlichuan 发表于 2024-9-25 19:08
邹老师,我试过了安装OpenMolcas-v24.02,Libxc也试了5.2.2到6.2.2的多个版本,都是出现同样的错误(erro ...

摘自我写的安装教程《离线安装OpenMolcas-v22.06
"接着我们把Libxc放到相应目录下,让OpenMolcas自动识别并编译它。依次执行"
  1. cd External/Libxc/tmp
  2. rm -f Libxc-gitclone.cmake Libxc-gitupdate.cmake
  3. touch Libxc-gitclone.cmake Libxc-gitupdate.cmake
  4. cd ../src
  5. cp ~/software/libxc-5.2.2.tar.gz .
  6. tar -zxf libxc-5.2.2.tar.gz
  7. rm -rf Libxc libxc-5.2.2.tar.gz
  8. mv libxc-5.2.2 Libxc
  9. cd ../../../
复制代码
可以看出,libxc-5.2.2.tar.gz压缩包需要放在OpenMolcas-v22.06/build/External/Libxc/src/目录下。
自动做多参考态计算的程序MOKIT

117

帖子

0

威望

1953

eV
积分
2070

Level 5 (御坂)

10#
发表于 Post on 2024-9-25 19:22:51 | 只看该作者 Only view this author
本帖最后由 wanlichuan 于 2024-9-25 19:26 编辑
zjxitcc 发表于 2024-9-25 19:14
摘自我写的安装教程《离线安装OpenMolcas-v22.06》
"接着我们把Libxc放到相应目录下,让OpenMolcas自动 ...

是的,邹老师,最终应该是这样的目录结构:$HOME/software/OpenMolcas-v22.10/build/External/Libxc/src/Libxc。
另外请教一下,这个Libxc不需要安装吧?只是解压、改名即可吧?

还有不太明白的一点:
touch Libxc-gitclone.cmake Libxc-gitupdate.cmake
这一条指令有什么用呢?

3806

帖子

4

威望

7994

eV
积分
11880

Level 6 (一方通行)

MOKIT开发者

11#
发表于 Post on 2024-9-25 19:30:29 | 只看该作者 Only view this author
wanlichuan 发表于 2024-9-25 19:22
是的,邹老师,最终应该是这样的目录结构:$HOME/software/OpenMolcas-v22.10/build/External/Libxc/src/ ...

不需要安装,只需要解压和改名。touch那条命令是创建两个空文件,因为上一步把它删了。
自动做多参考态计算的程序MOKIT

117

帖子

0

威望

1953

eV
积分
2070

Level 5 (御坂)

12#
发表于 Post on 2024-9-26 00:17:55 | 只看该作者 Only view this author
zjxitcc 发表于 2024-9-25 19:30
不需要安装,只需要解压和改名。touch那条命令是创建两个空文件,因为上一步把它删了。

好的,谢谢邹老师。
我仔细核对了很多遍,除了编译器没用intel的之外,其他步骤都是一样的。麻烦邹老师帮忙看看,用GNU编译器的话,把下面的指令:
CC=icc CXX=icpc F77=ifort FC=ifort MPICC=mpicc MPICXX=mpicxx \
cmake -DLINALG=MKL -DMPI=ON -DGA=ON \
-DMPIEXEC_EXECUTABLE=/opt/openmpi-4.1.1/bin/mpiexec \
-DCMAKE_INSTALL_PREFIX=$HOME/software/OpenMolcas-v22.10 ..
改为下面的指令:
CC=gcc CXX=g++ F77=gfortran FC=gfortran MPICC=mpicc MPICXX=mpicxx cmake -DLINALG=MKL -DMPI=ON -DGA=ON  -DMPIEXEC_EXECUTABLE=$HOME/openmpi416/bin/mpiexec  -DCMAKE_INSTALL_PREFIX=$HOME/software/OpenMolcas2402 ..
有没有错误?
前面在编译HDF5和ga-5.8.2的时候,我也是用的GNU编译器,没错。
另外,还有一点小的差异,我用的是openmpi4.1.6,您的教程中用的是4.1.1,应该影响不大吧。

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-24 02:57 , Processed in 0.171326 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list