24小时热门版块排行榜    

查看: 2391  |  回复: 9
本帖产生 1 个 1ST强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zhang668

木虫 (正式写手)

[求助] 同个任务同样的节点数VASP4.6能算,而VASP5.2不能

对24个原子的体系的结构优化任务,256个节点,VASP4.6可以计算,但VASP5.2(自旋轨道耦合版本)计算得到段错误提示:
forrtl: severe (174): SIGSEGV, segmentation fault occurred。
用ulimit -a查了下stack size:无限制。

以前小体系的时候测试过,发现两个版本计算效率挺接近的,这次体系增大,同时增大节点数,发现很大差异,基本上VASP5.2很容易出现段错误提示。
看到wuli8版主的段错误一个贴,最终解决是在FLAG的选项中加入: -heap-arrays  64,而我的VASP5.2版本原来编译时候已经加入了这项:
FFLAGS =  -FR -lowercase -assume byterecl -heap-arrays 64 -I/opt/intel/mkl/10.2.1.017/include/fftw
其它编译参数:
FC=mpiifort

CPP    = $(CPP_) -DMPI  -DHOST=\"LinuxIFC\" -DIFC \
     -Dkind8 -DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \
     -DMPI_BLOCK=8000  -DRPROMU_DGEMV  -DRACCMU_DGEMV

SCA=-L/opt/intel/mkl/10.2.1.017/lib/em64t -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64

请教各位,编译有没问题,以前曾用这个VASP5.2计算过10个原子的自选轨道耦合,一直挺顺利的。最近计算20原子的体系,总是出现问题。请大家帮忙看下是什么问题?

[ Last edited by zhang668 on 2011-6-15 at 22:22 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhang668

木虫 (正式写手)

引用回帖:
Originally posted by cavediger at 2011-06-16 06:24:08:
1.查一查下OUTCAR里最后几行的提示,是否进入了主循环计算?
2.-heap-arrays  64 只是解决栈溢出问题,你只有那么点原子,考虑自旋也也不会产生此问题;
3.检查一下你的编译器的版本,INTEL 10.xxx编译器本身 ...

OUTCAR最后行没进入主循环就停了,如下:
----------------------------------------- Iteration    1(   1)  ---------------------------------------

我重新用少节点测试了下,发现32和64节点时,VASP5.2仍然出现段错误问题,而VASP4.6可以计算。 不知道是否跟5.2的自旋轨道耦合版本有关。
3楼2011-06-16 15:25:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

cavediger

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
youzhizhe(金币+5): 谢谢交流。 2011-06-16 09:50:48
youzhizhe(1ST强帖+1): 谢谢交流。 2011-06-16 09:51:16
zhang668(金币+3): 非常感谢详细指导 2011-06-16 15:00:22
引用回帖:
Originally posted by zhang668 at 2011-06-15 22:17:42:
对24个原子的体系的结构优化任务,256个节点,VASP4.6可以计算,但VASP5.2(自旋轨道耦合版本)计算得到段错误提示:
forrtl: severe (174): SIGSEGV, segmentation fault occurred。
用ulimit -a查了下stack s ...

1.查一查下OUTCAR里最后几行的提示,是否进入了主循环计算?
2.-heap-arrays  64 只是解决栈溢出问题,你只有那么点原子,考虑自旋也也不会产生此问题;
3.检查一下你的编译器的版本,INTEL 10.xxx编译器本身有bug,会遇到一下意想不到的问题;
4.FC=mpiifort,这个是自己该的还是自动生成的?一般MPI编译后,会建立个mpif90到ifort连接,即便并行编译,FC=mpif90 或 ifort都可以;
5.你在做测试吗?这么小的体系还用那么多个节点,并行效率很差,时间都浪费在CPU之间的通讯上了。你可以减少节点测试一下,或者串行试一下看看是否还有这个问题。
我们都老得太快,却聪明得太迟。当我一路跌跌撞撞登上山巅,蓦然发现,本来就有一条笔直的路,直达山顶....
2楼2011-06-16 06:24:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhang668

木虫 (正式写手)

FC=mpiifort是我自己改的,并行环境为Intel公司的MPI 3.2.
4楼2011-06-16 15:29:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cavediger

金虫 (正式写手)

★ ★
gzqdyouxia(金币+2): 谢谢指教 2011-06-17 09:35:07
引用回帖:
Originally posted by zhang668 at 2011-06-16 15:25:45:
OUTCAR最后行没进入主循环就停了,如下:
----------------------------------------- Iteration    1(   1)  ---------------------------------------

我重新用少节点测试了下,发现32和64节点时,VASP5 ...

k点取得很多吗?cutoff很高吗?以前用4.6时遇到过类似问题,当计算包含30多个重金属原子的体系时,如果k点多、cutoff高时会出现你所遇到的情况,-heap也不行,后来也懒得研究就改用了pgi,编译出来的vasp就没再遇到这种问题了。不过你的4.6没问题,5.2却不行,很让人不理解,确认编译环境一样吗?
我们都老得太快,却聪明得太迟。当我一路跌跌撞撞登上山巅,蓦然发现,本来就有一条笔直的路,直达山顶....
5楼2011-06-16 17:45:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见