编译安装Trilinos(Ubuntu)

2 篇文章 0 订阅


前言

近期正在尝试调试配置数字图像相关开源项目DICe,过程中,由于在没有完全阅读完操作文档就直接开始配置环境,导致花费了很多时间绕了很多弯路。在这些弯路中,该项目由于依赖于sandia开发的一个求解大规模科学计算问题的软件包——Trilinos,最难走的莫过于对它的调试和配置,所幸最终还是将它调通,这里将经验进行分享,也为警醒自己调试开源项目时先把说明书看完再调,说不定已经有现成的编译脚本!!

Trilinos介绍

Trilinos是sandia开发的一个求解大规模科学计算问题的软件包,它集成了很多算法库,以解决大规模、复杂的多物理工程和科学问题。像线性代数相关的运算,这个包可以说是非常强大。

在这里插入图片描述
官网地址:https://trilinos.github.io/
官方配置方法:https://trilinos.github.io/getting_started.html
Github源码:https://github.com/trilinos/Trilinos

官方的配置介绍文档非常详细,但全英文且内容非常多,如果是熟练的开发者建议直接参考文档,如果是和我一样小白可以尝试用我的方法,避免一些我已经踩过的坑。

一.准备工作

  1. 更新软件包sudo apt-get update;
  2. 安装gitsudo apt-get install git;
  3. 安装mpich并配置环境变量,详细操作请见ubuntu16.04一步一步安装配置mpich
  4. 安装cmakegitsudo apt-get install cmake;
  5. 安装gfortransudo apt-get install gfortran
  6. 安装BLAS和LAPACK算法包的库sudo apt-get install libblas-dev liblapack-dev

也可以直接安装LAPACK和BLAS的算法包,推荐使用vcpkg直接安装这两个算法包。

二.安装配置Trilinos

官方配置文档:https://trilinos.org/docs/files/TrilinosBuildReference.html
文档很长,其中大部分章节是在讲configure时候的命令,各个flag的描述及作用以及其依赖项,如果只是需要新增几个附加包可以直接参考的我的编译命令修改即可。

1.下载源码&新建Build文件夹

可以采用git的方式,或者是自行下载特定版本的源码进行解压。

git clone https://github.com/trilinos/Trilinos.git
cd Trilinos
mkdir build
cd build

2.Configure

以下是我的完整cmake命令,之后会进行分解说明(csdn代码片不能自动换行,所以就用这种方式展示了。。),也可以自己写cmake脚本进行执行,官方文档里也强烈建议这样操作

cmake . . .. .. -DCMAKE_INSTALL_PREFIX=$HOME/install/Trilinos -DTPL_ENABLE_MPI:BOOL=ON -DTrilinos_ENABLE_ALL_PACKAGES:BOOL=OFF -DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON -DTrilinos_ENABLE_TESTS:BOOL=ON -DTrilinos_ENABLE_EXAMPLES:BOOL=ON -DTrilinos_ENABLE_EpetraExt:BOOL=ON -DTrilinos_ENABLE_Epetra:BOOL=ON -DTrilinos_ENABLE_Teuchos:BOOL=ON -DTPL_ENABLE_BLAS:BOOL=ON -DTPL_ENABLE_LAPACK:BOOL=ON -DCMAKE_CXX_FLAGS:STRING="-O3" -DCMAKE_C_FLAGS:STRING="-O3" -DCMAKE_Fortran_FLAGS:STRING="-O5" -DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/mpicxx -DCMAKE_C_COMPILER:FILEPATH=/usr/bin/mpicc -DMPI_BASE_DIR:PATH="/usr/lib/openmpi" -DMPI_BIN_DIR:PATH="/usr/bin" -DMPI_EXEC_MAX_NUMPROCS:STRING=2 -DMPI_EXEC:FILEPATH=“mpirun” -DMPI_EXEC_NUMPROCS_FLAG:STRING=-np -DCMAKE_Fortran_COMPILER:FILEPATH=/usr/bin/gfortran -DBLAS_LIBRARY_NAMES:STRING=“blas” -DBLAS_LIBRARY_DIRS:PATH=/usr/lib/libblas -DLAPACK_LIBRARY_NAMES:STRING=“lapack” -DLAPACK_LIBRARY_DIRS:PATH=/usr/lib/lapack

