preCICE软件在CentOS7超算集群上无root权限从源码编译安装记录贴
-
最近想学习一下用OpenFOAM做流固耦合,看了一圈对preCICE起了一点兴趣,于是在学校超算集群上安装了一下preCICE,想以后能把OpenFOAM和其他的软件结合起来算点东西.
看论坛里面似乎没有人说preCICE的安装,所以开一个贴记录一下从源码编译安装preCICE的痛苦经历,希望日后可以帮到需要帮助的同学哈哈哈.
首先介绍一下集群的配置: 浪潮的机架式服务器,操作系统CentOS Linux release 7.5.1804,内核3.10.0-862.el7.x86_64. 对就是这么老...更可喜的是我的账号没有root权限,所以无论是OpenFOAM的各项依赖还是preCICE,我都是从源码编译安装的. (spack不知道为什么也用不了,非常奇怪,暴风哭泣)
CPU是intel Platinum 8358 CPU @ 2.60GHz(双路CPU,单节点64核心,关闭超线程),内存1TB,支持InfiniBand网络. 一共80个节点,有那么几十张sxm-80GB-A100.
学校集群上我能用上且现有的依赖只有gcc-9.2.0,m4,openMPI-4.0.3,Cmake. 其他的全都要从源码编译.
OpenFOAM的依赖主要有flex,bison,boost,zlib? 这些都比较好解决. OpenFOAM高版本的编译安装就很奇怪,2312版本的solvers编译我是改了源码才编译完成,不过src和utilities无报错.
下面开始preCICE的依赖安装.
-
首先从preCICE官网发现CentOS7最高只支持到preCICE v2.3.0,而依赖项中Eigen3非常好处理,难点在于libxml2...
对,集群上libxml2库我找不到,只能自己安装. 推荐安装libxml2-2.9.13,这个版本修复了一个关于Python的bug. 在configure时要编译有动态链接库的版本:
./configure --prefix=libxml2的/安装/路径 CPPFLAGS="-I集群中python3的位置(我是miniconda3)" LDFLAGS="-L$HOME/miniconda3/lib" --enable-shared=yes
然后PETSc库也得自己装,顺带把lapack和BLAS也让他一起装了
./configure --with-precision=double --prefix=petsc/的/安装路径 --with-openmpi=1 --with-openmpi-dir=/openMPI/的路径 --download-f2cblaslapack --with-fc=0
make和make install步骤就省略了