24小时热门版块排行榜    

查看: 5074  |  回复: 15

solarman

新虫 (正式写手)

[求助] vasp成功安装后运行时出现Segmentation fault (signal 11)错误,求指教 已有3人参与

vasp并行安装成功,cpu是xeon 2630v3×2,64G内存,机器上同时安装了mpich2和openmpi,但which mpif90后显示:/opt/software/mpich2-intel/bin/mpif90
同样,which mpirun后显示:/opt/software/mpich2-intel/bin/mpirun
表明实际使用的mpi是mpich2的。
同时还安装了fftw库。

运行了数个vasp作业,均出现以下信息:
=====================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   EXIT CODE: 11
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
=====================================================================================
APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)

将makefile的设置贴出来,请大家帮忙看看,究竟是哪里出了问题?多谢了!
SUFFIX=.f90
FC=mpif90
FCL=$(FC)
CPP_ =  ./preprocess <$*.F | /usr/bin/cpp -P -C -traditional >$*$(SUFFIX)
CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFC\" -DIFC \
     -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc -DNGZhalf \
     -DMPI_BLOCK=8000 -Duse_collectiveK
FFLAGS =  -FR -names lowercase -assume byterecl
OFLAG=-O2 -ip
OFLAG_HIGH = $(OFLAG)
OBJ_HIGH =
OBJ_NOOPT =
DEBUG  = -FR -O0
INLINE = $(OFLAG)
MKLROOT=/opt/intel/icc/composer_xe_2013.3.163/mkl
MKL_PATH=$(MKLROOT)/lib/intel64
IFC_LIB_PATH=/opt/intel/icc/composer_xe_2013.3.163/compiler/lib/intel64
BLAS=-L$(MKL_PATH) -lmkl_intel_lp64 -lmkl_blacs_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lmkl_lapack95_lp64
LAPACK= $(MKL_PATH)/libmkl_intel_lp64.a
LIB  = -L../vasp.5.lib -ldmy \
     ../vasp.5.lib/linpack_double.o $(LAPACK) \
     $(BLAS)
LINK =
FFT3D   = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o /opt/mathlib/fftw-3.3.3/lib/libfftw3.a
INCS = -I/opt/intel/icc/composer_xe_2013.3.163/mkl/include/fftw
回复此楼

» 收录本帖的淘帖专辑推荐

VASP

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

wmy8802217

木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
ben_ladeng: 金币+1, 辛苦了 2015-06-22 08:40:55
运行前试试 ulimit -s unlimited
凝聚态理论与计算物理
2楼2015-06-20 11:15:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

卡开发发

专家顾问 (著名写手)

Ab Initio Amateur

★ ★ ★ ★
solarman(ben_ladeng代发): 金币+4, 辛苦了 2015-06-22 08:41:24
引用回帖:
6楼: Originally posted by solarman at 2015-06-20 16:10:21
谢谢楼上两位,我在编译时和运行时都加入了mpif90或mpirun的全路径,但最后结果还是如此。我想应该不是环境变量的问题(其实各种环境PATH我都已经在.bashrc中export了),我想知道是否是makefile中的并行编译参数不 ...

就是这个问题,请不要两者都写到.bashrc下面
你可以这样(为了方便我只是简单表示),本来如果是这样的形式:
export OPENMPI_PATH
export MPICH_PATH
你可以改写一下,如使用OPENMPI的时候
export OPENMPI_PATH
#export MPICH_PATH
之后重新source ~/.bashrc

而使用MPICH的时候
#export OPENMPI_PATH
export MPICH_PATH
之后重新source ~/.bashrc

或者索性把bashrc这两条都删了,然后在~/下面建立两个sh文件,比如openmpi.sh和mpich.sh,把两条分别加入其中,使用的时候source一下,或者索性就直接手工export
不一定挂在论坛,计算问题问题欢迎留言。
8楼2015-06-20 16:59:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wuli8

荣誉版主 (知名作家)

…………

优秀版主优秀版主

引用回帖:
13楼: Originally posted by solarman at 2015-06-22 08:32:12
多谢版主,能解释一下-heap-arrays  64的作用吗,是不是因为栈溢出而使用静态存储?谢谢了...