#命令分解说明#

  • (非必要项)install的生成路径,如果缺省则生成在本地文件夹中
-DCMAKE_INSTALL_PREFIX=$HOME/install/Trilinos
  • (必要项)配置时附加包的情况,如果需要所有附加包,则把ALL_PACKAGES项改为ON,另一项OFF【这样大概率过不去,因为很多附加包依赖项会缺失】
-DTrilinos_ENABLE_ALL_PACKAGES:BOOL=OFF
-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON
  • (非必要项)是否配置test工具,开启的话之后会在build文件夹中生成test文件夹便于测试生成情况,建议勾选
-DTrilinos_ENABLE_TESTS:BOOL=ON
  • (非必要项)是否配置test工具,开启的话之后会在build文件夹中生成示例,建议勾选
-DTrilinos_ENABLE_EXAMPLES:BOOL=ON
  • (必要项)需要配置的Trilinos自身软件包,根据需要进行设定,Trilinos所包含的包可参考官网的列表
-DTrilinos_ENABLE_EpetraExt:BOOL=ON 
-DTrilinos_ENABLE_Epetra:BOOL=ON 
-DTrilinos_ENABLE_Teuchos:BOOL=ON
  • (必要项)需要配置的第三方软件包,根据需要进行设定,建议配置MPI、BLAS、LAPACK
-DTPL_ENABLE_MPI:BOOL=ON
-DTPL_ENABLE_BLAS:BOOL=ON   
-DTPL_ENABLE_LAPACK:BOOL=ON
  • (必要项)编译器相关配置,根据需要进行修改,但不要缺失
-DCMAKE_CXX_FLAGS:STRING="-O3"      
-DCMAKE_C_FLAGS:STRING="-O3"      
-DCMAKE_Fortran_FLAGS:STRING="-O5"      
-DCMAKE_CXX_COMPILER:FILEPATH=/usr/bin/mpicxx      
-DCMAKE_C_COMPILER:FILEPATH=/usr/bin/mpicc 
-DCMAKE_Fortran_COMPILER:FILEPATH=/usr/bin/gfortran
  • (必要项)第三方软件包依赖项配置,前面开启了什么第三方包,这里就需要配置对应的依赖,否则编译不通过
-DMPI_BASE_DIR:PATH="/usr/lib/openmpi"      
-DMPI_BIN_DIR:PATH="/usr/bin"      
-DMPI_EXEC_MAX_NUMPROCS:STRING=2      
-DMPI_EXEC:FILEPATH="mpirun"      
-DMPI_EXEC_NUMPROCS_FLAG:STRING=-np
#使用vcpkg安装的blas和lapack
-DBLAS_LIBRARY_NAMES:STRING="blas"      
-DBLAS_LIBRARY_DIRS:PATH=/usr/lib/libblas      
-DLAPACK_LIBRARY_NAMES:STRING="lapack"      
-DLAPACK_LIBRARY_DIRS:PATH=/usr/lib/lapack
#使用apt-get安装的blas和lapack的库
-DBLAS_LIBRARY_NAMES:STRING="blas"      
-DBLAS_LIBRARY_DIRS:PATH=/usr/lib/libblas.so.3      
-DLAPACK_LIBRARY_NAMES:STRING="lapack"      
-DLAPACK_LIBRARY_DIRS:PATH=/usr/lib/liblapack.so.3

3.Build&Install

上面编译配置通过后,会看到configure done;generate done的字样。接下来就可以使用下列命令进行生成

j4是指4个处理器进行生成,可以根据实际情况进行修改

make -j4
make -j4 install

完成之后,就可以在之前设定好的intall文件夹中看到安装好的Trilinos了。

参考引用

  1. Trilinos编译安装
  2. 安装trilinos(1)
  3. Trilinos 使用
  • 4
    点赞
  • 8
    收藏
  • 打赏
    打赏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViolentElder

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值