前不久由于教研室科研项目需要接触了SU2这个软件,在教研室服务器上配置环境也是踩了不少的坑,现在把配置SU2环境的过程记录一下,避免以后踩坑的同时也算作一个分享吧。
首先要说明,SU2计算环境分为单核和多核并行两种(SU2官网称为Simple Build和Parallel Build)。对于Simple Build,仅需要安装SU2即可;如果想要加快计算速度,就需要用到Parallel Build,此时就需要额外安装一个支持并行计算的工具,MPI。但MPI并不是特定的一个软件,而是一套标准,它有多个实现的版本,就像Linux有Ubuntu,CentOS等等版本一样。
值得注意的一点,Parallel Build并不是在Simple Build基础上增加并行计算功能,所以,若系统中已有使用Simple Build安装的SU2,当后续需要并行计算功能时,应先将Simple Build安装的SU2删除,再进行Parallel Build安装,否则将出现虽然成功安装并行计算环境,并行也能运行,但并行计算比串行还慢的情况。
准备工作一:下载SU2和MPI的源码
由于我的研究项目要用到并行计算的功能,所以还需要下载安装MPI,读者可以根据自己的需要选择是否安装MPI。
下载SU2
在SU2的官网下载SU2的最新版源码:
SU2官网首页
SU2下载页
下载页截图如下
下拉可以看到官网提供了支持多种系统的多种格式SU2下载
这里选择下载源码编译安装,由于使用的是Ubuntu Linux系统,所以选择 .tar.gz 格式下载。
下载OpenMPI
前面提到过MPI有多个版本的实现,这里我选择的是OpenMPI
OpenMPI下载页
选择最新的4.0.2版本 .tar.gz 格式下载
下载好的两个文件如下
准备工作二:安装系统依赖环境
在SU2和MPI源码的编译过程需要用到一些依赖工具,如m4,automake,autoconf等,所以要先对这些包进行安装
sudo apt install m4
sudo apt install automake
sudo apt install autoconf
以上依赖包安装完成后即可正式开始安装SU2
安装SU2之一:Simple Build
再次强调,Simple Build仅适用于安装单核计算环境,如果需要多核并行计算,参看后面的Parallel Build安装。
一定不要在安装好了Simple Build之后直接进行Parallel Build,否则将会出现如前所述的多核慢于单核的情况。
好了,来看如何进行SU2的安装
首先将下载的SU2源码放在一个你喜欢的路径下,我的就直接放在用户主目录的 Downloads 下面了
解压SU2源码,并进入解压后的目录
tar -zxvf SU2-6.2.0.tar.gz
cd SU2-6.2.0/
SU2源码目录结构如下:
依次执行
./bootstrap
./configure --prefix=/usr/local/SU2-6.2.0-install
第二条命令中的 --prefix 参数是我指定的SU2的安装目录,你也可以将其改为你自己希望将SU2安装到的目录,或者直接将 --prefix 省略。但是强烈建议加上此参数指定一个专门的安装路径,因为省略 --prefix 后系统会默认将其安装到 /usr/local/bin 路径下,当安装的软件多了之后这个目录会相当的混乱。
我在执行第二条 ./configure 命令的时候遇到如下的一个错误
谷歌前人经验,解决方法如下
pip install python-config //如果没有安装pip那么要先 sudo apt install python-pip
解决后继续执行
./configure --prefix=/usr/local/SU2-6.2.0-install
命令执行完成后会在terminal中输出这样一段关于添加环境变量的信息
按照它的提示在 .bashrc 文件中添加上以上几行信息,注意将路径换成你自己的安装路径
vim ~/.bashrc
source ~/.bashrc //使刚刚添加的环境变量生效
接下来执行
sudo make
sudo make install
如果你的CPU是多核的,那么你可以用下面这条命令替代以上两条,以加快编译速度
sudo make -j 4 install //我的cpu是4核所以指定4,这里可以将4改为你的cpu核数
不清楚CPU是不是多核的可以这样查看系统CPU个数和每个CPU的核数:
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l //查看物理CPU个数
cat /proc/cpuinfo |grep "cores"|uniq //查看每个CPU的物理核数
到此Simple Build完成
安装SU2之二:Parallel Build
Parallel Build:安装OpenMPI
由于在Parallel安装SU2的时候需要在命令中指定openMPI的安装路径,所以需要先安装openMPI再安装SU2
第一步,还是解压源码并进入源码目录
tar -zxvf openmpi-4.0.2.tar.gz
cd openmpi-4.0.2/
openMPI源码目录结构:
执行
./configure --prefix=/usr/local/openmpi-4.0.2-install
sudo make
sudo make install //make和make install两条仍然可以用sudo make -j 4 install替代
在 .bashrc 文件中添加环境变量,注意将路径替换为你自己的安装路径
export PATH=$PATH:/usr/local/openmpi-4.0.2-install/bin
exprot LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openmpi-4.0.2-install/lib
保存 .bashrc 文件后执行 source ~/.bashrc 使环境变量生效
测试openMPI是否安装成功:
如上图,有正常的输出未报错即为安装成功。
Parallel Build:安装SU2
解压SU2源码,进入源码目录
tar -zxvf SU2-6.2.0.tar.gz
cd SU2-6.2.0/
执行
./bootstrap
下一步执行
./configure --prefix=/usr/local/SU2-6.2.0-install CXXFLAGS="-O3" --enable-mpi --with-cc=/usr/local/openmpi-4.0.2-install/bin/mpicc --with-cxx=/usr/local/openmpi-4.0.2-install/bin/mpicxx
这条命令非常长,建议复制到文本编辑器中,把路径改成你自己的路径,确认无误后再复制到terminal中执行,否则很容易因为敲错命令导致执行出错
接下来
sudo make
sudo make install //make和make install两条仍然可以用sudo make -j 4 install替代
等待命令执行完毕,Parallel Build完成