openmp单线程内存容量限制?

sandg 2008-11-06 12:29:15
很简单的一个fortran程序,加-openmp编译后
运行时错误为:“段错误”,
idb调试错误为:“Program received signal SIGSEGV, Segmentation fault”
------------------------------------------
program openmptest
real*8 a(9,585565)
a=0.0
end
-----------------------------------------
不加-openmp选项编译就正常运行。

在openmp.org主页上tourial里面提到:Thread Stack Size 默认大小Intel IA32架构的Linux 系统是 8 MB, 这个数组超过8M了。
我用的是bash,怎么改变默认堆栈大小呢?

或者,能不能改成单线程一样,无限大,不检查堆栈限制呢?谢谢

不是计算机专业,编程知识仅限于fortran计算,不懂的太多
...全文
383 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeg001 2009-04-27
  • 打赏
  • 举报
回复
可以在.bashrc里面加入环境变量STACK_SIZE的大小.
export STACK_SIZE=512M
详细可以参考openmp的官方文档.
intel_iclifort 2009-04-27
  • 打赏
  • 举报
回复
除了ulimit之外, 还可以用编译选项 -heap arrays 64 试试, 说不定有帮助

建议看看这篇KB, 说得很详细了: http://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/41911/reply/12580/

yeg001 2009-04-19
  • 打赏
  • 举报
回复
如果是在visual studios 2005里面应该在那里设置呢?
intel_www 2008-11-07
  • 打赏
  • 举报
回复
用ulimit -s 指定堆栈大小。

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