24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1366  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

souledge

专家顾问 (著名写手)

[求助] 使用PGI编译VASP中无法使用长数组

使用PGI最新的12.3 Workstation版(2周试用许可证),MPICH2(configure OpenMPI时出错失败~),编译了VASP 4.6.28。
把makefile.linux_pg_opt稍微修改一下,最关键的是修改处理器类型,去掉-i8,就可以成功编译VASP了,结果没有问题。
但是看到pgif90的帮助文件上有参数:
-Mlarge_arrays
  -Mnolarge_arrays (default) (linux86-64 only). Allow (don't allow) arrays larger than 2GB;
  -Mlarge_arrays is default with -mcmodel=medium.

想到使用ifort时,如果不使用-heap-arrays,就会在计算大体系时容易内存溢出然后停止计算,于是也就在PGI的编译上使用了-Mlarge_arrays,结果,计算哪怕是个非常简单的结构时,也会在reading WAVECAR后出现错误:
internal ERROR: SETYLM, insufficient INDMAX workspace
比较郁闷和搞笑的是,这个错误在VASP的官方论坛里看,是使用ifort编译的,并且解决方案恰恰就是添加-heap-arrays……
于是实在想不出解决方法来了,来看看大家有什么解决方案没……
回复此楼

» 猜你喜欢

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

思想重于技巧,内涵重于表象
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

绿遍山原

铜虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fzx2008: 金币+1, 谢谢指教 2012-04-04 18:08:11
souledge: 金币+20, ★★★★★最佳答案, Puts automatic arrays and arrays created for temporary computations on the heap instead of the stack. 2012-04-04 19:38:51
一般不会有哪个程序一次allocate2GB的数组。heap-array是为了把内存申请从栈上移到堆上。
要夢遊,不要催眠。
5楼2012-04-04 17:55:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

thinkllh

铁杆木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
fzx2008: 金币+1, 谢谢回帖交流! 2012-04-03 23:31:59
如此,何不直接用ifort, 还 不 存在 2周 试用 的 问 题.
Thinkwiththeworld.
2楼2012-04-03 22:58:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

souledge

专家顾问 (著名写手)


fzx2008: 金币+1, 赞! 2012-04-03 23:32:14
引用回帖:
2楼: Originally posted by thinkllh at 2012-04-03 22:58:13:
如此,何不直接用ifort, 还 不 存在 2周 试用 的 问 题.

考虑到在很多大型机上使用的是PGI或者Pathscale,为了防止今后万一有机会碰上时太抓瞎~
思想重于技巧,内涵重于表象
3楼2012-04-03 23:28:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

souledge

专家顾问 (著名写手)


贺仪: 金币+1, 谢谢参与讨论 2012-04-04 13:26:37
新的一个测试结果,计算一个64个原子的四方对称模型,单核运行没有使用-Mlarge_arrays编译的VASP,居然占用内存6GB,并且没有出错。等待了半个小时,出现了第一个SCF步~不继续等了~先发一个运行中的资源截图。是否这意味着使用PGI的话无需考虑传说中的2GB数组限制问题呢?
思想重于技巧,内涵重于表象
4楼2012-04-04 00:02:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见