计算化学公社

标题: ubuntu 安装 Dalton [打印本页]

作者
Author:
wxyhgk    时间: 2024-10-11 17:32
标题: ubuntu 安装 Dalton
本帖最后由 wxyhgk 于 2024-10-11 17:35 编辑


说明:

本文由 ChatGPT 和 Notion AI 辅助完成

系统:Ubuntu 22.04,20.04 均测试成功

dalton 版本:Dalton 2020





Dalton 是一个开源的量子化学计算软件套件,专门用于研究分子的电子结构。

Dalton 的优点在于它能够进行各种高级的电子结构计算(如耦合簇、MCSCF、密度泛函理论等),并且提供丰富的分子性质计算功能,如磁性质和光学性质。

同时,它支持线性缩放算法,适合大型分子体系计算,且具备开源性质,便于用户进行二次开发。


0. 准备工作
如果你是新手或者不想折腾可以这样做


  1. # 如果不存在就建立 Download 文件夹
  2. mkdir -p $HOME/Downloads

  3. # 如果不存在就建立 Software/dalton2020 文件夹,这是 dalton 安装路径
  4. mkdir -p $HOME/Software/dalton2020

  5. # dalton 临时计算目录
  6. mkdir -p $HOME/Software/dalton2020/scratch
复制代码


这样设置之后,下面的代码可以无脑复制粘贴了


0.1 ssh 终端工具

