解决OpenMP中分段错误的最佳方法

Lin*_*g0k 3 fortran openmp fortran90

我尝试使用OpenMP在Fortran90中并行化一个大程序.

我总是得到分段错误错误.我想知道是否有任何简单的方法来解决它们.如果您有分段错误错误,该怎么办?

Hig*_*ark 7

首先将代码恢复到原始的,未平行的版本.你在版本控制下有这个吗不是吗?

仔细检查您的串行程序不会导致任何分段错误.请特别注意英特尔本文档中提出的问题.即使您没有使用英特尔Fortran编译器,也请阅读此内容.采取它建议的纠正措施.

现在,并行化您的第一个构造.如果可以的话,选择一个简单的,非嵌套的循环.重新测试你的程序.想想你做了什么,并确保你了解发生了什么.选择另一个简单的构造来并行化.完成后,简单的那些转移到更复杂的那些,随时进行测试,随时随地学习.

所以,回答你的问题:解决这些问题的最好办法就是不要把它们放在第一位.您报告说您一直都会出现分段错误,这表明您在行走之前已尝试过运行.

并回答另一个问题:不,没有简单的方法来解决它们.