wien2k 2009 编译方法

来源:互联网 发布:linux驱动开发视频 编辑:程序博客网 时间:2024/05/22 15:58

以root用户登陆

1. 准备intel

安装intel编译器和mkl库

1.拷贝所有安装文件到opt目录

2.解压缩相应的文件,有 icc和ifort以及mkl的安装文件。

3.开始安装icc:进入解压后的目录,运行./install.sh。

4.除去询问激活方式步骤时选择"以后激活"外,其余全部采用默认安装

5.同样的步骤安装ifort和mkl.如果询问是否覆盖时,选择是

6.安装完成后,将准备好的licenses文件拷贝到/opt/intel/compiler

7.vi ~/.bashrc加入下面的内容

#--- for intel
source /opt/intel/Compiler/11.1/059/bin/iccvars.sh   intel64
source /opt/intel/Compiler/11.1/059/bin/ifortvars.sh intel64

然后重新登录或者source ~/.bashrc

2 安装pgi编译器(可选)

$cd /soft
$tar xzvf pgi-workstation-complete-x64-901.tar.gz
$cd Setup
$tar xzvf pgilinux-901.tar.gz
$./install
...
选择安装路径
安装单机版
...
$cd ../Crack
$tar xjvf pgi_9.0-1_linux64.tar.bz2
$cp pgi_9.0-1_linux64_patcher 安装目录
$cd 安装目录
$./pgi_9.0-1_linux64_patcher
$cd /soft/Crack/license.dat 安装目录

$vi ~/.bashrc 加入下面内容

#--- for pgi9.01
PATH=/opt/pgi/linux86-64/9.0/bin:$PATH
export PATH
MANPATH=$MANPATH:/opt/pgi/linux86-64/9.0/man
export MANPATH
LM_LICENSE_FILE=/opt/pgi/license.dat
export LM_LICENSE_FILE
LD_LIBRARY_PATH=/opt/pgi/linux86-64/9.0-1/libso:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
保存退出后重新登录或者source ~/.bashrc

3 安装mpich

因为wien2k采用intel编译器,这里采用intel编译器来编译mpich
$tar xzvf mpich-1.2.7p.tar.gz
$cd mpich-1.2.7p


$export CC=icc
$export CXX=icpc
$export FC=ifort
$export F90=ifort

 

上面下面4个export也可以不用打,在cnofigure中直接指定,如下。


$./configure --with-device=ch_p4 --prefix=/opt/mpich/intel -rsh=ssh -cc=icc -c++=icpc -fc=ifort -f90=ifort
$make
$make install
设置环境变量:
$vi ~/.bashrc

#--- for mpich
MPI=/opt/mpich/intel
export MPI
PATH=$PATH:$MPI/bin
export PATH
MPI_LIB=$MPI/lib
MPI_INCLUDE=$MPI/include
export MPI_LIB
export MPI_INCLUDE

重新登陆用户或者source ~/.bashrc后再编译下面的.
注意:以后如果用普通用户最好将此加入普通用户的.bashrc中。

4 安装fftw

fftw有2个版本:一个是2.X.X一个是3.X.X
对于 3.x.x,mpi接口还没有提供。所以采用2.x.x


$tar xzvf fftw-2.1.5.tar.gz
$./confiure CC=icc -prefix=/opt/mathlibs/fftw --enable-mpi --enable-threads
$make
$make install

5 安装wien2k

$tar xvf WIEN2k_09_3.tar
$gunzip *.gz
$. /expand_lapw
$./siteconfig
S specify a system 选择系统
输入K [代表 Linux (Intel ifort 10.1 compiler + mkl 10.0 )]
输入S 保存

C specify compiler 选择编译器
输入ifort
输入icc

O specify compiler options, BLAS and LAPACK 选择编译器参数
输入L
输入 $(FOPT) -L/opt/intel/mkl/10.2.2.025/lib/em64t
输入R
输入 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide -lpthread
输入S [保存]

P configure Parallel execution 选择并行编译参数
Shared Memory Architecture? (y/n)
选择y

Do you have MPI and Scalapack installed and intend to run
finegrained parallel? (This is usefull only for BIG cases)!
(y/n)
输入y

Your compiler:
输入mpif90

输入RP
输入
-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64 -lmkl_lapack -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide -lpthread -I/opt/mpich/intel/include/ -L/opt/mathlibs/fftw/lib/ -lfftw_mpi -lfftw

输入MP
输入mpirun -np _NP_ -machinefile _HOSTS_ _EXEC_
输入 S [保存]

D Dimension Parameters
输入 D
输入 1
输入 NMATMAX
输入 数值 [ 大小根据内存来确定]
输入 NUME
输入 数值 [ 大小根据内存来确定]

例子:
NMATMAX=sqrt(内存转化为字节数/10)
NUME=NMATMAX/10

假如内存为4G,即4000 000 000字节。Sqrt(4000 000 000/10)=20000
NMATMAX=20000
NUME=20000/10=2000

输入 Q [完成数值设置]

R Compile/Recompile

选择A [编译所有]

编译完成后,如果在最后屏幕中没有看到Error字样,表示全部正确。
如果是第一次安装 还需要设置perl路径,保持默认即可。

 

 

以普通用户执行

$./userconfig


输入编辑器vim
输入用户工作路径
输入用户临时文件路径
其他保持默认
Edit .rhosts file now? 选择N

 

以普通用户执行

$./w2web


默认将在7890端口开启wien2k的web服务器端。


在firefox中输入http://yourip:7890

用来访问wien2k设置。

 

6 替换csh

系统默认的csh是tcsh的链接,对于一部分比较新的Linux版本,Wien2k需要更换这个文件。

可以用其他系统的csh或者tcsh文件或者从源代码编译一个可用的csh或者tcsh覆盖默认的csh和tcsh即可。


至此 wien2k宣告结束

 

 

后记:

此方法可能在某些平台上不能成功安装,主要出错在fftw数学库文件上