计算化学公社

标题: openmolcas在集群上安装编译失败 [打印本页]

作者
Author:
火车头    时间: 2023-2-6 17:09
标题: openmolcas在集群上安装编译失败

在计算集群上按本帖(离线安装OpenMolcas-v22.06.md · main · Jingxiang Zou / qc_install_tutorials · GitLab)安装openmolcas编译不成功。不知问题出在哪儿,还请大神指教。
PS:安装了cmake3.26,Intel oneapi 最新版,Anaconda Python3

作者
Author:
wjc404    时间: 2023-2-6 17:25
需要从下面那幅图的打印内容往上看,找到编译器报错的内容是什么。从现在给的两幅图还判断不了哪里出错了。
作者
Author:
abin    时间: 2023-2-6 17:31
这个链接有下载即用的。

https://pan.baidu.com/s/1r7PduYXqjn3kpS-ie0H8NQ?pwd=aknc

不过这里没有任何编译源码的信息。
作者
Author:
zjxitcc    时间: 2023-2-6 18:07
先找出第一次报错的地方。另外,你装的是哪个版本的OpenMolcas?
作者
Author:
火车头    时间: 2023-2-6 19:12
zjxitcc 发表于 2023-2-6 18:07
先找出第一次报错的地方。另外,你装的是哪个版本的OpenMolcas?

谢谢回复。我装的是v22.10版openmolcas。
我又做了一遍,编译前一步运行这个代码
CC=icc CXX=icpc FC=ifort cmake -DLINALG=MKL -DOPENMP=ON \
-DCMAKE_INSTALL_PREFIX=/opt/soft/OpenMolcas-v22.10 ..
出现黄色字体警告,但是按帖子说的不需要HDF5库所以我就没管。
编译的时候提示下图,但是我网上搜了一下,也看了一下CMakeLists.txt文件里面cmake_minimum_required (VERSION 3.12)是在project()前面的,似乎没有问题呀。


作者
Author:
火车头    时间: 2023-2-6 19:14
wjc404 发表于 2023-2-6 17:25
需要从下面那幅图的打印内容往上看,找到编译器报错的内容是什么。从现在给的两幅图还判断不了哪里出错了。

谢谢!我回复到下面了。
作者
Author:
火车头    时间: 2023-2-6 19:14
abin 发表于 2023-2-6 17:31
这个链接有下载即用的。

https://pan.baidu.com/s/1r7PduYXqjn3kpS-ie0H8NQ?pwd=aknc

谢谢!

作者
Author:
zjxitcc    时间: 2023-2-6 19:21
火车头 发表于 2023-2-6 19:12
谢谢回复。我装的是v22.10版openmolcas。
我又做了一遍,编译前一步运行这个代码
CC=icc CXX=icpc FC=i ...

这个是警告,不是报错原因,不用管这个警告。有真正的报错之处。
作者
Author:
火车头    时间: 2023-2-6 19:47
zjxitcc 发表于 2023-2-6 19:21
这个是警告,不是报错原因,不用管这个警告。有真正的报错之处。

找到一处错误,我查了一下,说是可能是编译用的核数太多,我改为 make -j2试了试也不行

作者
Author:
wjc404    时间: 2023-2-6 20:01
本帖最后由 wjc404 于 2023-2-6 20:03 编辑

可能是被ifort的小问题坑了。如果确认和Intel全家桶相关的cmake变量和所有环境变量全都没问题,还有这个错,则可以在cmake调用时加上-DBUILD_TESTING=OFF然后再构建,以跳过unit_tests模块的编译(之后跑pymolcas verify应该还能照样跑)。
作者
Author:
zjxitcc    时间: 2023-2-6 20:12
火车头 发表于 2023-2-6 19:47
找到一处错误,我查了一下,说是可能是编译用的核数太多,我改为 make -j2试了试也不行

运行echo $MKLROOT有显示MKL库路径么?cmake那一步屏幕上有没有显示自动搜索到了MKL库路径?
作者
Author:
火车头    时间: 2023-2-6 20:16
本帖最后由 火车头 于 2023-2-6 20:19 编辑
zjxitcc 发表于 2023-2-6 20:12
运行echo $MKLROOT有显示MKL库路径么?cmake那一步屏幕上有没有显示自动搜索到了MKL库路径?

这样的,似乎,还是用的之前老版本的intel?

作者
Author:
zjxitcc    时间: 2023-2-6 21:28
火车头 发表于 2023-2-6 20:16
这样的,似乎,还是用的之前老版本的intel?

截图显示intel编译器和MKL库都用的是2015,并非你一开始所说Intel OneAPI,可能你的报错是因为你的编译器太旧了
作者
Author:
火车头    时间: 2023-2-7 08:35
zjxitcc 发表于 2023-2-6 21:28
截图显示intel编译器和MKL库都用的是2015,并非你一开始所说Intel OneAPI,可能你的报错是因为你的编译器 ...

我按Intel官网的方式安装了Intel OneAPI(没有设置环境变量的步骤),但是之前机器里安装了2015版,我把/etc/profile里的老版本环境变量注释掉,source后echo $MKLROOT显示还是2015版的库,不知道该要怎么操作呢?
作者
Author:
zjxitcc    时间: 2023-2-7 12:27
本帖最后由 zjxitcc 于 2023-2-7 12:29 编辑
火车头 发表于 2023-2-7 08:35
我按Intel官网的方式安装了Intel OneAPI(没有设置环境变量的步骤),但是之前机器里安装了2015版,我把/ ...