到 (https://www.xterminal.cn/) 下载这个好用的 ssh 工具,有 ai 提示,系统监控,虽然有些小 bug,我个人认为非常值得推荐

0.2 tmux 安装

为了我们后续的步骤不断连,以及避免各种关闭窗口的失误什么的,这里先安装 tmux


  1. sudo apt update
  2. sudo apt install tmux -y
复制代码


然后使用 tmux 命令建立一个后台窗口,防止断连

  1. tmux new -s dalton
复制代码

后续如果遇到断连,误操作关闭窗口等各种不小心的问题,可以重新打开终端,然后运行


  1. tmux attach -t dalton
复制代码


可以进入到之前的安装部分


0.3 cmake,git 安装

安装 cmake,git

  1. sudo apt install cmake git -y
复制代码


检查 cmake
  1. cmake --version
复制代码
(, 下载次数 Times of downloads: 32)


0.4 编译器的安装


  1. sudo apt install libhwloc-dev libevent-dev -y
复制代码
  1. sudo apt install libhdf5-dev libeigen3-dev libboost-dev -y
复制代码
  1. sudo apt install libopenblas-dev gfortran gcc g++ -y
复制代码


然后检查是否安装正确
  1. gfortran --version
  2. gcc --version
  3. g++ --version

  4. mpif90 --version
  5. mpicc --version
  6. mpicxx --version
复制代码

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

0.5 openmpi 安装

  1. sudo apt install openmpi-bin openmpi-common libopenmpi-dev -y
复制代码


openmpi 安装检查


  1. mpirun --version
复制代码

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

0.6 python 设置

确认你是有有  Python2 的环境,如果没有就需要用符号链接


  1. # python 2 环境检测
  2. python -V

  3. # python3 环境检测
  4. python3 -V
复制代码


如图所示,我这里 Python3 是有的,Python 没有,即 Python 2 或指向 Python 3 的 python 符号链接不存在, 可以通过创建 Python 的符号链接来解决这个问题:
(, 下载次数 Times of downloads: 28)


这条命令会将 python 命令指向 python3,这样你就可以直接使用 python 作为命令了。

如果不做这一步检查,后面就会提示下面的 “ python: 没有那个文件或者目录”

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

0.7 数学库安装

  1. sudo apt-get install libblas-dev liblapack-dev -y
复制代码

检查数学库

  1. dpkg -l | grep blas
  2. dpkg -l | grep lapack
复制代码
(, 下载次数 Times of downloads: 33)


1. int32 安装(不推荐)
这部分先看看,熟悉下流程,不建议用这部分来安装,看完后,直接看 int64 部分的安装

1.1 拉取项目

  1. cd $HOME/Downloads
  2. git clone --recursive https://gitlab.com/dalton/dalton.git
复制代码

1.2 setup





我是用的第一种,标准并行编译(使用 MPI)

进入 dalton 文件夹

  1. cd dalton
复制代码


然后 setup

  1. ./setup --prefix=$HOME/Software/dalton2020 --mpi --blas=auto --lapack=auto
复制代码

说明:
这里如果出现错误,或者后期需要重新配置,可以这样


这个时候需要在 dalton 的下载目录,删除 CMakeCache.txt 文件

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


  1. rm ./build/CMakeCache.txt
复制代码

安全起见确认一下是否正确

  1. ./setup --show
复制代码

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


1.3 编译安装
进入 build 目录

  1. cd build
复制代码

编译

  1. make -j
复制代码

安装

  1. make install
复制代码

1.4 设置环境变量


环境变量

  1. export PATH=$HOME/Software/dalton2020/dalton:$PATH
  2. export DALTON_TMPDIR=$HOME/Software/dalton2020/scratch
  3. export OMP_NUM_THREADS=96
复制代码
说明:

1.5 ctest 运行测试


进入 build 文件夹,使用 ctest 命令

  1. cd build

  2. ctest
复制代码

有 500 多个例子,经过一段时间的运行,全部完成了了,就这个 144 例子失败了,说明这个安装是成功的

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



由于我目前对 dalton 这个软件不熟悉,

这个可能是版本的问题造成了一些什么问题,也可能是关键词不兼容?具体原因目前不清楚

1.6 int32 的缺点

使用 int32 版本编译的话,最大内存只能设置成 16 GB,

对于企业,或者稍微大一点的分子来说显然是不够用的,因此,使用下面的 int64 版本更好.


2. int64 安装(推荐)

首先拉取项目

  1. cd $HOME/Downloads
  2. git clone --recursive https://gitlab.com/dalton/dalton.git
复制代码


2.1 准备工作
dalton/DALTON/gen1int 里面去,修如下四个文件


gen1int_matrix.F90,gen1int_host.F90  gen1int_shell.F90,gen1int_api.F90

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


使用 XTerminal 直接查找替换就行了,将这四个文件里面的所有的  #include "mpif.h"


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


全部替换成

  1. #include "mpi_mod.h"
  2. #include "mpi_header.h"
复制代码

当然了你也可以用 shell 命令进行替换

  1. # 进入目标目录
  2. cd DALTON/gen1int

  3. # 定义要修改的文件
  4. files=("gen1int_matrix.F90" "gen1int_host.F90" "gen1int_shell.F90" "gen1int_api.F90")

  5. # 遍历文件并进行替换
  6. for file in "${files[@]}"
  7. do
  8.     sed -i 's/#include "mpif.h"/#include "mpi_mod.h"\n#include "mpi_header.h"/g' "$file"
  9.     echo "已处理文件: $file"
  10. done

  11. echo "所有文件处理完成"

  12. # 回到当前目录
  13. cd -
复制代码

解释一下为什么需要这么做,因为mpif.h 只能处理 32 位数据,但是我们使用 --int64 告诉 Dalton 需要 64 位数据,所以出错。

我们的代码

  1. #include "mpi_mod.h"
  2. #include "mpi_header.h"
复制代码

其中 mpi_mod.h 是用于条件性地包含 use mpi 模块,而 mpi_header.h 则用于包含 mpif.h,以便在某些情况下仍然使用传统的 mpif.h 接口。

用 use mpi 可以自动处理 32 和 64 位数据,避免数据大小不匹配。



2.2 setup

进入 dalton 下载文件夹,然后建立一个安装目录

  1. mkdir -p $HOME/Software/dalton2020_int64
复制代码


编译

  1. ./setup --prefix=$HOME/Software/dalton2020_int64 --int64 --mpi --blas=/usr/lib/x86_64-linux-gnu/libblas.so --lapack=/usr/lib/x86_64-linux-gnu/liblapack.so
复制代码


说明:

2.3 编译安装

首先进入 build 文件夹,然后在 build 文件夹里面建立两个文件: mpi_header.h, mpi_mod.h


其中 mpi_header.h 填入如下的内容,然后保存


  1. ! mpi_header.h
  2. #if defined(VAR_MPI) && !defined(USE_MPI_MOD_F90)
  3. #include "mpif.h"
  4. #endif
复制代码


mpi_mod.h 填入如下内容,然后保存

  1. ! mpi_mod.h
  2. #if defined(VAR_MPI) && defined(USE_MPI_MOD_F90)
  3.   use mpi
  4. #endif

复制代码


以下是一个简单的 Bash 脚本,可以帮助你创建并填充 mpi_header.hmpi_mod.h 文件:
  1. # 进入 build 文件夹
  2. cd build

  3. # 创建并填充 mpi_header.h 文件
  4. cat << EOF > mpi_header.h
  5. ! mpi_header.h
  6. #if defined(VAR_MPI) && !defined(USE_MPI_MOD_F90)
  7. #include "mpif.h"
  8. #endif
  9. EOF

  10. # 创建并填充 mpi_mod.h 文件
  11. cat << EOF > mpi_mod.h
  12. ! mpi_mod.h
  13. #if defined(VAR_MPI) && defined(USE_MPI_MOD_F90)
  14.   use mpi
  15. #endif
  16. EOF

  17. echo "文件已创建并填充完成。"
复制代码



然后进行编译和安装
  1. # 编译
  2. make -j
复制代码

安装

  1. # 安装
  2. make install
复制代码

2.4 环境变量设置
  1. export PATH=$HOME/Software/dalton2020_int64/dalton:$PATH
  2. export DALTON_TMPDIR=$HOME/Software/dalton2020_int64/scratch
  3. export OMP_NUM_THREADS=96
复制代码
说明:

2.5 ctest 运行测试
进入git 拉取的 dalton  下的 build 文件夹,使用 ctest 命令

  1. ctest
复制代码
(, 下载次数 Times of downloads: 33)




主要是 8个报错,其中 144 这个和之前的 int32 版本一样报错,说明这个可能是普遍情况,

缺少了什么东西,接着就是 qmmm 系列的,最后一个是 cc 的一个


3. 参考文章


可以到我博客 https://wxyhgk.com/article/ubuntu-install-dalton2020 说的更全面




作者
Author:
daddygao    时间: 2024-12-25 12:55
太棒了,参考了网上无数“教程”,装了好几次没成功,照着这个一次就装成功了。常年潜水,本次专门登陆上来表示对楼主的感谢!!!




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