OCTOPUS编译记录

最近打算试一试td-dft计算,查阅了一些文献发现OCTOPUS似乎比较合适。由于软件比较冷门,而且官方文档对于使用Intel编译器进行编译的方法写的并不清楚,因此编译过程中遇到了不少坑,在此记录一下我的编译方法,希望能够帮助到后来人。

1.安装Intel oneAPI

在Intel官网(https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html)获取Intel® oneAPI Base Toolkit和Intel® oneAPI HPC Toolkit,并按照页面指示安装,配置环境变量

安装Octopus需要依赖BLAS、LAPACK、FFTW 3,由于我们使用了Intel oneAPI,我们可以直接调用Intel MKL,无需再手动安装了,但除此之外的GSL和LibXC仍是必须手动安装的依赖。

2.安装LibXC

libxc通过gitlab进行发布,官方下载地址https://gitlab.com/libxc/libxc/-/releases

由于libxc的cmake安装方式还不完善,推荐使用make进行安装,如果没有./configure文件,需要先运行GNU autotools生成。PATH/TO/LIBXC是LibXC的安装路径。

autoreconf -i
./configure --prefix=PATH/TO/LIBXC CC=mpiicc CXX=mpiicpc FC=mpiifort
make
make install

3.安装GSL

GSL也同样通过make方式安装,PATH/TO/GSL是GSL的安装路径。

./configure --prefix=PATH/TO/GSL CC=mpiicc 
make
make install

4.安装Octopus

首先进行configure,PATH/TO/OCTOPUS是Octopus的安装路径。这里blas的配置主要参考了官网https://www.octopus-code.org/documentation/main/manual/installation/porting_octopus_and_platform_specific_instructions/,并且由于blas已经包含了lapack所以这里我们可以将–with-lapack留空。

MKL_DIR=$(echo $MKLROOT | awk -F: '{ print $1 }')
./configure CC=mpiicc CXX=mpiicpc FC=mpiifort \
--prefix=PATH/TO/OCTOPUS \
--with-libxc-prefix=PATH/TO/LIBXC \
--with-gsl-prefix=PATH/TO/GSL \
--with-blas="-L$MKL_DIR/lib/intel64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lpthread -lmkl_blacs_intelmpi_lp64 -lmkl_scalapack_lp64 " \
FCFLAGS_FFTW=-I$MKL_DIR/include/fftw \
--enable-mpi

这里可能会遇到一个问题,如果libxc的安装目录里面的lib目录在你的系统里安装完成后叫lib64,这里configure的时候会找不到lib目录而报错,直接创建一个软连接ln -s lib64 lib即可解决这个问题。

此外,octopus的configure似乎并不是非常完善,有的时候即使报错了configure也不会提示,因此如果之后编译遇到问题,可以考虑检查一下日志config.log里面是否存在其他问题。

如果configure顺利,接下来就可以正式安装了。

make
make install

如果一切顺利,在PATH/TO/OCTOPUS的bin目录下面就有我们所需的octopus二进制文件了,share目录下也提供了一些可供测试的示例,我们就可以运行软件进行测试了。

参考:

https://cndaqiang.github.io/2020/10/19/huairou-octopus(提供了不同编译环境的安装方法及简单测试)

https://www.cnblogs.com/HuaNeedsPills/p/12732926.html(Intel环境下的编译)

https://blog.csdn.net/ChenXiao93/article/details/95769666(Onpenmpi环境下的编译)

https://blog.csdn.net/qq_34718338/article/details/123039137

https://cndaqiang.github.io/2019/04/11/octopus

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据