不要source,试试退出重登。如果写了Intel OneAPI环境变量,登录时会显示类似这样
  1. :: initializing oneAPI environment ...
  2.    -bash: BASH_VERSION = 4.2.46(2)-release
  3. :: clck -- latest
  4. :: compiler -- latest
  5. :: debugger -- latest
  6. :: dev-utilities -- latest
  7. :: inspector -- latest
  8. :: itac -- latest
  9. :: mkl -- latest
  10. :: mpi -- latest
  11. :: tbb -- latest
  12. :: oneAPI environment initialized ::
复制代码
一看便知。Intel OneAPI的环境变量一般是这么写的
  1. . /opt/intel/oneapi/setvars.sh
复制代码
注意点号后有个空格。

作者
Author:
火车头    时间: 2023-2-7 17:37
本帖最后由 火车头 于 2023-2-7 17:40 编辑
zjxitcc 发表于 2023-2-7 12:27
不要source,试试退出重登。如果写了Intel OneAPI环境变量,登录时会显示类似这样
一看便知。Intel OneA ...

我把环境变量设置好了,echo $MKLROOT也能出现正确的版本重新安装步骤,在cmake步骤又出现问题了


作者
Author:
zjxitcc    时间: 2023-2-7 18:10
火车头 发表于 2023-2-7 17:37
我把环境变量设置好了,echo $MKLROOT也能出现正确的版本重新安装步骤,在cmake步骤又出现问题了

运行which ifort查看是否有Intel Fortran编译器。如果没有,可能你没安装。Base Toolkit包里我记得没有ifort。可以参考我写的《Linux下安装Intel oneAPI

作者
Author:
火车头    时间: 2023-2-7 18:44
本帖最后由 火车头 于 2023-2-7 20:38 编辑
zjxitcc 发表于 2023-2-7 18:10
运行which ifort查看是否有Intel Fortran编译器。如果没有,可能你没安装。Base Toolkit包里我记得没有if ...

我运行了,确实可能没有安装ifort。我按Linux下安装Intel oneAPI》重新安装了oneAPI,又折腾几个问题,终于成功安装完成测试了!感谢大佬一直指点!

作者
Author:
火车头    时间: 2023-2-7 22:51
我测试了测试集所有任务,发现有两个失败,输出文件见附件。不知有没有影响?

作者
Author:
zjxitcc    时间: 2023-2-8 00:34
火车头 发表于 2023-2-7 22:51
我测试了测试集所有任务,发现有两个失败,输出文件见附件。不知有没有影响?

没啥问题。我自己的习惯是,安装完一款程序,算个例子,让它与其他程序结果能完全对应上。比如写个gjf文件
  1. %mem=4GB
  2. %nprocshared=2
  3. #p CASSCF/cc-pVDZ

  4. mokit{CASSCF_prog=OpenMolcas}

  5. 0 1
  6. O      -0.23497692    0.90193619   -0.068688
  7. H       1.26502308    0.90193619   -0.068688
  8. H      -0.73568721    2.31589843   -0.068688
复制代码
用MOKIT的automr运行一下
  1. automr h2o.gjf >h2o.out 2>&1
复制代码
结果
E(CASCI)  =       -75.90802165 a.u.
E(CASSCF) =       -75.90823031 a.u.

再把关键词CASSCF_prog=OpenMolcas删掉,默认调用PySCF进行CASSCF计算,结果
E(CASCI)  =       -75.90802167 a.u.
E(CASSCF) =       -75.90823032 a.u.

对得很好,说明安装的程序大概率没问题。期间自动产生的OpenMolcas输入文件和轨道文件见下,你从这两个文件直接出发,也能算出一样的结果
(, 下载次数 Times of downloads: 1) (, 下载次数 Times of downloads: 0)


作者
Author:
scf    时间: 2023-2-8 07:22
本帖最后由 scf 于 2023-2-8 07:24 编辑

一般量子化学程序的绝对能量能在多大程度上一致?我曾经比较过不同的程序和自己写的,一般在10^-11上可以一致, 再往下一般做不到 https://en.wikipedia.org/wiki/Do ... oating-point_format 双精度原则上可以到10^-16?
作者
Author:
火车头    时间: 2023-2-8 08:50
zjxitcc 发表于 2023-2-8 00:34
没啥问题。我自己的习惯是,安装完一款程序,算个例子,让它与其他程序结果能完全对应上。比如写个gjf文 ...

好的,感谢!
作者
Author:
zjxitcc    时间: 2023-2-8 18:34
scf 发表于 2023-2-8 07:22
一般量子化学程序的绝对能量能在多大程度上一致?我曾经比较过不同的程序和自己写的,一般在10^-11上可以一致 ...

根据我的个人经验,在控制积分精度和各种精度参数前提下,使用TZ级别的基组,气相电子能量能对到1e-6或1e-7,;如果加了弥散函数,只能到1e-5或1e-6。当然,体系小、基组小的时候,对到1e-8或1e-9没问题。
作者
Author:
chenxl13    时间: 2024-6-18 18:09
zjxitcc 发表于 2023-2-7 18:10
运行which ifort查看是否有Intel Fortran编译器。如果没有,可能你没安装。Base Toolkit包里我记得没有if ...

按照教程网上下载的安装包是2024年的oneAPI,配置好环境变量后运行,显示没有icc和icpc,ifort和mpirun是有的。




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