# by default some intel compilers put temporaries on the stack
# this might lead to segmentation faults is the stack limit is set to low
# stack limits can be increased by sysadmins or e.g with ulimit -s 256000
# furthermore new ifort (10.0?) compilers support the option
# -heap-arrays 64
# add this to the compilation flags is the other options do not work
-------------------------------
默认的话一些intel编译器会把缓存写到堆栈里,如果堆栈限制比较小,就会导致segmentation faults错误。可以用管理员权限来增加堆栈大小或者使用-heap-arrays 64(ifort10以上。
…………
14楼2015-06-22 09:49:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

solarman

新虫 (正式写手)

引用回帖:
2楼: Originally posted by wmy8802217 at 2015-06-20 11:15:45
运行前试试 ulimit -s unlimited

运行ulimit -a unlimited后,显示
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 257702
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
可以看到cpu时间和运行内存都是不受限的,是否存在其他原因?
3楼2015-06-20 12:38:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wmy8802217

木虫 (正式写手)

【答案】应助回帖

★ ★
solarman: 金币+2 2015-06-20 19:35:58
你用哪个mpi编译,就用哪个mpi mpirun,编译和运行的时候mpif90和mpirun最好都带上绝对地址。如果还不行的话,找个虚拟机编译一下,然后传上去运行
凝聚态理论与计算物理
4楼2015-06-20 13:21:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

卡开发发

专家顾问 (著名写手)

Ab Initio Amateur

说白了就是环境变量没设置好,如果遇到多个mpi和编译器非常建议不要全都写在bashrc或profile下面,可以都写成一般的脚本,需要用哪个就source哪个。或者手工输入export PATH
不一定挂在论坛,计算问题问题欢迎留言。
5楼2015-06-20 14:27:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

solarman

新虫 (正式写手)

引用回帖:
5楼: Originally posted by 卡开发发 at 2015-06-20 14:27:27
说白了就是环境变量没设置好,如果遇到多个mpi和编译器非常建议不要全都写在bashrc或profile下面,可以都写成一般的脚本,需要用哪个就source哪个。或者手工输入export PATH

谢谢楼上两位,我在编译时和运行时都加入了mpif90或mpirun的全路径,但最后结果还是如此。我想应该不是环境变量的问题(其实各种环境PATH我都已经在.bashrc中export了),我想知道是否是makefile中的并行编译参数不对?
6楼2015-06-20 16:10:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wmy8802217

木虫 (正式写手)

【答案】应助回帖

★ ★
solarman: 金币+2 2015-06-20 19:39:35
引用回帖:
6楼: Originally posted by solarman at 2015-06-20 16:10:21
谢谢楼上两位,我在编译时和运行时都加入了mpif90或mpirun的全路径,但最后结果还是如此。我想应该不是环境变量的问题(其实各种环境PATH我都已经在.bashrc中export了),我想知道是否是makefile中的并行编译参数不 ...

VASP的根错误由来已久了,很多都是莫名其妙的。。。建议你用个虚拟机,在上面编译好,再传到机器上
凝聚态理论与计算物理
7楼2015-06-20 16:23:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

solarman

新虫 (正式写手)

引用回帖:
8楼: Originally posted by 卡开发发 at 2015-06-20 16:59:20
就是这个问题,请不要两者都写到.bashrc下面
你可以这样(为了方便我只是简单表示),本来如果是这样的形式:
export OPENMPI_PATH
export MPICH_PATH
你可以改写一下,如使用OPENMPI的时候
export OPENMPI_P ...

谢谢,我再按照你说的做一遍吧,另外,看了下我的openmpi的bin目录下,可执行文件怎么都变成符号链接了呢?比如mpif90实际指向mpiifort,而mpirun指向orterun,如下:
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpic++ -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpicc -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpiCC -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpicc-vt -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpiCC-vt -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpic++-vt -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpicxx -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpicxx-vt -> opal_wrapper
lrwxrwxrwx. 1 root root      7 6月  11 05:13 mpiexec -> orterun
lrwxrwxrwx. 1 root root      7 6月  11 05:13 mpif77 -> mpifort
lrwxrwxrwx. 1 root root     10 6月  11 05:13 mpif77-vt -> mpifort-vt
lrwxrwxrwx. 1 root root      7 6月  11 05:13 mpif90 -> mpifort
lrwxrwxrwx. 1 root root     10 6月  11 05:13 mpif90-vt -> mpifort-vt
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpifort -> opal_wrapper
lrwxrwxrwx. 1 root root     12 6月  11 05:13 mpifort-vt -> opal_wrapper
lrwxrwxrwx. 1 root root      7 6月  11 05:13 mpirun -> orterun
lrwxrwxrwx. 1 root root     10 6月  11 05:13 ompi-clean -> orte-clean
-rwxr-xr-x. 1 root root  81577 6月   9 2014 ompi_info
lrwxrwxrwx. 1 root root      7 6月  11 05:13 ompi-ps -> orte-ps
lrwxrwxrwx. 1 root root     11 6月  11 05:13 ompi-server -> orte-server
lrwxrwxrwx. 1 root root      8 6月  11 05:13 ompi-top -> orte-top
这些符号链接还是可执行文件吗?会对编译和运行产生什么影响呢?多谢了。
9楼2015-06-20 19:34:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

卡开发发

专家顾问 (著名写手)

Ab Initio Amateur

引用回帖:
9楼: Originally posted by solarman at 2015-06-20 19:34:38
谢谢,我再按照你说的做一遍吧,另外,看了下我的openmpi的bin目录下,可执行文件怎么都变成符号链接了呢?比如mpif90实际指向mpiifort,而mpirun指向orterun,如下:
lrwxrwxrwx. 1 root root     12 6月  11 05 ...

这些不用管他们,你这样好了,你先把bashrc相关mpi的内容#掉,然后重启后输入which mirun、which mpif90看看是否会有指向,如果没有的话再按照我说的来。
不一定挂在论坛,计算问题问题欢迎留言。
10楼2015-06-21 00:17:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 solarman 的主题更新
信息提示
请填处理意见