2

Intel MPI编译BerkeleyGW

 1 year ago
source link: https://cndaqiang.github.io/2022/10/21/intel-BerkeleyGW/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

编译BerkeleyGW

下载源代码

BerkeleyGW

[HUAIROU cndaqiang@login01 ifort-impi2020]$tar xzvf BerkeleyGW-3.0.1.tar.gz
[HUAIROU cndaqiang@login01 ifort-impi2020]$cd BerkeleyGW-3.0.1

以怀柔服务器为例

module unload openmpi3/3.1.4
module load parallel_studio/2020.2.254
module load intelmpi/2020.2.254
module load gnu8/8.3.0

配置编译参数

flavor.mk

[HUAIROU cndaqiang@login01 BerkeleyGW-3.0.1]$cp flavor_cplx.mk flavor.mk

arch.mk

[HUAIROU cndaqiang@login01 BerkeleyGW-3.0.1]$cp config/edison.nersc.gov_intel.mk arch.mk

修改vi arch.mk

  • 因为我没装HDF5,注释掉HDF5相关的内容
MATHFLAG  = -DUSESCALAPACK -DUNPACKED -DUSEFFTW3
# -DHDF5
#HDF5_LDIR    =  $(HDF5_DIR)/lib
#HDF5LIB      =  $(HDF5_LDIR)/libhdf5hl_fortran.a \
#                $(HDF5_LDIR)/libhdf5_hl.a \
#                $(HDF5_LDIR)/libhdf5_fortran.a \
#                $(HDF5_LDIR)/libhdf5.a -lz -ldl
#HDF5INCLUDE  = $(HDF5_DIR)/include
  • 使用intel家编译器mpiicc mpiicpc mpiifort
FCPP    = /usr/bin/cpp -ansi
F90free = mpiifort -free -qopenmp
LINK    = mpiifort -qopenmp
FOPTS   = -O3  -g
FNOOPTS = $(FOPTS)
MOD_OPT = -module
INCFLAG = -I

C_PARAFLAG  = -DPARA -DMPICH_IGNORE_CXX_SEEK
CC_COMP = mpiicpc
C_COMP  = mpiicc
C_LINK  = mpiicc
C_OPTS  = -O3  -qopenmp
C_DEBUGFLAG =

最终我的arch.mk

编译epsilon

[HUAIROU cndaqiang@login01 BerkeleyGW-3.0.1]$make epsilon -j40
[HUAIROU cndaqiang@login01 BerkeleyGW-3.0.1]$make all-flavors -j 40

预处理不合适

去掉FCPP = /usr/bin/cpp -ansi -C中的-C参数, 更多解决办法见Fortran预处理引入/usr/include/stdc-predef.h报错Unclassifiable statement

<命令行>(1): warning #5117: Bad # preprocessor line
# 1 "/usr/include/stdc-predef.h" 1 3 4
-----------------------------------^
/usr/include/stdc-predef.h(1): error #5082: Syntax error, found '/' when expecting one of: <LABEL> <END-OF-STATEMENT> ; <IDENTIFIER> TYPE MODULE ELEMENTAL IMPURE NON_RECURSIVE ...
/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
^

本文首发于我的博客@cndaqiang.
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK