微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Quantum esspresso-6.7.0 用 openmpi-4.0.5 问题编译

如何解决Quantum esspresso-6.7.0 用 openmpi-4.0.5 问题编译

亲爱的, 我已经安装了 openmpi-4.0.5,当我编译 Quantum espresso-6.7.0 以在我的计算中使用我的所有线程时,使用以下命令:“ ./configure --enable-openmp ; make -j 12 ”,似乎一切正常,当我运行 test ~/qe-qe-6.7.0/PW/examples/example01/run_example 时,终端中会出现以下内容

#########################################################################################

/home/youca/Softwares/q-e-qe-6.7.0/PW/examples/example01 : starting

This example shows how to use pw.x to calculate the total energy and
the band structure of four simple systems: Si,Al,Cu,Ni.

  executables directory: /home/youca/Softwares/q-e-qe-6.7.0/bin
  pseudo directory:      /home/youca/Softwares/q-e-qe-6.7.0/pseudo
  temporary directory:   /home/youca/Softwares/q-e-qe-6.7.0/tempdir
  checking that needed directories and files exist... done

  running pw.x as: mpirun -np 4 /home/youca/Softwares/q-e-qe-6.7.0/bin/pw.x  -nk 1 -nd 1 -nb 1 -nt 1 

  running the scf calculation for Si...Abort(1094543) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init_thread: Other MPI error,error stack:
MPIR_Init_thread(639)......: 
MPID_Init(860).............: 
MPIDI_NM_mpi_init_hook(689): OFI addrinfo() Failed (ofi_init.h:689:MPIDI_NM_mpi_init_hook:No data available)
Abort(1094543) on node 1 (rank 1 in comm 0): Fatal error in PMPI_Init_thread: Other MPI error,error stack:
MPIR_Init_thread(639)......: 
MPID_Init(860).............: 
MPIDI_NM_mpi_init_hook(689): OFI addrinfo() Failed (ofi_init.h:689:MPIDI_NM_mpi_init_hook:No data available)
Abort(1094543) on node 2 (rank 2 in comm 0): Fatal error in PMPI_Init_thread: Other MPI error,error stack:
MPIR_Init_thread(639)......: 
MPID_Init(860).............: 
MPIDI_NM_mpi_init_hook(689): OFI addrinfo() Failed (ofi_init.h:689:MPIDI_NM_mpi_init_hook:No data available)
Abort(1094543) on node 3 (rank 3 in comm 0): Fatal error in PMPI_Init_thread: Other MPI error,error stack:
MPIR_Init_thread(639)......: 
MPID_Init(860).............: 
MPIDI_NM_mpi_init_hook(689): OFI addrinfo() Failed (ofi_init.h:689:MPIDI_NM_mpi_init_hook:No data available)
forrtl: error (78): process killed (SIGTERM)
Image              PC                Routine            Line        Source             
pw.x               0000000000DF35D4  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  00001512446D13C0  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  00001512446D0330  read                  UnkNown  UnkNown
libmpi.so.12.0.0   0000151246A1199F  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   0000151246A10D32  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   00001512450538D0  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   0000151245104613  MPIR_Err_return_c     UnkNown  UnkNown
libmpi.so.12.0.0   0000151245CF2D95  PMPI_Init_thread      UnkNown  UnkNown
libmpifort.so.12.  0000151247A895DC  MPI_INIT_THREAD       UnkNown  UnkNown
pw.x               0000000000895521  mp_world_mp_mp_wo          65  mp_world.f90
pw.x               0000000000894FC6  mp_global_mp_mp_s          71  mp_global.f90
pw.x               0000000000407390  MAIN__                     64  pwscf.f90
pw.x               0000000000407322  UnkNown               UnkNown  UnkNown
libc-2.31.so       0000151243FB80B3  __libc_start_main     UnkNown  UnkNown
pw.x               000000000040722E  UnkNown               UnkNown  UnkNown
forrtl: error (78): process killed (SIGTERM)
Image              PC                Routine            Line        Source             
pw.x               0000000000DF35D4  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  000014EC37DFD3C0  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  000014EC37DFC330  read                  UnkNown  UnkNown
libmpi.so.12.0.0   000014EC3A13D99F  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   000014EC3A13CD32  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   000014EC3877F8D0  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   000014EC38830613  MPIR_Err_return_c     UnkNown  UnkNown
libmpi.so.12.0.0   000014EC3941ED95  PMPI_Init_thread      UnkNown  UnkNown
libmpifort.so.12.  000014EC3B1B55DC  MPI_INIT_THREAD       UnkNown  UnkNown
pw.x               0000000000895521  mp_world_mp_mp_wo          65  mp_world.f90
pw.x               0000000000894FC6  mp_global_mp_mp_s          71  mp_global.f90
pw.x               0000000000407390  MAIN__                     64  pwscf.f90
pw.x               0000000000407322  UnkNown               UnkNown  UnkNown
libc-2.31.so       000014EC376E40B3  __libc_start_main     UnkNown  UnkNown
pw.x               000000000040722E  UnkNown               UnkNown  UnkNown
forrtl: error (78): process killed (SIGTERM)
Image              PC                Routine            Line        Source             
pw.x               0000000000DF35D4  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  00001502753273C0  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  0000150275326330  read                  UnkNown  UnkNown
libmpi.so.12.0.0   000015027766799F  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   0000150277666D32  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   0000150275CA98D0  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   0000150275D5A613  MPIR_Err_return_c     UnkNown  UnkNown
libmpi.so.12.0.0   0000150276948D95  PMPI_Init_thread      UnkNown  UnkNown
libmpifort.so.12.  00001502786DF5DC  MPI_INIT_THREAD       UnkNown  UnkNown
pw.x               0000000000895521  mp_world_mp_mp_wo          65  mp_world.f90
pw.x               0000000000894FC6  mp_global_mp_mp_s          71  mp_global.f90
pw.x               0000000000407390  MAIN__                     64  pwscf.f90
pw.x               0000000000407322  UnkNown               UnkNown  UnkNown
libc-2.31.so       0000150274C0E0B3  __libc_start_main     UnkNown  UnkNown
pw.x               000000000040722E  UnkNown               UnkNown  UnkNown
forrtl: error (78): process killed (SIGTERM)
Image              PC                Routine            Line        Source             
pw.x               0000000000DF35D4  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  000014FD8472A3C0  UnkNown               UnkNown  UnkNown
libpthread-2.31.s  000014FD84729330  read                  UnkNown  UnkNown
libmpi.so.12.0.0   000014FD86A6A99F  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   000014FD86A69D32  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   000014FD850AC8D0  UnkNown               UnkNown  UnkNown
libmpi.so.12.0.0   000014FD8515D613  MPIR_Err_return_c     UnkNown  UnkNown
libmpi.so.12.0.0   000014FD85D4BD95  PMPI_Init_thread      UnkNown  UnkNown
libmpifort.so.12.  000014FD87AE25DC  MPI_INIT_THREAD       UnkNown  UnkNown
pw.x               0000000000895521  mp_world_mp_mp_wo          65  mp_world.f90
pw.x               0000000000894FC6  mp_global_mp_mp_s          71  mp_global.f90
pw.x               0000000000407390  MAIN__                     64  pwscf.f90
pw.x               0000000000407322  UnkNown               UnkNown  UnkNown
libc-2.31.so       000014FD840110B3  __libc_start_main     UnkNown  UnkNown
pw.x               000000000040722E  UnkNown               UnkNown  UnkNown
Error condition encountered during test: exit status = 179
Aborting
#########################################################################################

我的 make.inc 文件包含以下内容

###############################################################
# make.inc.  Generated from make.inc.in by configure.

# compilation rules

.SUFFIXES :
.SUFFIXES : .o .c .f90 .h .fh

# most fortran compilers can directly preprocess c-like directives: use
#   $(MPIF90) $(F90FLAGS) -c $<
# if explicit preprocessing by the C preprocessor is needed,use:
#   $(CPP) $(CPPFLAGS) $< -o $*.F90
#   $(MPIF90) $(F90FLAGS) -c $*.F90 -o $*.o
# remember the tabulator in the first column !!!

