Chinaunix首页 | 论坛 | 博客
  • 博客访问: 115596
  • 博文数量: 14
  • 博客积分: 400
  • 博客等级: 一等列兵
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-19 21:52
文章分类
文章存档

2021年(2)

2016年(2)

2014年(1)

2011年(4)

2010年(5)

我的朋友

分类: LINUX

2010-12-29 19:32:20

先安装ifort11,修改.bashrc,添加ifort和mkl的环境

source /opt/intel/Compiler/11.1/072/bin/intel64/ifortvars_intel64.sh
source /opt/intel/Compiler/11.1/072/mkl/tools/environment/mklvarsem64t.sh


修改完记得要 source ~/.bashrc 一下

再安装mpich2-1.3.1(./configure --prefix=/opt/mpich2-1.3.1, make, make install)
修改.bashrc,添加mpich2的环境

export PATH=$PATH:/opt/mpich2-1.3.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/mpich2-1.3.1/lib


修改完记得要 source ~/.bashrc 一下

解压文件:
$ tar -zxvf siesta-3.0-rc2.tgz

进入要生成执行文件的目录,可以自己随便建立。这样可以利用不同参数编译不同版本的siesta 放在不同的目录里。这是与siesta-2.0.2 相比,采用的一种新的执行文件生成机制,例如到Obj 目录生成执行文件:
$ cd siesta-3.0-rc2/Obj/

如果Obj 目录和Src 目录是平级的,运行:
$ sh ../Src/obj_setup.sh

可以使用
$ ../Src/configure
命令来生成arch.make,当然也可以直接用编辑器输入
mkl库是ifort11自带的,MPI库是mpich2的
下面是我的arch.make

#
# This file is part of the SIESTA package.
#
# Copyright (c) Fundacion General Universidad Autonoma de Madrid:
# E.Artacho, J.Gale, A.Garcia, J.Junquera, P.Ordejon, D.Sanchez-Portal
# and J.M.Soler, 1996- .
#
# Use of this software constitutes agreement with the full conditions
# given in the SIESTA license, as signed by all legitimate users.
#
.SUFFIXES:
.SUFFIXES: .f .F .o .a .f90 .F90

SIESTA_ARCH=ifort14-mpich2

FPP=
FPP_OUTPUT=
FC=mpif90
RANLIB=ranlib

SYS=nag

SP_KIND=4
DP_KIND=8
KINDS=$(SP_KIND) $(DP_KIND)

DUMMY_FOX=--enable-dummy

FFLAGS=-O2 -mp1 -pad -ip
FPPFLAGS=-DMPI # add -DMPI to enable MPI
LDFLAGS=$(FFLAGS)

ARFLAGS_EXTRA=

FCFLAGS_fixed_f=
FCFLAGS_free_f90=
FPPFLAGS_fixed_F=
FPPFLAGS_free_F90=

MKLPATH=/opt/intel/mkl/lib/intel64

BLAS_LIBS=-lmkl_blas95_lp64
LAPACK_LIBS=-lmkl_lapack95_lp64
BLACS_LIBS=-lmkl_blacs_intelmpi_lp64
SCALAPACK_LIBS=-lmkl_scalapack_lp64

ADD_LIBS=-lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -openmp -lmkl_intel_thread

COMP_LIBS=

NETCDF_LIBS=
NETCDF_INTERFACE=

LIBS=-L$(MKLPATH) $(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(NETCDF_LIBS) $(ADD_LIBS)

#SIESTA needs an F90 interface to MPI
#This will give you SIESTA's own implementation
#If your compiler vendor offers an alternative, you may change
#to it here.
MPI_INTERFACE=libmpi_f90.a
MPI_INCLUDE=/opt/mpich2-1.5/include/

#Dependency rules are created by autoconf according to whether
#discrete preprocessing is necessary or not.
.F.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_fixed_F)  $<
.F90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FPPFLAGS) $(FPPFLAGS_free_F90) $<
.f.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_fixed_f)  $<
.f90.o:
    $(FC) -c $(FFLAGS) $(INCFLAGS) $(FCFLAGS_free_f90)  $<

主要是手动加入了ADD_LIBS,另外记得最后4个$(FC)前都是一个tab,不是空格,空格的话会报错

清理
$ make clean

编译
$ make

不报错就是OK了

测试下
$ ./siesta

应该有如下输出:

Siesta Version:                                        siesta-3.0-rc2
Architecture  : x86_64-CentOS5.4-ifort11
Compiler flags: mpif90 -O2 -mp1 -pad -ip
PARALLEL version

* Running in serial mode with MPI
>> Start of run:  31-DEC-2010  11:40:03

                           ***********************
                           * WELCOME TO SIESTA *
                           ***********************

reinit: Reading from standard input
************************** Dump of input data file ****************************


看到PARALLEL version就表示是并行版本,搞定!


阅读(3250) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

chinaunix网友2010-12-30 14:08:56

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com