almaBTE 1.3.2安装避坑指南

almaBTE 安装避坑指南

almaBTE 官方介绍:
almaBTE consists of a library and a collection of executables allowing the user to calculate thermal transport properties of heterogeneous structures, using only ab-initio data, and solving the phonon Boltzmann Transport Equation (BTE).

almaBTE安装


官网给出了 docker image for v1.3.1 https://1drv.ms/u/s!AsAFTyZWWh4MoVgpWj1QuuUR4Jzd, image是放在OneDrive上的,你懂的,国内直连不可以,一直纳闷为什么客户端OneDrive能用,网页却无法链接。
另外我还不会docker部署,就先放弃吧,老老实实源码安装。

以下是具体安装过程

官方文档安装方法

按照官方文档的操作
只需要配置 cmake boost hdf5

sudo apt-get install cmake libboost-all-dev libhdf5-dev # ubuntu 下配置环境 (这三个的具体作用以后再说。。。)

如果你是centos

sudo yum install cmake3 boost-devel hdf5-devel # centos 下配置环境

关于cmake因为我在centos环境下yum install cmake 安装的cmake 不认Intel编译器环境所以建议大家安装cmake3

然后就可以编译了

sudo apt-get install cmake libboost-all-dev libhdf5-dev # ubuntu 下配置环境
#
wget http://www.almabte.eu/wp-content/uploads/2018/10/almabte-v1.3.2.tar.gz

tar -zxvf almabte-v1.3.2.tar.gz
cd almabte-v1.3.2
mkdir build
cd build
cmake3 .. # or cmake ..
# 如果过程中没有报错,会打印出找到的编译器环境以及boost,hdf5
#然后就可以
make -j 4 all # 并行make,4是调用4个核 或者 make all
#make 运行完之后进行测试
make -j 4 test # 测试过程会打印Passed or Failed
# 如果足够幸运,安装完成那么build目录下src中会出现almaBET的所有可执行文件
#添加进环境变量
echo 'export PATH=$PATH:"/build/src" ' >> ~/.bashrc #alma_dir改为alma软件的路径
source ~/.bashrc

可以尽情玩耍了!!!

理论上说这样就该成功了,可是安装过程中总会遇到一些问题,比如你没有管理员权限。。

服务器上个人用户安装 almaBTE


就我亲身经历而言,有管理员权限我也没有很简单的安装上almaBTE;百度之后按照编译安装almabte-1.3.1心得这一篇教程,最终安装成功。但这中间还是遇到一些问题,在这里码一码。

前期准备

并行计算库,hdf5-1.8.20,boost-1.68.0。

安装过程

具体的编译过程参考编译安装almabte-1.3.1心得,我这里最简单的列一下过程。

  1. 并行环境一般服务器都会安装好,这里不再赘述,我用的Intel全家桶。另外cmake的安装这里也不赘述。

  2. hdf5-1.8.20下载编译,
    常规的 ./confugure && make && make install

    wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.20/src/hdf5-1.8.20.tar.bz2
    tar -jxvf hdf5-1.8.20.tar.bz2
    cd hdf5-1.8.20
    ./configure --prefix=/home/js/software/hdf5-1.8.20 --enable-cxx #设置安装目录,并使用c
    make
    make isntall
    # 安装以后检查是否生成 libhdf5_cpp.so
    #加入环境变量
    export PATH=$PATH:/home/js/software/hdf5-1.8.20/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/js/software/hdf5-1.8.20/lib
    export CPATH=$CPATH:/home/js/software/hdf5-1.8.20/include
    
  3. Boost编译

    这里要注意修改一个project-config.jam

    wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.bz2
    tar -jxvf boost_1_68_0.tar.bz2
    cd boost_1_68_0
    ./bootstrap.sh --prefix=/home/js/software/boost_1_68_0
    #之后会生成一个project-config.jam文件,用vi之类的打开,在末尾加上
    using mpi : /opt/intel/impi/2019.2.187/intel64/bin/mpiccmpicc ;
    # 声明mpicc路径,注意空格,
    #编译完之后应该有libboost_mpi.so、libboost_mpi.a之类的,否则编译失败
    #总之一定要生成boost的mpi库,因为编译almabte要用到。这里参考的是https://www.boost.org/doc/libs/1_70_0/doc/html/mpi/getting_started.html
    #然后编译安装boost
    ./b2
    ./b2 install
    
  4. 编译almaBTE

    进入almaBTE文件夹

    mkdir build
    cd build
    cmake .. # or cmake3 ..
    

    如果正常的话这里就会打印,找到了相关的Intel编译器,以及boost和hdf5。

    如果没有成功的话,则修改上层目录中的CMakeLists.txt添加boosthdf5的路径

    vi ../CMakeLists.txt
    

    找到 # Find some components from Boost.

    增加一行

    set(BOOST_ROOT "/home/js/software/boost_1_68_0") ####修改这里为boost的路径
    

    最终为

    # Find some components from Boost.
    set(BOOST_ROOT "/home/js/software/boost_1_68_0") ####修改这里为boost的路径
    find_package(Boost COMPONENTS system filesystem mpi serialization log REQUIRED)
    include_directories(${Boost_INCLUDE_DIR})
    link_directories(${Boost_LIBRARY_DIR})
    add_definitions(-DBOOST_LOG_DYN_LINK)
    set(Boost_USE_MULTITHREADED OFF)
    

    如果hdf5报错,同样在CMakeLists.txt中,定位到# Try to find hdf5 in the system.

    添加

    set ( HDF5_ROOT "/home/js/software/hdf5-1.8.20"  )
    

    解决上述问题之后,进入almaBTEbuild文件夹

    cmake ..
    make -j 4 all
    make -j 4 test
    echo 'export PATH=$PATH:"/build/src" ' >> ~/.bashrc #alma_dir改为alma软件的路径
    source ~/.bashrc
    

    test完成以后加入环境变量,就可以在任何地方玩耍了。

总结

总结一下这次almaBTE的安装,

  1. Linux下软件安装一定要确定清楚依赖
  2. 同样的依赖,编译依赖时,参数不同,产生的libxxx.so等不同,可能作用就不一样了。默认安装有时候会有问题。这就感觉安装软件没有win那样双击简便。这也和Linux特色有关。
  3. Linux就是用来折腾的

我曾经尝试过把centos7作为主力系统,vm中win10做辅助系统。但是用了1个星期后,我还是转回了我的win10。。。主要是离不开win10,vm中win又时常崩溃(原因不知),又没时间折腾了。如果Linux(centos7)下的软件生态更好一点,也许就完全可以办公了。Linux敲代码还是很舒服,毕竟各种IDE都支持Linux。(用centos而不用其它的Ubuntu等,是因为要做计算服务器用,据说centos更稳定,我也没做过测试。)


参考


  • 编译安装almabte-1.3.1心得 https://blog.csdn.net/samzlhd/article/details/90453405

  • http://www.almabte.eu/

你可能感兴趣的:(almaBTE 1.3.2安装避坑指南)