.f90.o:
    $(MPIF90) $(F90FLAGS) -c $<

.c.o:
    $(CC) $(CFLAGS)  -c $<

.h.fh:
    $(CPP) $(CPPFLAGS) $< -o $*.fh



# Top QE directory,useful for locating libraries,linking QE with plugins
# The following Syntax should always point to TOPDIR:
TOPDIR = $(dir $(abspath $(filter %make.inc,$(MAKEFILE_LIST))))
# if it doesn't work,uncomment the following line (edit if needed):

# TOPDIR = /home/youca/Softwares/q-e-qe-6.7.0

# DFLAGS  = precompilation options (possible arguments to -D and -U)
#           used by the C compiler and preprocessor
# To use libxc (v>=3.0.1),add -D__LIBXC to DFLAGS
# See include/defs.h.README for a list of options and their meaning
# With the exception of IBM xlf,FDFLAGS = $(DFLAGS)
# For IBM xlf,FDFLAGS is the same as DFLAGS with separating commas

# MANUAL_DFLAGS  = additional precompilation option(s),if desired
#                  BEWARE: it does not work for IBM xlf! Manually edit FDFLAGS
MANUAL_DFLAGS  =
DFLAGS         =  -D__DFTI -D__MPI
FDFLAGS        = $(DFLAGS) $(MANUAL_DFLAGS)

# IFLAGS = how to locate directories with *.h or *.f90 file to be included
#          typically -I$(TOPDIR)/include -I/some/other/directory/
#          the latter contains .e.g. files needed by FFT libraries
# for libxc add -I/path/to/libxc/include/

IFLAGS         = -I$(TOPDIR)/include -I$(TOPDIR)/FoX/finclude  -I/Opt/intel/compilers_and_libraries_2019.1.144/linux/mkl:/opt/intel/compilers_and_libraries_2019.1.144/linux/mkl/include

# MOD_FLAG = flag used by f90 compiler to locate modules

MOD_FLAG      = -I

# BASEMOD_FLAGS points to directories containing basic modules,# while BASEMODS points to the corresponding module libraries
# Each Makefile can add directories to MODFLAGS and libraries to QEMODS

BASEMOD_FLAGS= $(MOD_FLAG)$(TOPDIR)/upflib \
               $(MOD_FLAG)$(TOPDIR)/Modules \
               $(MOD_FLAG)$(TOPDIR)/FFTXlib \
           $(MOD_FLAG)$(TOPDIR)/LAXlib \
           $(MOD_FLAG)$(TOPDIR)/UtilXlib \
           $(MOD_FLAG)$(TOPDIR)/FoX/finclude

# Compilers: fortran-90,fortran-77,C
# If a parallel compilation is desired,MPIF90 should be a fortran-90
# compiler that produces executables for parallel execution using MPI
# (such as for instance mpif90,mpf90,mpxlf90,...);
# otherwise,an ordinary fortran-90 compiler (f90,g95,xlf90,ifort,...)
# If you have a parallel machine but no suitable candidate for MPIF90,# try to specify the directory containing "mpif.h" in IFLAGS
# and to specify the location of MPI libraries in MPI_LIBS

MPIF90         = mpiifort
F90           = ifort
CC             = icc

# CUDA Toolkit path
CUDA_PATH=

# GPU architecture (Kepler: 35,Pascal: 60,Volta: 70 )
GPU_ARCH=

# CUDA runtime (Pascal: 8.0,Volta: 9.0)
CUDA_RUNTIME=

# CUDA F90 Flags
CUDA_F90FLAGS=

# C preprocessor and preprocessing flags - for explicit preprocessing,# if needed (see the compilation rules above)
# preprocessing flags must include DFLAGS and IFLAGS

CPP            = cpp
CPPFLAGS       = -P -Traditional -Uvector $(DFLAGS) $(IFLAGS)

# compiler flags: C,F90
# C flags must include DFLAGS and IFLAGS
# F90 flags must include MODFLAGS,IFLAGS,and FDFLAGS with appropriate Syntax

