24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3549  |  回复: 6
【奖励】 本帖被评价1次,作者zhangguangping增加金币 0.8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

[资源] 使用gfortan,openmpi以及BLAS, BLACS, Lapack, Scalapack编译SIESTA已有1人参与

1.编译openmpi (http://www.open-mpi.org/software/ompi/v1.6/)
(1)
./configure --prefix=/home/x_guazh/software/openmpi-1.6.5 CC=gcc CXX=g++ F77=gfortran FC=gfortran
(3)
make all install
(4)
打开 ~/.bashrc 添加环境变量:
export PATH=/home/x_guazh/software/openmpi-1.6.5/bin:$PATH
export LD_LIBRARY_PATH= /home/x_guazh/software/openmpi-1.6.5/lib: $LD_LIBRARY_PATH
(5)
source ~/.bashrc

2.编译Lapack (http://www.netlib.org/lapack)
(1)
cp make.inc.example  make.inc
然后编辑Makefile,找到lib选项,编辑为:
lib: lapacklib blaslib lapackelib tmglib variants
这样就把所有的东西都编译出来,默认是不编译blas的
(2)
make
这样在目录下就会出来:
liblapack.a, blaslib.a, lapackelib.a, tmglib.a
3.编译BLACS
(1)
下载MPIBLACS: http://www.netlib.org/blacs/mpiblacs.tgz
下载补丁:http://www.netlib.org/blacs/mpiblacs-patch03.tgz
(2)
tar -zxvf mpiblacs.tgz
tar -zxvf mpiblacs-patch03.tgz
(3)
cd BLACS
cp BMAKES/Bmake.MPI-LINUX  ./Bmake.inc
(4)
vi Bmake.inc (参见:http://www.open-mpi.org/faq/?category=mpi-apps#blacs)

# Section 1:
BTOPdir = /home/x_guazh/software/BLACS
COMMLIB = MPI
# Ensure to use MPI for the communication layer
   COMMLIB = MPI
# The MPIINCdir macro is used to link in mpif.h and
# must contain the location of Open MPI's mpif.h.  
# The MPILIBdir and MPILIB macros are irrelevant
# and should be left empty.
MPIdir = /home/x_guazh/software/openmpi-1.6.5-gnu
MPILIBdir =
MPIINCdir = $(MPIdir)/include
MPILIB =
# Section 2:
SYSINC =
INTFACE = -Df77IsF2C
SENDIS =
BUFF =
TRANSCOMM = -DUseMpi2
WHATMPI =
SYSERRORS =

# Section 3:
# You may need to specify the full path to
# mpif77 / mpicc if they aren't already in
# your path.
   F77            = mpif77
   F77LOADFLAGS   =
   CC             = mpicc
   CCLOADFLAGS    =
(4) make mpi
编译完成后,在LIB下面出现:
blacsCinit_MPI-LINUX-0.a
blacsF77init_MPI-LINUX-0.a
blacs_MPI-LINUX-0.a

4.编译scalapack
参见:http://www.open-mpi.org/faq/?category=mpi-apps#scalapack
(1)
下载:http://www.netlib.org/scalapack/scalapack-2.0.2.tgz
(2)
tar zxvf scalapack-2.0.2.tgz
(3)
cd scalapack-2.0.2
(4)
cp SLmake.inc.example SLmake.inc
(5)
vi SLmake.inc
2.0.2版本的文件设置比较简单

BLASLIB       = /home/x_guazh/software/lapack-3.5.0/librefblas.a
LAPACKLIB     = /home/x_guazh/software/lapack-3.5.0/liblapack.a

5.编译siesta
把上面得到的.a文件全部拷到一个文件中,方便使用,比如~/software/lib
librefblas.a
liblapack.a
blacsCinit_MPI-LINUX-0.a
blacs_MPI-LINUX-0.a  
blacsF77init_MPI-LINUX-0.a
libscalapack.a

part of arch.make:

FFLAGS= -ftree-vectorize -O3
FFLAGS_DEBUG= -g

PATH_LIB=/home/x_guazh/software/lib

BLAS_LIBS=$(PATH_LIB)/librefblas.a
LAPACK_LIBS=$(PATH_LIB)/liblapack.a
BLACS_LIBS=$(PATH_LIB)/blacsCinit_MPI-LINUX-0.a $(PATH_LIB)/blacs_MPI-LINUX-0.a $(PATH_LIB)/blacsF77init_MPI-LINUX-0.a
SCALAPACK_LIBS=$(PATH_LIB)/libscalapack.a

#COMP_LIBS=dc_lapack.a # it it needed only if there is lack of LAPACK/BLAS
MPI_INTERFACE= libmpi_f90.a
MPI_INCLUDE=.
FPPFLAGS_MPI=-DMPI

[ Last edited by zhangguangping on 2014-1-17 at 11:43 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wiseguy2008

新虫 (初入文坛)


★★★★★ 五星级,优秀推荐

虽然都是openmpi的设置,但是为什么有些标签设置和楼主以前整理的pdf不一样,例如FFLAGS,请问楼主这个有什么影响吗
5楼2014-02-22 14:37:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wiseguy2008

新虫 (初入文坛)


如果机器是64位,那中间编译过程有哪些需要修改
7楼2014-02-25 20:12:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhangguangping 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见