Skip to content

关于PETSc安装以及MPI,编译器相关问题

关于PETSc安装以及MPI,编译器相关问题 published on No Comments on 关于PETSc安装以及MPI,编译器相关问题

老板给买的新workstation到了,通过一些测试,对并行计算的速度有了更感性的认识。其实是比较一般的机器,这个电脑如果跑单线程程序,有可能比一般台式机还要慢。但一上多核的程序,速度提高的倍速令人惊叹。所以现在想趁有时间研究研究并行的一些知识,希望后面能用的上。

PETSc是个很有名的高性能计算库,具体是什么东西就不介绍了,安装按照官网上的来就可以了,比较简单,官网上给的配置是
./configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-fblaslapack --download-mpich
前面的几个好懂,后面两个是默认你的电脑里面没有安装blas,lapack库以及mpich的,程序会自动帮你下载并编译。如果我电脑里面已经有这些,就不用下了,直接
./configure
make all

然后问题来了,我现在希望用intel c compiler来编译我的程序,在这种情况下,确实是可以指定--with-cc=icc什么的,但好像这样并不合适,因为你的MPI库有很可能是用gcc编译的,所以很有可能出问题。安装文档推荐的是直接指定mpich的目录,在这种情况下是不用指定--withc-cc的。
接下来因为我需要用intel编译mpich,官网上也介绍的很详细了。下载原程序,解压至任意路径,然后
./configure --perfix=$HOME/mpich CC=icc CXX=icpc F77=ifort FC=ifort (后面两个fortran编译器没有就不写)
这里面还可以设置优化选项,默认是-O2,可以开-O3,不过暂时觉得没必要。(具体见安装文档)
make
make install

现在MPICH装好了,因为怕和系统的openmpi冲突,所以安装到$HOME里面。设置一下环境变量,export $PATH=$HOME/mpich:$PATH,就可以用了

我们继续安装PETSc,这个程序提供了一个很好的构架,可以根据configure的不同设置不同的architecture.我们现在要用intel编译过的mpich,然后blas/lapack用intel的mkl
./configure PETSC_ARCH=linux-gnu-intel --with-blas-lapack-dir=/opt/intel/mkl --with-mpi-dir=$HOME/mpich
然后根据提示来就可以了
编译:make PETSC_DIR=/home/nicklj/petsc PETSC_ARCH=linux-gnu-intel all
测试:make PETSC_DIR=/home/nicklj/petsc PETSC_ARCH=linux-gnu-intel test
多核提速的benchmark: make PETSC_DIR=/home/nicklj/petsc PETSC_ARCH=linux-gnu-intel streams NPMAX=8

PETSc写起程序来好像还有点麻烦,后面有空可以研究研究

intel c compiler error, catastrophic error: cannot open source file "bits/c++config.h"

intel c compiler error, catastrophic error: cannot open source file "bits/c++config.h" published on No Comments on intel c compiler error, catastrophic error: cannot open source file "bits/c++config.h"

export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/x86_64-linux-gnu/c++/4.8

linux下R和OpenFOAM冲突的问题

linux下R和OpenFOAM冲突的问题 published on No Comments on linux下R和OpenFOAM冲突的问题

其实我是觉得一般不会有人同时用这两个东西了,偏偏电脑里面装了OpenFOAM,现在又在看时序分析的一些东西,要用到R。不过主要是提供一个解决问题的思路了。

主要问题原因在R的运行文件名叫"R",偏偏OpenFOAM里面有个工具也叫“R”,所以运行rstudio的时候,发生了“R Not Found"的对话框。

首先看看系统里面哪些叫这个名字的

which -a R

出现了两条

/home/*****/OpenFOAM/OpenFOAM-2.3.x/platforms/linux64GccDPOpt/bin/R
/usr/bin/R

第二条是R语言的运行文件。当然把第二个path放前面也行,但万一要用OpenFOAM呢?其实解决问题方法很简单,如果要用R这个运行环境,起个alias就行了,至于rstudio,设以下环境变量

export RSTUDIO_WHICH_R=/usr/bin/R

OK,问题解决