CFLAGS         = -O3 $(DFLAGS) $(IFLAGS)
F90FLAGS       = $(FFLAGS) -nomodule -qopenmp -fpp $(FDFLAGS) $(CUDA_F90FLAGS) $(IFLAGS) $(MODFLAGS)

# compiler flags with and without optimization for fortran-77
# the latter is NEEDED to properly compile dlamch.f,used by lapack
FFLAGS         = -O2 -assume byterecl -g -traceback -qopenmp
FFLAGS_NOOPT   = -O0 -assume byterecl -g -traceback

# compiler flag needed by some compilers when the main program is not fortran
# Currently used for Yambo

FFLAGS_NOMAIN   = -nofor_main

# Linker,linker-specific flags (if any)
# Typically LD coincides with F90 or MPIF90,LD_LIBS is empty
# for libxc,set LD_LIBS=-L/path/to/libxc/lib/ -lxcf90 -lxc
# If libxc is older than v5.0.0 replace -lxcf90 with -lxcf03

LD             = mpiifort
LDFLAGS        =   -qopenmp
LD_LIBS        = 

# External Libraries (if any) : blas,lapack,fft,MPI

# If you have nothing better,use the local copy
# BLAS_LIBS = $(TOPDIR)/LAPACK/libblas.a

BLAS_LIBS      =   -lmkl_intel_lp64  -lmkl_intel_thread -lmkl_core

# If you have nothing better,use the local copy
# LAPACK_LIBS_SWITCH = internal
# LAPACK_LIBS = $(TOPDIR)/LAPACK/liblapack.a

LAPACK_LIBS    = 
LAPACK_LIBS_SWITCH = external

SCALAPACK_LIBS = 

# nothing needed here if the the internal copy of FFTW is compiled
# (needs -D__FFTW in DFLAGS)

FFT_LIBS       = 

# HDF5
HDF5_LIBS = 
FOX_LIB  = -L$(TOPDIR)/FoX/lib  -lFoX_dom -lFoX_sax -lFoX_wxml -lFoX_common\
            -lFoX_utils -lFoX_fsys 
FOX_FLAGS = 
# For parallel execution,the correct path to MPI libraries must
# be specified in MPI_LIBS (except for IBM if you use mpxlf)

MPI_LIBS       = 

# IBM-specific: MASS libraries,if available and if -D__MASS is defined in FDFLAGS

MASS_LIBS      = 

# library for bayesian error estimate functionals

BEEF_LIBS      = $(TOPDIR)/LIBBEEF/libbeef.a
BEEF_LIBS_SWITCH = internal

# CUDA libraries
CUDA_LIBS=
CUDA_EXTLIBS = 

# ar command and flags - for most architectures: AR = ar,ARFLAGS = ruv

AR             = ar
ARFLAGS        = ruv

# ranlib command. If ranlib is not needed (it isn't in most cases) use
# RANLIB = echo

RANLIB         = ranlib

# all internal and external libraries - do not modify

FLIB_TARGETS   = all

LIBOBJS        = $(TOPDIR)/clib/clib.a
LIBXC_LIBS     = 
QELIBS         = $(BEEF_LIBS) $(LIBXC_LIBS) $(CUDA_LIBS) $(SCALAPACK_LIBS) $(LAPACK_LIBS) $(FOX_LIB) $(FFT_LIBS) $(BLAS_LIBS) $(MPI_LIBS) $(MASS_LIBS) $(HDF5_LIBS) $(LD_LIBS)

# wget or curl - useful to download from network
WGET = wget -O

# Install directory - "make install" copies *.x executables there
PREFIX = /usr/local
########################################################

比你提前

解决方法

您似乎根本没有真正使用 Open MPI。您的 make.inc 文件集

MPIF90         = mpiifort

这是英特尔 MPI Fortran 编译器包装器。错误消息似乎也来自英特尔 MPI。如果是这样,您可能只是遇到了英特尔 MPI(或更具体地说 libfrabric)的经典问题,不知道任何可用于并行通信的默认接口。尝试在使用英特尔 MPI 运行任何程序之前指定一个,例如

export FI_PROVIDER=tcp

export FI_PROVIDER=sockets

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。